A full-stack task management application built with Node.js, Express, MongoDB, EJS, and Tailwind CSS.
Live Demo: view demo
- User authentication (Signup + Login)
- Create, Read, Update, and Delete (CRUD) tasks
- Clean and modern UI with glassmorphism design using Tailwind CSS
- Responsive layout (works well on mobile and desktop)
- Dynamic rendering with EJS templating
- Data persistence using MongoDB Atlas
- Deployed on Render
- Backend: Node.js, Express.js
- Database: MongoDB Atlas + Mongoose
- Frontend: EJS (templating), Tailwind CSS
- Deployment: Render
TaskFlow/
├── views/ # EJS templates
│ ├── login.ejs
│ ├── signup.ejs
│ └── tasks.ejs
├── public/ # Static files
│ └── css/
│ └── output.css # Tailwind output
├── models/ # Mongoose schemas
│ ├── User.js
│ └── Task.js
├── routes/ # Express routes (if separated)
├── app.js # Main server file
├── package.json
└── tailwind.config.js
This was my second full-stack project (after a simple "Hello World" Express + EJS intro page).
What improved from the previous project:
- Proper MongoDB connection and Mongoose models
- Full CRUD functionality with real database
- Better Tailwind configuration for EJS files
- Form handling, redirects, and async/await database operations
- Deployment on Render
Biggest challenge was debugging MongoDB connection issues and understanding how frontend talks to backend properly.
-
Clone the repository:
git clone https://github.com/mohd-Affan16/TaskFlow.git cd TaskFlow -
Install dependencies:
npm install
-
Create a
.envfile and add your MongoDB connection string. -
Run the development server:
npm run dev
-
Open your browser and go to
http://localhost:3000
- Better authentication (password hashing, sessions/JWT)
- Due dates and task categories
- Dark/Light mode toggle
- Task search and filtering
- User profile page



