TaskFlow is a Full-Stack Next.js Task Management Platform where users can sign up, log in, manage tasks, edit their profile, and log out securely.
It features JWT authentication, MongoDB integration, and a modern responsive UI built with Tailwind CSS and shadcn/ui.
π Live Demo: https://taskflow-app-nu.vercel.app
π₯ Video Demo: https://youtu.be/etYtdwYO5pQ
- User Authentication: Secure signup, login, and logout using JWT.
- Task Management: Create, update, delete, and mark tasks as completed.
- User Profile: View and update your name and bio.
- Database Integration: MongoDB Atlas used for persistent storage.
- Responsive Design: Built with Tailwind CSS and shadcn/ui.
- Error Handling: Graceful API error handling and toast notifications.
- Fully Deployed: Live on Vercel with serverless API routes.
- Next.js (App Router)
- TypeScript
- Tailwind CSS
- shadcn/ui
- Redux Toolkit
- Axios
- Sonner (toast notifications)
- Lucide React (icons)
- Next.js API Routes
- Node.js
- MongoDB (Mongoose)
- JWT Authentication
- Frontend & Backend β Vercel
- Database β MongoDB Atlas
Create a .env file in the project root and add the following:
# Database
MONGODB_URI=your_mongodb_connection_string
# JWT Secret
JWT_SECRET=your_jwt_secret_key
# App URLs
NEXT_PUBLIC_API_URL=http://localhost:3000git clone https://github.com/your-username/taskflow-app.git
cd taskflow-appnpm installnpm run devVisit: http://localhost:3000
TASKFLOW-APP
βββ app
β βββ api
β β βββ auth
β β β βββ login
β β β βββ register
β β β βββ me
β β βββ tasks
β β β βββ create
β β β βββ update
β β β βββ delete
β βββ profile
β βββ tasks
β βββ layout.tsx
β βββ page.tsx
βββ components
βββ lib
β βββ db.ts
β βββ auth.ts
β βββ axios.ts
βββ models
β βββ User.ts
β βββ Task.ts
βββ store
β βββ authSlice.ts
β βββ taskSlice.ts
β βββ index.ts
βββ public
βββ styles
β βββ globals.css
βββ postman_collection.json
βββ Scaling_Note_by_Aman.md
βββ TaskFlow_Scaling_and_Production_Note_by_Aman.md
- Used Next.js App Router with API routes for serverless backend.
- Connected MongoDB using a reusable connection function.
- JWT tokens stored in cookies for secure authentication.
- Profile and task data fetched using protected API routes.
- Optimized UX with toast notifications and responsive UI.
A complete Postman collection is included at:
It contains endpoints for authentication (signup/login/logout), fetching user profile, and task CRUD operations with JWT authorization headers.
A detailed explanation of how I would scale the frontend-backend integration for production is included in the following files:
These documents describe how I would:
- Separate the backend into a standalone service
- Implement secure environment management
- Add connection pooling and indexes in MongoDB
- Use HTTP-only cookies for JWT storage
- Optimize the frontend with ISR and lazy loading
- Set up CI/CD pipelines for automated deployment
- Implement dark mode.
- Add drag-and-drop task reordering.
- Enable profile picture upload.