Skip to content

A full-stack Todo application built with the MERN stack (MongoDB, Express.js, React, Node.js). Features include user authentication, CRUD operations, and responsive design. Demonstrates modern web development practices with RESTful APIs, JWT authentication, and component-based architecture.

SagarSuryakantWaghmare/taskflow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 TaskFlow - Modern Task Management Application | Free Todo List App | React Task Manager 2025

TaskFlow - Modern Task Management Application

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

Live Demo GitHub License React Node.js MongoDB

🎯 What is TaskFlow?

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.

🔍 Perfect for:

  • 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

📋 Table of Contents

✨ Features & Benefits

🎯 Core Task Management Features

  • 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

🎨 Modern User Experience

  • 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

🔒 Security & Performance

  • 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

🆓 Why Choose TaskFlow?

  • 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

🎯 Live Demo & Examples

🌐 Try TaskFlow Now: https://taskflow-sagar.vercel.app/

🎮 Interactive Demo

Experience TaskFlow without signing up! Use our demo account to explore all features:

📧 Demo Email: atharvawandhare@gmail.com
🔑 Demo Password: 12345678

🌟 What You Can Try:

  • ✅ 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

🎯 Perfect Use Cases:

  • 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

🛠️ Technology Stack

🎨 Frontend Technologies

  • 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

⚙️ Backend Technologies

  • 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

🚀 DevOps & Deployment

  • 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

📱 Development Tools

  • 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

🚀 Quick Start Guide

⚡ Prerequisites

  • Node.js (v16 or higher) - Download here
  • npm or yarn package manager
  • MongoDB (local installation or MongoDB Atlas account)
  • Git for version control

📦 Installation Steps

1. Clone the Repository

# Clone TaskFlow repository
git clone https://github.com/SagarSuryakantWaghmare/taskflow.git
cd taskflow

2. Install Dependencies

# Install root dependencies for concurrent development
npm install

# Install client dependencies
cd client
npm install

# Install server dependencies  
cd ../server
npm install
cd ..

3. Environment Setup

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

4. Start Development Servers

# 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

5. Access the Application

🎯 First Steps After Installation

  1. Create Account - Register a new user account
  2. Create Categories - Set up task categories for organization
  3. Add Your First Task - Start with a simple task to test functionality
  4. Explore Features - Try different priorities, due dates, and filters

📁 Project Architecture

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

🏗️ Architecture Patterns

  • 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

🎨 Screenshots

🏠 Landing Page

Landing Page Modern landing page with hero section and feature highlights

📊 Dashboard

Dashboard Comprehensive dashboard with analytics and task overview

🔐 Authentication

Sign In Clean and secure authentication interface

💻 MacBook UI Demo

MacBook UI Interactive MacBook scroll component showcasing the application

📱 Footer

Footer Professional footer with links and developer information

🔧 Configuration

Database Setup

MongoDB Local Setup:

# Install MongoDB
# macOS
brew install mongodb/brew/mongodb-community

# Ubuntu
sudo apt-get install mongodb

# Start MongoDB
mongod

MongoDB Atlas Setup:

  1. Create account at MongoDB Atlas
  2. Create a new cluster
  3. Get connection string
  4. Add to server .env file

Environment Variables

Required Server Environment Variables:

  • MONGODB_URI - MongoDB connection string
  • JWT_SECRET - Secret key for JWT tokens
  • CLIENT_URL - Frontend URL for CORS
  • PORT - Server port (default: 3000)

Optional Server Environment Variables:

  • NODE_ENV - Environment (development/production)
  • JWT_EXPIRES_IN - JWT expiration time
  • BCRYPT_SALT_ROUNDS - Password hashing rounds

📱 API Documentation

Authentication Endpoints

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"
}

Task Endpoints

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"
}

Category Endpoints

GET /api/categories
Authorization: Bearer <token>

POST /api/categories
Authorization: Bearer <token>
Content-Type: application/json

{
  "name": "Category Name",
  "color": "bg-blue-500"
}

🤝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch
git checkout -b feature/amazing-feature
  1. Commit your changes
git commit -m 'Add some amazing feature'
  1. Push to the branch
git push origin feature/amazing-feature
  1. Open a Pull Request

Development Guidelines

  • Follow the existing code style
  • Write meaningful commit messages
  • Add comments for complex logic
  • Test your changes thoroughly
  • Update documentation as needed

Code Style

  • Use ESLint and Prettier for formatting
  • Follow React best practices
  • Use TypeScript-style JSDoc comments
  • Maintain consistent naming conventions

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

👨‍💻 Developer

Sagar Suryakant Waghmare

Full Stack Developer

GitHub LinkedIn Email Behance

About the Developer

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

About

A full-stack Todo application built with the MERN stack (MongoDB, Express.js, React, Node.js). Features include user authentication, CRUD operations, and responsive design. Demonstrates modern web development practices with RESTful APIs, JWT authentication, and component-based architecture.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published