Skip to content

Latest commit

 

History

50 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📝 ToDo App

A desktop task-management app built with Python and CustomTkinter, featuring due-date tracking, priority levels, live search, statistics charts, and CSV/PDF export.

Python CustomTkinter Platform License


📸 Screenshots

Main Window Dark Theme
Main Window Dark Theme
Statistics Notifications
Statistics Notifications
CSV Export PDF Export
CSV Export PDF Export

✨ Features

  • Add, edit, delete, and complete tasks with title, category, priority, and due date
  • 🔍 Live search — filters tasks as you type
  • 🗂️ Filter by status — All / Active / Completed
  • ↕️ Sort tasks — by Due Date, Priority, Alphabetical, or Recently Modified
  • 🏷️ Categories — Personal, Work, Study, Shopping, Other
  • 🚦 Priority levels — High, Medium, Low (color-coded)
  • Due-date awareness — tasks are automatically flagged as 🟡 Due Today or 🔴 OVERDUE
  • 🔔 Background notifications — checks for due/overdue tasks every 5 minutes
  • 📊 Statistics dashboard — completed vs. remaining and priority breakdown, visualized with charts
  • 📄 Export tasks — to CSV or a formatted PDF report
  • 🎨 Theming — light / dark / system appearance modes
  • 💾 Local persistence — tasks and settings saved automatically as JSON in your user app-data folder (no setup, no external database)

🖥️ Tech Stack

Purpose Library
GUI CustomTkinter
Charts / Statistics Matplotlib, NumPy
PDF export ReportLab
Data storage JSON (built-in)
Packaging PyInstaller

📁 Project Structure

The app is organized into focused modules rather than one large script:

ToDo_App/
├── main.py                # Entry point
├── assets/
│   └── todo.ico
└── src/
    ├── gui.py              # Main application window & widget wiring
    ├── task_manager.py     # Core task CRUD logic (GUI never touches data directly)
    ├── storage.py          # Load/save tasks & settings as JSON
    ├── statistics.py       # Statistics window (matplotlib charts)
    ├── export.py           # CSV / PDF export
    ├── notifications.py    # Due/overdue task checks
    ├── widgets.py          # Reusable UI components (task cards)
    ├── constant.py         # Shared constants (categories, priorities, colors)
    └── utils.py            # Helper functions (e.g. due-date status)

This separation keeps the GUI layer independent from the data layer — TaskManager handles all task operations, and gui.py only calls into it, which makes the code easier to extend or reuse (e.g. swapping the storage backend later).


🚀 Getting Started

Option 1 — Run the prebuilt executable (Windows)

  1. Download ToDo_App.exe from the Releases section.
  2. Run it — no installation or Python required.

Option 2 — Run from source

git clone https://github.com/nitin-bit09/ToDoApp.git
cd ToDoApp
pip install -r requirements.txt
python main.py
requirements.txt (example — adjust to your actual versions)
customtkinter
matplotlib
numpy
reportlab

🗺️ Roadmap / Ideas for Future Versions

  • Recurring tasks / reminders
  • Subtasks or checklists within a task
  • Cloud sync or multi-device support
  • Unit tests
  • Cross-platform build (macOS/Linux)

📄 License

This project is licensed under the MIT License.


🙋‍♂️ Author

nitin-chemGitHub

This was my first end-to-end software project, built with Python and guided by ChatGPT.

About

A modern desktop ToDo application built with Python and CustomTkinter featuring task management, statistics, PDF/CSV export, theming, and due-date tracking.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages