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.
- ποΈ 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
- π¨ 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
- β 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
- β° 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
- π₯ 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
- π’ Node.js (v18 or higher)
- π¦ npm (comes with Node.js)
- βοΈ Gmail account (for email reminders)
-
Clone the repository
git clone https://github.com/KGFCH2/ToDo_List.git cd ToDo_List -
Install dependencies
npm install
-
π Set up environment variables
Create a
.envfile 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.
-
βΆοΈ Start the servernpm start
-
π Open in browser
http://localhost:3000
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
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.
The app uses CSS custom properties for easy customization:
:root {
--primary: #6366f1;
--accent: #06b6d4;
--bg-dark: #0f172a;
--success: #10b981;
--warning: #f59e0b;
--danger: #f43f5e;
}For email reminders to work:
- Enable 2-Step Verification on your Google account
- Generate an App Password at Google App Passwords
- Add credentials to your
.envfile - Restart the server
Email reminders are sent 15 minutes before the task's end date/time.
| 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 |
npm start # Start the production server
npm run dev # Start with nodemon (auto-reload)- π 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
Clean authentication interface with Remember Me option
Quick overview of tasks, completion stats, and productivity metrics
Intuitive task creation with priorities, dates, and filtering
Visual insights: completion rate, streaks, and priority distribution
Customize theme, manage email reminders, and account preferences
- π΄ Fork the repository
- πΏ Create your feature branch (
git checkout -b feature/AmazingFeature) - πΎ Commit your changes (
git commit -m 'Add some AmazingFeature') - π Push to the branch (
git push origin feature/AmazingFeature) - π Open a Pull Request
- π Push notifications for tasks
- π Cloud sync across devices
- π₯ Team collaboration features
- π± Mobile app (React Native)
- π― Task categories and tags
- π Advanced analytics dashboard
This project is licensed under the MIT License - see the LICENSE file for details.
Babin Bid π
- GitHub: @KGFCH2
- π§ Email: babinbid05@gmail.com
- π Project: Study & Learning Portfolio
Made with β€οΈ by Babin Bid
β Star this repo if you found it helpful!