A modern, responsive, and feature-rich task management application built with React, Tailwind CSS, Node.js, Express, and MongoDB. Designed to help users organize, prioritize, and track their daily tasks efficiently.
TaskFlow features a sleek Glassmorphism UI aesthetic, Dark/Light Theme toggling, and Framer Motion layout animations for a premium desktop and mobile user experience.
- User Registration & Login
- JWT Authentication
- Password Encryption with
bcryptjs - Protected Routes
- Google OAuth 2.0 Authentication
- Secure Session Management
- Persistent Login Support
- Create, Edit, and Delete Tasks
- Mark Tasks as Complete/Incomplete with spring animations
- Task Priorities (High, Medium, Low)
- Due Dates
- Categories & Tags
- Search & Filtering
- Task Statistics
- Completed vs Pending Overview
- Priority-Based Analytics
- Productivity Tracking
- Modern UI/UX Design (Glassmorphic cards & glow elements)
- Dark & Light Mode
- Responsive Design (Desktop & Mobile optimized layouts)
- Smooth Animations with Framer Motion
- Toast Notifications (Offline/Online updates)
- Drag-and-Drop Task Reordering (HTML5 + Framer Motion layout sync)
Users can securely sign in using their Google account without creating a separate password.
- One-click Google Sign-In for instant access
- Secure OAuth 2.0 Flow via Passport.js
- Automatic Account Creation on first login
- JWT Token Generation upon verification
- Profile Information Sync (Google Name & Avatar images)
- Persistent User Sessions saved securely
- Google OAuth 2.0
- Passport.js / Google Strategy
- JWT Authentication
- MongoDB User Storage
- Google ID
- Name
- Email Address
- Profile Picture
- Account Creation Date
- Secure OAuth Flow redirects
- JWT Token Validation in middleware
- Protected API Routes
- Environment Variable Protection
- HTTPS Proxy Support for Cloud Deployments
- React.js (Vite)
- Tailwind CSS (v4)
- Framer Motion
- Lucide Icons
- Axios
- React Router DOM
- React Hook Form
- Node.js
- Express.js
- MongoDB Atlas
- Mongoose
- JWT Authentication
- bcryptjs
- Passport.js
- Google OAuth 2.0
- dotenv
- CORS
- Google Authentication integration
- Drag-and-Drop Task Management using native HTML5 and Framer Motion Layouts
- Dark & Light Mode (system-aware switcher)
- Analytics Dashboard (radial SVG progress meters)
- Search & Filtering (by title, description, priority, and completion states)
- Categories & Tags for quick categorization
- Due Date Tracking with flashing overdue warnings
- Priority Management with custom glowing color codes
- Responsive Design adapting beautifully to mobile, tablet, and desktop viewports
- Real-Time Notifications and offline LocalStorage fallback modes
todo-app/
├── client/ # React frontend application (Vite)
│ ├── public/ # Manifest.json, sw.js service worker, icons
│ └── src/
│ ├── components/ # Navbar, Dashboard, TaskCard, TaskStats, TaskForm, AuthForm
│ ├── context/ # AuthContext, ThemeContext
│ ├── utils/ # api.js client wrapper with LocalStorage fallback
│ ├── App.jsx # Main layout router and background floating blobs
│ ├── index.css # Typography, glassmorphism classes, and keyframe animations
│ └── main.jsx # App mounting and Service Worker registration
│
├── server/ # Express backend server
│ ├── config/ # Passport.js strategy configuration
│ ├── middleware/ # JWT Authentication guards
│ ├── models/ # Mongoose database models (User, Task)
│ ├── routes/ # Express API controllers (auth, tasks)
│ ├── server.js # Express app entry and DB connections
│ └── package.json # Node script configuration
│
├── .vscode/ # IDE settings config
└── package.json # Workspace root concurrent script runnergit clone https://github.com/codexanjan/taskflow.git
cd taskflowYou can install dependencies for both the client and server folders in one command from the root folder:
npm run install:allCreate a .env file inside the server folder:
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_key
# Google OAuth 2.0 Credentials
GOOGLE_CLIENT_ID=your_google_client_id_here
GOOGLE_CLIENT_SECRET=your_google_client_secret_here
CLIENT_URL=http://localhost:5173You can start both the client and server concurrently from the root folder:
npm run dev- To run the frontend client only:
npm run client
- To run the backend server only:
(Note: If launched alone, the client will automatically notify you and launch in Guest Mode using LocalStorage for all operations).
npm run server
- Frontend: Vercel
- Backend: Render
- Database: MongoDB Atlas
Add screenshots here after completing the project.
- Email Notifications
- Team Collaboration
- Calendar Integration
- Real-Time Updates
- Mobile App Version
- AI Task Recommendations
This project is licensed under the MIT License - see the LICENSE file for details.
Anjan Shetty
- GitHub: codexanjan
⭐ If you like this project, don't forget to star the repository!
Made with ❤️ by Anjan Shetty
