Skip to content

vidhun05/To-Do

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

To-Do App

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.

Python Flask License Platform


Table of Contents


Features

βœ… Core Functionality

  • 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

πŸ“ Task Details

  • Priority labels: High, Medium, Low
  • Task metadata: Created date, due date, and status
  • Subtask checkboxes with instant updates

🎨 Modern UI/UX

  • Responsive Bootstrap-based layout
  • Sidebar for task list, detail panel for task info
  • Color-coded priority highlights
  • Clean hover and active item states

πŸ”§ Extra Functionality

  • Quick edit form for updating tasks inline
  • AJAX-based updates (no page reloads)
  • Scrollable task list and descriptions

Demo video

To-do.demo.mp4

Installation

Prerequisites

  • Python 3.8 or higher
  • pip package manager
  • Virtual environment recommended

Steps

git clone https://github.com/vidhun05/flask-todo.git
cd flask-todo
pip install -r requirements.txt
flask run

Usage

  1. Start the Flask server (flask run)
  2. Open your browser at http://127.0.0.1:5000
  3. Add a new task using the form
  4. Click on a task in the sidebar to view details
  5. Mark tasks as complete or delete them when done
  6. Edit tasks directly from the detail panel

Technical Details

Built With

  • Flask - Web framework
  • WTForms + Flask-WTF - Form handling & validation
  • Bootstrap 5 - Frontend styling
  • JavaScript (fetch API) - AJAX requests

Architecture

  • Model-View-Controller style organization
  • Forms handled via WTForms classes
  • Backend endpoints return JSON for AJAX updates
  • Templates extend a base layout with Jinja2

Key Components

  • CreateTaskForm - Handles task creation
  • script.js - Manages detail panel, edits, and updates
  • styles.css - Custom sidebar and task styling

File Structure

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

Contributing

Contributions are welcome!

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Ideas for Contributions

  • Drag & drop task reordering
  • Dark mode theme
  • Export tasks as PDF/CSV
  • Calendar integration

Roadmap

  • Search and filter tasks
  • Recurring tasks
  • Notifications & reminders

Troubleshooting

Task not saving

  • Ensure all required fields (title, description, due date, priority) are filled

Subtask updates not working

  • Ensure JavaScript is enabled in your browser
  • Check Flask server logs for errors

License

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.


Author

Vidhun Roshan - Initial work


Acknowledgments

  • Flask community for extensive support
  • Bootstrap team for responsive frontend utilities

Support

If you encounter any problems or have questions, please:

  1. Check the Issues page
  2. Create a new issue if your problem isn't listed
  3. Provide details about your environment and the issue

⭐ If you found this project helpful, give it a star! ⭐

About

A modern Flask-based to-do list app with task management, subtasks, priorities, and due dates. Features a clean Bootstrap interface and AJAX updates.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors