A modern, feature-rich to-do list application built with Flask, WTForms, and Bootstrap.
Easily manage tasks, subtasks, deadlines, and priorities with a clean, responsive interface.
- Features
- Demo Video
- Installation
- Usage
- Technical Details
- File Structure
- Contributing
- Roadmap
- Troubleshooting
- License
- Author
- Acknowledgments
- Support
- Add, view, edit, and delete tasks
- Organize tasks with due dates and priorities
- Track completion status in real-time
- Create and manage subtasks under each main task
- Priority labels: High, Medium, Low
- Task metadata: Created date, due date, and status
- Subtask checkboxes with instant updates
- Responsive Bootstrap-based layout
- Sidebar for task list, detail panel for task info
- Color-coded priority highlights
- Clean hover and active item states
- Quick edit form for updating tasks inline
- AJAX-based updates (no page reloads)
- Scrollable task list and descriptions
To-do.demo.mp4
- Python 3.8 or higher
- pip package manager
- Virtual environment recommended
git clone https://github.com/vidhun05/flask-todo.git
cd flask-todo
pip install -r requirements.txt
flask run- Start the Flask server (
flask run) - Open your browser at
http://127.0.0.1:5000 - Add a new task using the form
- Click on a task in the sidebar to view details
- Mark tasks as complete or delete them when done
- Edit tasks directly from the detail panel
- Flask - Web framework
- WTForms + Flask-WTF - Form handling & validation
- Bootstrap 5 - Frontend styling
- JavaScript (fetch API) - AJAX requests
- Model-View-Controller style organization
- Forms handled via WTForms classes
- Backend endpoints return JSON for AJAX updates
- Templates extend a base layout with Jinja2
CreateTaskForm- Handles task creationscript.js- Manages detail panel, edits, and updatesstyles.css- Custom sidebar and task styling
flask-todo/
βββ app.py # Main Flask application
βββ forms.py # WTForms definitions
βββ static/
β βββ css/style.css # Custom styles
| βββ images/favicon.ico # favicon
β βββ js/script.js # Frontend JS logic
βββ templates/
β βββ index.html # Main page
βββ requirements.txt # Dependencies
βββ README.md # Project documentation
Contributions are welcome!
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Drag & drop task reordering
- Dark mode theme
- Export tasks as PDF/CSV
- Calendar integration
- Search and filter tasks
- Recurring tasks
- Notifications & reminders
- Ensure all required fields (title, description, due date, priority) are filled
- Ensure JavaScript is enabled in your browser
- Check Flask server logs for errors
This project is licensed under a custom Non-Commercial License based on the MIT License.
You are free to:
- Use the software for personal or educational purposes
- Modify and improve the code
- Contribute via pull requests
You are not allowed to:
- Sell or use this software for commercial purposes
- Distribute modified versions for profit
See the LICENSE file for full terms.
Vidhun Roshan - Initial work
- Flask community for extensive support
- Bootstrap team for responsive frontend utilities
If you encounter any problems or have questions, please:
- Check the Issues page
- Create a new issue if your problem isn't listed
- Provide details about your environment and the issue
β If you found this project helpful, give it a star! β