A lightweight cloud-synced task planner with email OTP signup, PRN-based authentication, and AWS-backed persistence.
This project includes:
index.html— static frontend UI for signup, login, task creation, and task managementBackend/index.mjs— AWS Lambda handler for signup, login, OTP delivery, and task syncBackend/DEPLOYMENT_GUIDE.md— deployment instructions for AWS API Gateway, Lambda, DynamoDB, and SES
The app is designed as a browser-first task planner that stores user accounts and tasks in DynamoDB and uses AWS SES for OTP email verification.
- Email OTP verification during signup
- Login with PRN and password
- Add, complete, and delete tasks
- Task priority and estimated hours
- Cloud sync to AWS via API Gateway + Lambda
- Progress bar and task stats
- Frontend: static HTML/CSS/JavaScript in
index.html - Backend: AWS Lambda in
Backend/index.mjs - Database: DynamoDB table
todo-users - Email service: AWS SES for OTP emails
- API layer: API Gateway HTTP API routes
index.html— complete single-page frontendBackend/index.mjs— Lambda handler using AWS SDK v3Backend/DEPLOYMENT_GUIDE.md— deployment and AWS configuration guide
- Open
index.htmlin your browser to run the app as a static frontend. - Configure the backend API endpoint by updating the
APIconstant near the top ofindex.html.
const API = 'https://YOUR_API_ID.execute-api.us-east-1.amazonaws.com';- Deploy the backend following
Backend/DEPLOYMENT_GUIDE.md.
- DynamoDB table:
todo-users - Lambda runtime: Node.js 20.x
- Environment variable:
SENDER_EMAILset to a verified SES sender address - SES identity verification for the sender email (and recipient email if the account is in sandbox mode)
- Open the app in a browser.
- Choose Sign Up to create an account.
- Enter name, PRN, password, and email.
- Send OTP and verify the code.
- Create your account and start adding tasks.
- Use Login to sign in after account creation.
- The current frontend uses a hard-coded AWS API URL in
index.html. - Passwords are stored in plaintext in DynamoDB in the current implementation. For production use, add password hashing.
- Task sync is triggered automatically on create, update, and delete.
- Hash passwords before storing them in production.
- Remove OTP records after successful verification.
- Restrict CORS origins to your trusted domain instead of
*. - Add rate limiting to the OTP endpoint to prevent abuse.
This repository does not include a specific license file.