A modern, feature-rich task management application built with Flask and enhanced UX.
- ✅ Smart Task Management - Create, edit, and organize tasks with priorities and categories
- 🔍 Advanced Search & Filtering - Find tasks quickly by title, category, priority, or status
- 📊 Progress Analytics - Track productivity with completion rates and statistics
- 📱 Responsive Design - Works perfectly on desktop, tablet, and mobile
- 🎨 Modern UI - Glass morphism design with smooth animations
- 💾 Persistent Storage - Tasks automatically saved to JSON file
- ⌨️ Keyboard Shortcuts - Ctrl+A to select all, Delete to remove selected
- 📝 Task Notes - Add detailed descriptions to tasks
- 📅 Due Dates - Set and track task deadlines
- 🗂️ Categories - Organize tasks (Work, Personal, Shopping, Health, etc.)
- 🎯 Priority Levels - High, Medium, Low priority system
- 🔄 Bulk Operations - Select multiple tasks for batch actions
- Python 3.8 or higher
- Flask and dependencies (see requirements.txt)
-
Clone or download the project:
git clone <repository-url> cd todo-app
-
Create a virtual environment (recommended):
python -m venv venv # On Windows: venv\Scripts\activate # On macOS/Linux: source venv/bin/activate
-
Install dependencies:
pip install -r requirements.txt
-
Create the project structure:
todo-app/ ├── app.py ├── requirements.txt ├── models/ │ └── todo.py ├── templates/ │ ├── index.html │ ├── about.html │ ├── 404.html │ └── 500.html └── static/ └── css/ └── style.css📦 ├─ .gitignore ├─ LICENSE ├─ README.md ├─ app.py ├─ models │ └─ todo.py ├─ requirements.txt ├─ static │ ├─ css │ │ └─ style.css │ └─ style.css ├─ tasks.json └─ templates ├─ 404.html ├─ 500.html ├─ Chatbot.html ├─ about.html ├─ chatbot-icon.svg ├─ index.html ├─ layout.html ├─ script.js └─ style.css©generated by Project Tree Generator
-
Run the application:
python app.py
-
Open your browser and visit:
http://localhost:5000
You can set these environment variables for additional configuration:
SECRET_KEY: Flask secret key for session management (default: 'your-secret-key-here')FLASK_ENV: Set to 'development' for debug mode
Tasks are automatically saved to a tasks.json file in the project root. This file is created automatically when you add your first task.
- Add a Task: Enter task title, select priority and category, optionally set due date
- Complete Task: Click the checkbox next to any task
- Edit Task: Double-click on task text or click the edit icon
- Delete Task: Click the delete icon or use bulk delete
- Search: Use the search box to find tasks by title or notes
- Filter: Use filter buttons to show specific types of tasks
- Bulk Selection: Use the select checkboxes and bulk action buttons
- Keyboard Shortcuts:
Ctrl+A: Select all tasksDelete: Delete selected tasks
- Categories: Organize tasks into Work, Personal, Shopping, Health, etc.
- Due Dates: Set deadlines and track overdue tasks
- Notes: Add detailed descriptions to tasks (click edit to access)
The application includes comprehensive error handling:
- 404 Page: Custom page for missing routes
- 500 Page: Custom page for server errors
- Form Validation: Client and server-side validation
- AJAX Error Handling: Graceful handling of API failures
The CSS uses CSS custom properties (variables) for easy theming. Edit the :root section in style.css to customize colors:
:root {
--primary-color: #6366f1;
--success-color: #10b981;
--warning-color: #f59e0b;
--danger-color: #ef4444;
/* ... more variables */
}Edit the category options in both index.html and the edit modal:
<option value="your-category">Your Category</option>The application provides several API endpoints:
GET /- Main todo list pagePOST /tasks- Create new taskPUT /tasks/<id>- Update existing taskDELETE /tasks/<id>- Delete taskGET /tasks/<id>/details- Get task detailsPOST /tasks/bulk-delete- Delete multiple tasksPOST /tasks/clear-completed- Clear all completed tasksGET /api/stats- Get task statisticsGET /api/categories- Get all categories
- Import Errors: Make sure you've installed all requirements
- Template Errors: Ensure all template files are in the
templates/directory - Static Files: CSS should be in
static/css/style.css - Port Conflicts: Change the port in
app.pyif 5000 is in use
To run in debug mode:
export FLASK_ENV=development # On macOS/Linux
set FLASK_ENV=development # On Windows
python app.pyThis project is licensed under the MIT License - see the LICENSE file for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
- Complete UI/UX overhaul
- Added task categories and due dates
- Implemented search functionality
- Added bulk operations
- Enhanced mobile responsiveness
- Added task statistics
- Improved error handling
- Basic task CRUD operations
- Priority system
- Simple UI
If you encounter any issues or have questions:
- Check the troubleshooting section
- Look at existing issues in the repository
- Create a new issue with detailed information
- Contact the development team
Happy Task Managing! 📋✨
