AI-powered task management web app with Kanban board, analytics, and productivity insights. Built with React + Vite on the frontend and Node.js + Express + MongoDB on the backend, with Google OAuth and Gemini-powered AI helpers.
🚀 Check out - https://task-flow577.vercel.app
-
Authentication
- Email/password registration and login with JWT
- Google OAuth sign-in with redirect back to the SPA
- Protected routes for authenticated pages
-
Task management
- CRUD for tasks (create, update, delete)
- Kanban board with drag-and-drop (Pending / In Progress / Completed)
- Task attributes: title, description, status, priority, deadline, estimated time
- Selected-task details panel with risk level and AI tips
-
AI-powered productivity
- AI daily planner (
AI Daily Planner 🤖) that generates an optimized schedule from your tasks - AI suggestions panel with priority, estimated time, and deadline hints
- AI task breakdown modal that generates subtasks from a task title
- AI daily planner (
-
Analytics & insights
- Productivity score based on completed vs total tasks
- Weekly completion trends
- Priority distribution (High/Medium/Low)
- Task status breakdown charts
-
UX & feedback
- Framer Motion page and component transitions
- Toast notifications for successes and errors (react-toastify)
- Loading buttons with spinners for async actions
- Skeleton loaders for dashboard and analytics while data is loading
- Empty state for new users with CTA and guidance toast
-
Frontend
- React + Vite
- React Router
- TailwindCSS
- Framer Motion
- Axios
- React Beautiful DnD
- Recharts
- React Toastify
-
Backend
- Node.js + Express
- MongoDB + Mongoose
- JWT authentication
- Google OAuth 2.0 (passport-google-oauth20)
- Gemini API (
@google/generative-ai) - Express-validator, bcryptjs, cors, dotenv
.
├─ client/ # React + Vite SPA
│ ├─ src/
│ │ ├─ pages/ # Login, Register, Home, Dashboard, Analytics, OAuthSuccess
│ │ ├─ components/ # AppShell, Navbar, Sidebar, TaskBoard, TaskModal, AI panels, etc.
│ │ ├─ api/ # Axios instance
│ │ ├─ context/ # AuthContext
│ │ └─ utils/ # Toast utilities
│ └─ package.json
├─ server/ # Node/Express API
│ ├─ controllers/ # Auth, tasks, AI
│ ├─ middleware/ # Auth, error handling
│ ├─ models/ # Mongoose models
│ ├─ routes/ # /auth, /tasks, /ai
│ ├─ config/ # Passport configuration
│ ├─ server.js # App entrypoint
│ ├─ .env # Backend environment variables (not for commit)
│ └─ package.json
└─ README.md
- Node.js (v18+ recommended)
- npm
- MongoDB connection string
- Google OAuth credentials (Client ID, Secret, callback URL)
- Gemini API key
From the project root:
cd server
npm installCreate a .env file in server/ (do not commit real secrets) based on:
PORT=5001
NODE_ENV=development
MONGO_URI=<your MongoDB connection string>
JWT_SECRET=<long random secret>
JWT_EXPIRES_IN=7d
CLIENT_URL=http://localhost:5173
GOOGLE_CLIENT_ID=<your Google OAuth client id>
GOOGLE_CLIENT_SECRET=<your Google OAuth client secret>
GOOGLE_CALLBACK_URL=http://localhost:5001/api/auth/google/callback
GEMINI_API_KEY=<your Gemini API key>Run the API:
npm run devThe API will be available on http://localhost:5001 (or PORT).
In another terminal from the project root:
cd client
npm installCreate client/.env for frontend environment variables:
VITE_API_URL=http://localhost:5001Start the Vite dev server:
npm run devThe app will be available on http://localhost:5173.
Build the frontend:
cd client
npm run buildYou can then serve the built assets from your preferred static host (or configure the backend to serve them).
npm run dev– start Vite dev servernpm run build– build for productionnpm run preview– preview the production buildnpm run lint– run ESLint
npm run dev– start the Express server in dev modenpm start– start the Express server
This project is licensed under the MIT License. See LICENSE for details.
