A complete full-stack task management web application built from scratch using Node.js, Express, MongoDB, and EJS.
This project was developed to understand end-to-end full-stack development, covering everything from authentication to deployment.
The main goal of this project is to:
- Learn full-stack web development from A to Z
- Understand real-world project architecture
- Implement secure authentication & authorization
- Work with a cloud database (MongoDB Atlas)
- Deploy a production-ready application
- HTML5
- CSS3
- EJS (Server-Side Rendering)
- Node.js
- Express.js
- MongoDB
- MongoDB Atlas (Cloud)
- bcrypt (Password Hashing)
- express-session (Session Management)
- Email OTP Verification (Nodemailer)
- Authorization Middleware
- Multer (Profile Image Upload)
- Git & GitHub
- Render (Deployment)
- User registration with email OTP verification
- Secure login and logout
- Password hashing using bcrypt
- Session-based authentication
- User profile page
- Upload and update profile image
- View user details (name, email, joined date)
- Create tasks
- View user-specific tasks
- Edit tasks
- Delete tasks
- Mark tasks as completed
- Protected routes
- Ownership checks (users can access only their own tasks)
- Secure update and delete operations
- Clean and consistent layout
- Reusable EJS partials
- User-friendly navigation
- MongoDB Atlas for cloud database
- Render for hosting the backend
- Environment-based configuration
- User submits registration form
- OTP is sent to the registered email
- User verifies OTP
- User account is created in the database
- User logs in
- User manages tasks and profile securely