A beautiful, modern task management application built with React, Node.js, and MongoDB - The ultimate productivity tool for teams and individuals
Keywords: Task Management, Todo List, Productivity App, React Application, MERN Stack, Project Management, Team Collaboration, Free Task Manager
TaskFlow is a free, open-source task management application designed for modern teams and individuals who want to boost their productivity. Built with the latest web technologies including React, Node.js, and MongoDB, TaskFlow offers a seamless experience for managing tasks, projects, and daily workflows.
- Developers managing coding projects and sprints
- Students organizing assignments and study schedules
- Teams collaborating on projects and deadlines
- Freelancers tracking client work and deliverables
- Anyone looking for a beautiful, free alternative to paid task managers
- 🎯 What is TaskFlow?
- ✨ Features & Benefits
- 🚀 Quick Start Guide
- 🎯 Live Demo & Examples
- �️ Technology Stack
- 📁 Project Architecture
- 🎨 Screenshots & UI Gallery
- 🔧 Setup & Configuration
- 📱 API Reference
- 🤝 Contributing & Community
- 📄 License & Legal
- 👨💻 About the Developer
- 🔗 Related Projects
- Smart Task Creation - Quickly create tasks with rich descriptions, priorities, and categories
- Advanced Filtering - Find tasks instantly with powerful search and filter options
- Priority Management - Organize tasks by urgency with visual priority indicators (High, Medium, Low)
- Category Organization - Create custom categories with color coding for better organization
- Due Date Tracking - Never miss deadlines with calendar integration and notifications
- Task Status Management - Track progress from todo → in-progress → completed
- Bulk Operations - Edit, delete, or move multiple tasks simultaneously
- Task Archiving - Keep completed tasks for reference while maintaining clean workspace
- Dark Theme Design - Beautiful, eye-friendly dark interface with blue accents
- Responsive Layout - Works perfectly on desktop, tablet, and mobile devices
- Real-time Updates - See changes instantly without page refreshes
- Smooth Animations - Polished interactions with Framer Motion animations
- Intuitive Navigation - Clean, user-friendly interface design
- Keyboard Shortcuts - Power-user friendly with keyboard navigation support
- Accessibility - WCAG compliant with screen reader support
- JWT Authentication - Industry-standard secure user authentication
- Data Privacy - Your tasks are private and isolated from other users
- Fast Performance - Optimized React frontend with efficient data loading
- Data Validation - Comprehensive input validation on client and server
- Error Handling - Graceful error recovery with user-friendly messages
- Cross-platform - Works on Windows, macOS, Linux, iOS, and Android browsers
- 100% Free Forever - No premium plans, no feature limitations
- Open Source - Transparent code you can audit and contribute to
- No Vendor Lock-in - Export your data anytime
- Privacy Focused - No tracking, no ads, no data selling
- Self-hostable - Run on your own servers for complete control
- Modern Tech Stack - Built with latest React, Node.js, and MongoDB
🌐 Try TaskFlow Now: https://taskflow-sagar.vercel.app/
Experience TaskFlow without signing up! Use our demo account to explore all features:
📧 Demo Email: atharvawandhare@gmail.com
🔑 Demo Password: 12345678
- ✅ Create and manage tasks with different priorities
- 🎨 Organize tasks with custom categories and colors
- 📅 Set due dates and track deadlines
- 📱 Test the responsive design on your mobile device
- 🔍 Use advanced search and filtering options
- 📊 View task analytics and progress tracking
- Software Development: Track bugs, features, and sprint tasks
- Project Management: Coordinate team deliverables and milestones
- Academic Work: Organize assignments, research, and study schedules
- Personal Productivity: Manage daily tasks, goals, and habits
- Small Business: Track client work, deadlines, and business tasks
- React 18 - Latest React with hooks, context, and concurrent features
- Vite - Lightning-fast build tool and development server
- Tailwind CSS - Utility-first CSS framework for rapid UI development
- Framer Motion - Production-ready motion library for React animations
- Lucide React - Beautiful, customizable icon library
- Radix UI - Low-level UI primitives for accessibility and customization
- React Router - Declarative routing for React applications
- Node.js - JavaScript runtime built on Chrome's V8 JavaScript engine
- Express.js - Fast, unopinionated web framework for Node.js
- MongoDB - Document-oriented NoSQL database for flexible data storage
- Mongoose - Elegant MongoDB object modeling for Node.js
- JWT (jsonwebtoken) - Industry standard for secure token-based authentication
- bcryptjs - Password hashing library for Node.js
- CORS - Cross-Origin Resource Sharing middleware
- Vercel - Frontend deployment with automatic deployments from Git
- Render - Backend hosting with auto-scaling and monitoring
- MongoDB Atlas - Cloud database with built-in security and monitoring
- Git & GitHub - Version control and collaborative development
- ESLint & Prettier - Code linting and formatting for consistency
- VS Code - Recommended IDE with React and Node.js extensions
- Postman - API testing and documentation
- MongoDB Compass - GUI for MongoDB database management
- React DevTools - Browser extension for debugging React components
- Node.js (v16 or higher) - Download here
- npm or yarn package manager
- MongoDB (local installation or MongoDB Atlas account)
- Git for version control
# Clone TaskFlow repository
git clone https://github.com/SagarSuryakantWaghmare/taskflow.git
cd taskflow# Install root dependencies for concurrent development
npm install
# Install client dependencies
cd client
npm install
# Install server dependencies
cd ../server
npm install
cd ..Create environment files for both client and server:
📁 Client Environment (client/.env)
# Client Configuration
VITE_API_URL=http://localhost:3000/api
VITE_APP_NAME=TaskFlow
VITE_APP_VERSION=1.0.0📁 Server Environment (server/.env)
# Server Configuration
NODE_ENV=development
PORT=3000
# Database Configuration
MONGODB_URI=mongodb://localhost:27017/taskflow
# Or use MongoDB Atlas:
# MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/taskflow
# Authentication
JWT_SECRET=your-super-secret-jwt-key-min-32-characters
JWT_EXPIRES_IN=7d
BCRYPT_SALT_ROUNDS=12
# CORS Configuration
CLIENT_URL=http://localhost:5173# Option 1: Start both client and server simultaneously (Recommended)
npm run dev
# Option 2: Start them separately in different terminals
# Terminal 1 - Start server
cd server && npm run dev
# Terminal 2 - Start client
cd client && npm run dev- Frontend: http://localhost:5173
- Backend API: http://localhost:3000
- API Documentation: http://localhost:3000/api-docs (if configured)
- Create Account - Register a new user account
- Create Categories - Set up task categories for organization
- Add Your First Task - Start with a simple task to test functionality
- Explore Features - Try different priorities, due dates, and filters
TaskFlow follows a clean, scalable architecture pattern separating frontend and backend concerns:
taskflow/ # Root project directory
├── 📁 client/ # React Frontend Application
│ ├── 📁 public/ # Static assets and favicon
│ │ ├── vite.svg # Vite logo
│ │ └── index.html # HTML template
│ ├── 📁 src/ # Source code
│ │ ├── 📁 components/ # Reusable React components
│ │ │ ├── 📁 landing/ # Landing page components
│ │ │ │ ├── hero-section.jsx
│ │ │ │ ├── features-section.jsx
│ │ │ │ ├── cta-section.jsx
│ │ │ │ └── pricing-section.jsx
│ │ │ ├── 📁 layout/ # Layout and navigation components
│ │ │ │ ├── navbar.jsx
│ │ │ │ ├── footer.jsx
│ │ │ │ └── not-found.jsx
│ │ │ └── 📁 ui/ # UI components (shadcn/ui)
│ │ │ ├── button.jsx
│ │ │ ├── card.jsx
│ │ │ ├── input.jsx
│ │ │ ├── form.jsx
│ │ │ └── dialog.jsx
│ │ ├── 📁 lib/ # Utilities and configurations
│ │ │ ├── utils.js # Helper functions
│ │ │ └── api.js # API configuration
│ │ ├── 📁 pages/ # Page components and routes
│ │ │ ├── landing-page.jsx # Marketing landing page
│ │ │ ├── login-page.jsx # User authentication
│ │ │ ├── signup-page.jsx # User registration
│ │ │ ├── dashboard.jsx # Main task management dashboard
│ │ │ ├── about-page.jsx # About page
│ │ │ ├── privacy-page.jsx # Privacy policy
│ │ │ └── terms-page.jsx # Terms of service
│ │ ├── 📁 assets/ # Images and static files
│ │ │ ├── react.svg
│ │ │ ├── auth.png
│ │ │ └── image.png
│ │ ├── App.jsx # Main App component
│ │ ├── main.jsx # Application entry point
│ │ ├── index.css # Global styles
│ │ └── App.css # Component styles
│ ├── package.json # Client dependencies
│ ├── vite.config.js # Vite configuration
│ ├── tailwind.config.js # Tailwind CSS configuration
│ └── eslint.config.js # ESLint configuration
├── 📁 server/ # Node.js Backend API
│ ├── 📁 src/ # Server source code
│ │ ├── 📁 controllers/ # Route controllers (business logic)
│ │ │ ├── authControllers.js # Authentication logic
│ │ │ └── todoController.js # Task management logic
│ │ ├── 📁 middleware/ # Custom middleware functions
│ │ │ └── auth.js # JWT authentication middleware
│ │ ├── 📁 models/ # MongoDB data models
│ │ │ ├── user.models.js # User schema and methods
│ │ │ ├── todo.models.js # Task schema and methods
│ │ │ └── category.models.js # Category schema and methods
│ │ ├── 📁 routes/ # API route definitions
│ │ │ ├── auth.js # Authentication routes
│ │ │ └── todos.js # Task management routes
│ │ ├── 📁 db/ # Database configuration
│ │ │ └── index.js # MongoDB connection setup
│ │ ├── app.js # Express app configuration
│ │ ├── index.js # Server entry point
│ │ └── constant.js # Application constants
│ ├── package.json # Server dependencies
│ └── render.yaml # Render deployment configuration
├── 📁 screenshots/ # Application screenshots for README
│ ├── home.png # Landing page screenshot
│ ├── features.png # Features showcase
│ ├── signin.png # Authentication interface
│ ├── macui.png # MacBook UI demo
│ └── footer.png # Footer design
├── package.json # Root package.json for concurrent development
├── README.md # Project documentation
└── LICENSE # MIT license file
- Frontend: Component-based React architecture with hooks and context
- Backend: RESTful API with Express.js and MongoDB
- Authentication: JWT-based stateless authentication
- Database: Document-oriented storage with Mongoose ODM
- Styling: Utility-first CSS with Tailwind CSS
- State Management: React Context API and local state
Modern landing page with hero section and feature highlights
Comprehensive dashboard with analytics and task overview
Clean and secure authentication interface
Interactive MacBook scroll component showcasing the application
Professional footer with links and developer information
MongoDB Local Setup:
# Install MongoDB
# macOS
brew install mongodb/brew/mongodb-community
# Ubuntu
sudo apt-get install mongodb
# Start MongoDB
mongodMongoDB Atlas Setup:
- Create account at MongoDB Atlas
- Create a new cluster
- Get connection string
- Add to server
.envfile
Required Server Environment Variables:
MONGODB_URI- MongoDB connection stringJWT_SECRET- Secret key for JWT tokensCLIENT_URL- Frontend URL for CORSPORT- Server port (default: 3000)
Optional Server Environment Variables:
NODE_ENV- Environment (development/production)JWT_EXPIRES_IN- JWT expiration timeBCRYPT_SALT_ROUNDS- Password hashing rounds
POST /api/auth/register
Content-Type: application/json
{
"name": "John Doe",
"email": "john@example.com",
"password": "password123"
}POST /api/auth/login
Content-Type: application/json
{
"email": "john@example.com",
"password": "password123"
}GET /api/todos
Authorization: Bearer <token>
POST /api/todos
Authorization: Bearer <token>
Content-Type: application/json
{
"title": "Task Title",
"description": "Task Description",
"priority": "high",
"category": "work",
"dueDate": "2024-12-31"
}GET /api/categories
Authorization: Bearer <token>
POST /api/categories
Authorization: Bearer <token>
Content-Type: application/json
{
"name": "Category Name",
"color": "bg-blue-500"
}We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature- Commit your changes
git commit -m 'Add some amazing feature'- Push to the branch
git push origin feature/amazing-feature- Open a Pull Request
- Follow the existing code style
- Write meaningful commit messages
- Add comments for complex logic
- Test your changes thoroughly
- Update documentation as needed
- Use ESLint and Prettier for formatting
- Follow React best practices
- Use TypeScript-style JSDoc comments
- Maintain consistent naming conventions
This project is licensed under the MIT License - see the LICENSE file for details.
Passionate full-stack developer with expertise in modern web technologies. Specializing in:
- Frontend: React.js, Tailwind CSS, Modern UI/UX Design
- Backend: Node.js, Express.js, MongoDB, RESTful APIs
- Mobile: Responsive Design, Progressive Web Apps
⭐ If you found this project helpful, please give it a star! ⭐
🚀 Visit TaskFlow Live | 📖 Read the Docs | 🐛 Report Bug
Made with ❤️ by Sagar Waghmare