Skip to content

KGFCH2/ToDo_List

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

29 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

TaskFlow Pro βœ…

A modern, study-oriented task management application with a beautiful glassmorphism UI, email reminders, and comprehensive analytics.

πŸ“š Study Project – Built by Babin Bid for learning and personal productivity.

TaskFlow Pro Node.js License

✨ Features

🧩 Core Functionality

  • πŸ—‚οΈ Task Management - Create, edit, delete, and complete tasks
  • 🚦 Priority Levels - Low, Medium, and High priority with visual indicators
  • πŸ“… Date Scheduling - Set start and end dates for tasks
  • πŸ”Ž Filtering - View All, Pending, or Completed tasks
  • πŸ’Ύ Persistent Storage - Tasks saved to localStorage per user

πŸŽ›οΈ User Experience

  • 🎨 Beautiful UI - Modern glassmorphism design with blur effects
  • πŸ–ΌοΈ Dynamic Backgrounds - Section-specific blurred background images
  • πŸŒ— Dark/Light Theme - Toggle between themes with smooth transitions
  • πŸ“± Responsive Design - Works seamlessly on desktop and mobile
  • ⏳ Todo-List Loader - Beautiful animated loader with checkbox animations
  • πŸ”„ Session Management - Auto-login with optional "Remember Me" feature

πŸ“Š Analytics & Insights

  • βœ… Completion Rate - Track your task completion percentage
  • πŸ† Tasks Completed - Total completed tasks counter
  • πŸ“ˆ Average Tasks/Day - Daily productivity metric
  • πŸ”₯ Day Streak - Consecutive days with task completions
  • πŸ“Š Priority Distribution - Visual breakdown of task priorities

βœ‰οΈ Email Reminders

  • ⏰ Automated Reminders - Get email notifications 15 minutes before task due time
  • 🧾 Professional Templates - Beautiful HTML email templates
  • πŸ” Toggle Control - Enable/disable email reminders in settings

πŸ” Authentication

  • πŸ‘₯ User Accounts - Sign up and sign in with email/password
  • πŸ“Œ Remember Me - Optional persistent sessions across browser restarts
  • πŸ’Ύ Session Storage - Automatic login during current session (even without Remember Me)
  • πŸ”’ Per-User Data - Tasks are stored separately for each user
  • πŸ” Secure Logout - Clean session cleanup on sign out

πŸš€ Getting Started

🧾 Prerequisites

  • 🟒 Node.js (v18 or higher)
  • πŸ“¦ npm (comes with Node.js)
  • βœ‰οΈ Gmail account (for email reminders)

πŸ› οΈ Installation

  1. Clone the repository

    git clone https://github.com/KGFCH2/ToDo_List.git
    cd ToDo_List
  2. Install dependencies

    npm install
  3. πŸ”‘ Set up environment variables

    Create a .env file in the root directory:

    EMAIL_USER=your-email@gmail.com
    EMAIL_PASSWORD=your-app-password
    APP_URL=http://localhost:3000
    PORT=3000

    Note: For Gmail, you need to use an App Password, not your regular password. Enable 2-Step Verification first, then generate an App Password.

  4. ▢️ Start the server

    npm start
  5. 🌐 Open in browser

    http://localhost:3000
    

πŸ“ Project Structure

To-Do/
β”œβ”€β”€ πŸ“„ todo.html          # πŸ” Secure entry page (home/auth)
β”œβ”€β”€ πŸ“„ workspace.html     # 🧩 Main workspace (Tasks, Analytics, Settings)
β”œβ”€β”€ 🎨 styles.css         # 🎨 Global styling, themes, blurred backgrounds
β”œβ”€β”€ βš™οΈ app.js             # 🧠 Frontend logic: routing, tasks, auth, analytics
β”œβ”€β”€ πŸ”„ loader.js          # ⏳ Todo-list themed loader component
β”œβ”€β”€ 🎭 loader.css         # πŸ’… Loader animations and styles
β”œβ”€β”€ πŸ–₯️ server.js          # πŸ“‘ Express backend: APIs + email reminders
β”œβ”€β”€ πŸͺͺ favicon.svg        # 🎯 App icon
β”œβ”€β”€ πŸ“¦ package.json       # πŸ“‹ NPM scripts and dependencies
β”œβ”€β”€ πŸ” .env               # πŸ”‘ Environment variables (not committed)
β”œβ”€β”€ πŸ™ˆ .gitignore         # πŸ“ Git ignore rules
β”œβ”€β”€ βš–οΈ LICENSE            # βš–οΈ MIT License (Babin Bid)
└── πŸ“˜ README.md          # πŸ“– Project documentation

🎨 Theming

TaskFlow Pro supports both dark and light themes:

  • Dark Theme (default) - Deep slate background with vibrant accents
  • Light Theme - Clean white background with subtle shadows

Toggle themes using the sun/moon button in the header.

πŸ§ͺ CSS Variables

The app uses CSS custom properties for easy customization:

:root {
    --primary: #6366f1;
    --accent: #06b6d4;
    --bg-dark: #0f172a;
    --success: #10b981;
    --warning: #f59e0b;
    --danger: #f43f5e;
}

βœ‰οΈ Email Setup

For email reminders to work:

  1. Enable 2-Step Verification on your Google account
  2. Generate an App Password at Google App Passwords
  3. Add credentials to your .env file
  4. Restart the server

Email reminders are sent 15 minutes before the task's end date/time.

πŸ“‘ API Endpoints

Method Endpoint Description πŸ“‹ Status
GET / 🏠 Serve main HTML page βœ… Active
GET /api/health πŸ’š Health check βœ… Active
POST /api/send-reminder πŸ“§ Send immediate reminder email βœ… Active
POST /api/schedule-reminder ⏰ Schedule a future reminder βœ… Active

πŸ”§ Development

βš™οΈ Scripts

npm start       # Start the production server
npm run dev     # Start with nodemon (auto-reload)

🧰 Tech Stack

  • 🌐 Frontend: Vanilla JavaScript, CSS3, HTML5
  • πŸ–₯️ Backend: Node.js, Express.js
  • πŸ“§ Email: Nodemailer with Gmail SMTP
  • πŸ’Ύ Storage: localStorage & sessionStorage (client-side)
  • 🎨 UI/UX: Glassmorphism, CSS animations, Dynamic backgrounds
  • ⏳ Loader: Custom todo-list themed animated loader

πŸ“Έ Screenshots

πŸ” Sign-In

Login Screen Clean authentication interface with Remember Me option

🏠 Home Dashboard

Home Dashboard Quick overview of tasks, completion stats, and productivity metrics

βœ… Task Management

Task Management Intuitive task creation with priorities, dates, and filtering

πŸ“Š Analytics

Analytics & Insights Visual insights: completion rate, streaks, and priority distribution

βš™οΈ Settings

Settings Customize theme, manage email reminders, and account preferences

🀝 Contributing

  1. 🍴 Fork the repository
  2. 🌿 Create your feature branch (git checkout -b feature/AmazingFeature)
  3. πŸ’Ύ Commit your changes (git commit -m 'Add some AmazingFeature')
  4. πŸš€ Push to the branch (git push origin feature/AmazingFeature)
  5. πŸ”€ Open a Pull Request

πŸ’‘ Future Enhancements

  • πŸ”” Push notifications for tasks
  • 🌐 Cloud sync across devices
  • πŸ‘₯ Team collaboration features
  • πŸ“± Mobile app (React Native)
  • 🎯 Task categories and tags
  • πŸ“Š Advanced analytics dashboard

πŸ“„ License

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

πŸ‘€ Author

Babin Bid πŸŽ“


Made with ❀️ by Babin Bid
⭐ Star this repo if you found it helpful!

About

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Β 
Β 
Β 

Contributors