Skip to content

techpark-119/Todo-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

5 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“‹ TodoMaster - Advanced Task Management Application

TodoMaster Logo Node.js Express EJS

A modern, feature-rich todo application with beautiful UI/UX and comprehensive task management capabilities.

Demo โ€ข Features โ€ข Installation โ€ข Usage โ€ข API โ€ข Contributing


๐ŸŒŸ Features

๐Ÿ” Authentication & Security

  • ๐Ÿ”’ Secure User Registration & Login - Bcrypt password hashing
  • ๐Ÿ›ก๏ธ Session Management - Express sessions with secure cookies
  • ๐Ÿ‘ค User Isolation - Each user's data is completely separate

๐Ÿ“ Task Management

  • โœ… Complete CRUD Operations - Create, Read, Update, Delete todos
  • ๐Ÿท๏ธ Categories & Tags - Organize tasks with colorful categories and custom tags
  • ๐Ÿšฉ Priority Levels - High, Medium, Low priority with visual indicators
  • ๐Ÿ“… Due Dates - Calendar integration with overdue detection
  • โœ”๏ธ Task Completion - Mark tasks as completed with progress tracking

๐ŸŽจ Modern UI/UX

  • ๐ŸŒ™ Light/Dark Mode Toggle - Beautiful theme switching with smooth transitions
  • ๐Ÿ“ฑ Fully Responsive Design - Perfect experience on desktop, tablet, and mobile
  • ๐ŸŽญ Glassmorphism & Gradients - Modern visual effects and styling
  • โšก Smooth Animations - Micro-interactions and loading states
  • ๐ŸŽฏ Drag & Drop Reordering - Intuitive task organization

๐Ÿ” Advanced Functionality

  • ๐Ÿ”Ž Real-time Search - Instant search with debounced input
  • ๐ŸŽ›๏ธ Multi-filter System - Filter by category, priority, and completion status
  • ๐Ÿ“Š Progress Tracking - Visual progress bars and statistics dashboard
  • ๐Ÿ“ค Data Export - Download your tasks as JSON for backup
  • ๐Ÿ’พ Auto-save Drafts - Never lose your work while typing
  • โŒจ๏ธ Keyboard Shortcuts - Power user features for efficiency

๐Ÿ”” Notifications & Feedback

  • ๐ŸŽ‰ Toast Notifications - Success, error, and info messages
  • ๐Ÿ“ˆ Live Statistics - Real-time task completion tracking
  • ๐ŸŽจ Visual Feedback - Hover effects, loading states, and animations

๐Ÿ› ๏ธ Technology Stack

Technology Purpose Version
Node.js Runtime Environment 18+
Express.js Web Framework 4.18+
EJS Template Engine 3.1+
JSON Files Database Storage -
bcrypt Password Hashing 5.1+
UUID Unique ID Generation 9.0+
CSS3 Styling & Animations -
JavaScript (ES6+) Frontend Logic -

๐Ÿ“ฆ Installation

Prerequisites

  • Node.js (v14.0.0 or higher)
  • npm (comes with Node.js)

Quick Start

  1. Clone the Repository
git clone https://github.com/techpark-119/Todo-App.git
  1. Install Dependencies
npm install
  1. Start the Application
# Development mode with auto-restart
npm run dev

# Production mode
npm start
  1. Access the Application
Open your browser and navigate to: http://localhost:3000

๐ŸŽฏ First Time Setup

  1. Register a new account on the login page
  2. Create your first category (optional)
  3. Add your first todo task
  4. Explore all the features!

๐Ÿ“ Project Structure

Todo-App/
โ”œโ”€โ”€ ๐Ÿ“„ app.js                 # Main Express server
โ”œโ”€โ”€ ๐Ÿ“„ package.json          # Project dependencies
โ”œโ”€โ”€ ๐Ÿ“„ README.md             # This file
โ”œโ”€โ”€ ๐Ÿ“ views/                # EJS templates
โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ index.ejs         # Main todo interface
โ”‚   โ””โ”€โ”€ ๐Ÿ“„ auth.ejs          # Authentication page
โ”œโ”€โ”€ ๐Ÿ“ public/               # Static assets
โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ styles.css        # Main application styles
โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ auth.css          # Authentication styles
โ”‚   โ””โ”€โ”€ ๐Ÿ“„ script.js         # Frontend JavaScript
โ””โ”€โ”€ ๐Ÿ“ data/                 # JSON database (auto-created)
    โ”œโ”€โ”€ ๐Ÿ“„ users.json        # User accounts
    โ”œโ”€โ”€ ๐Ÿ“„ todos.json        # Todo tasks
    โ””โ”€โ”€ ๐Ÿ“„ categories.json   # Task categories

๐ŸŽฎ Usage Guide

๐Ÿ  Dashboard Overview

  • Header: Logo, user welcome, theme toggle, export, logout
  • Sidebar: Search, filters, statistics, categories
  • Main Area: Todo list with drag-and-drop functionality

โž• Creating Tasks

  1. Click the "Add Task" button
  2. Fill in the task details:
    • Title (required)
    • Description (optional)
    • Category (select from existing)
    • Priority (High/Medium/Low)
    • Due Date (optional)
    • Tags (comma-separated)
  3. Click "Save Task"

โœ๏ธ Managing Tasks

  • Complete: Check the checkbox next to any task
  • Edit: Click the edit icon on any task
  • Delete: Click the delete icon (with confirmation)
  • Reorder: Drag tasks using the grip handle

๐ŸŽจ Customization

  • Theme: Toggle between light and dark modes
  • Categories: Create custom categories with colors
  • Filters: Use search and filters to find specific tasks

โŒจ๏ธ Keyboard Shortcuts

Shortcut Action
Ctrl/Cmd + N Create new task
Ctrl/Cmd + F Focus search
Ctrl/Cmd + T Toggle theme
Ctrl/Cmd + E Export data
Escape Close modal

๐Ÿ”Œ API Endpoints

Authentication

  • POST /register - Register new user
  • POST /login - User login
  • POST /logout - User logout

Todos

  • GET / - Main dashboard (requires auth)
  • POST /api/todos - Create new todo
  • PUT /api/todos/:id - Update todo
  • DELETE /api/todos/:id - Delete todo
  • POST /api/todos/reorder - Reorder todos

Categories

  • POST /api/categories - Create new category

Utilities

  • GET /api/search - Search and filter todos
  • GET /api/export - Export user data

๐ŸŽจ Design Features

Color Schemes

  • Light Mode: Clean whites and soft grays
  • Dark Mode: Deep blues and elegant darks
  • Accent Colors: Vibrant gradients and modern palettes

Animations

  • Page Transitions: Smooth fade-ins and slide effects
  • Hover States: Interactive button and card effects
  • Loading States: Professional spinners and skeleton screens
  • Drag & Drop: Visual feedback during interactions

Responsive Design

  • Desktop: Full sidebar and multi-column layout
  • Tablet: Adaptive layout with collapsible sidebar
  • Mobile: Stack layout with touch-optimized controls

๐Ÿ”ง Configuration

Environment Variables

Create a .env file in the root directory:

PORT=3000
SESSION_SECRET=your-super-secret-key-change-this-in-production
NODE_ENV=development

Database Configuration

The application uses JSON files for data storage:

  • Location: ./data/ directory
  • Auto-creation: Files are created automatically on first run
  • Backup: Simply copy the data folder

๐Ÿš€ Deployment

Local Development

npm run dev

Production

npm start

Docker (Optional)

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["npm", "start"]

Heroku

git add .
git commit -m "Deploy to Heroku"
heroku create your-app-name
git push heroku main

๐Ÿงช Testing

Manual Testing Checklist

  • User registration and login
  • Create, edit, delete todos
  • Search and filter functionality
  • Drag and drop reordering
  • Theme switching
  • Data export
  • Responsive design on different devices

Performance Testing

  • Lighthouse Score: Aim for 90+ in all categories
  • Load Testing: Test with 100+ todos
  • Browser Compatibility: Chrome, Firefox, Safari, Edge

๐Ÿ› Troubleshooting

Common Issues

Q: Port 3000 is already in use

# Kill process on port 3000
sudo lsof -t -i tcp:3000 | xargs kill -9

# Or use a different port
PORT=3001 npm start

Q: Data files not being created

  • Ensure write permissions in the project directory
  • Check console for error messages
  • Verify Node.js version compatibility

Q: Sessions not persisting

  • Check if SESSION_SECRET is set
  • Verify browser cookies are enabled
  • Clear browser cache and cookies

๐Ÿค Contributing

We welcome contributions! Here's how you can help:

Getting Started

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Run tests and ensure code quality
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

Development Guidelines

  • Follow existing code style and conventions
  • Add comments for complex logic
  • Test your changes thoroughly
  • Update documentation if needed

Bug Reports

Please include:

  • Operating system and version
  • Node.js version
  • Browser and version
  • Steps to reproduce
  • Expected vs actual behavior

๐Ÿ“„ License

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

MIT License

Copyright (c) 2024 TodoMaster Team

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

๐Ÿ‘ฅ Authors & Acknowledgments

Created By

  • Arham Ali - Initial work and ongoing development

Special Thanks

  • Font Awesome for the beautiful icons
  • Google Fonts for the Inter typeface
  • The Node.js and Express.js communities
  • All contributors and users

Inspiration

This project was inspired by modern productivity apps like Todoist, Any.do, and TickTick, with a focus on simplicity and powerful features.


๐Ÿ“Š Project Stats

GitHub stars GitHub forks GitHub issues GitHub license


๐Ÿ”ฎ Roadmap

Upcoming Features

  • ๐Ÿ“ฑ Mobile app (React Native)
  • ๐Ÿ”„ Real-time collaboration
  • ๐Ÿ“ง Email notifications
  • ๐Ÿ—‚๏ธ File attachments
  • ๐Ÿ“Š Advanced analytics
  • ๐Ÿ”— Third-party integrations
  • ๐ŸŒ Multi-language support

Version History

  • v1.0.0 - Initial release with core features
  • v1.1.0 - Coming soon: Mobile optimizations
  • v2.0.0 - Planned: Real-time features

Made with โค๏ธ by The Arham Ali

โญ Star this repo โ€ข ๐Ÿ› Report Bug โ€ข โœจ Request Feature

About

Advanced Todo Application with modern UI/UX and comprehensive features

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published