Skip to content

A minimal yet extensible Python command-line To-Do List manager featuring task CRUD operations, completion tracking, and JSON-based persistent storage—perfect as a learning project or a base for expanding features.

License

Notifications You must be signed in to change notification settings

husseini2000/To-Do-List

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

To-Do List Application

A powerful and clean Python CLI To-Do Manager that follows PEP 8, PEP 257, and best engineering practices.


🌟 Features

✔ Core Features

  • Add, view, edit, and delete tasks
  • Mark tasks as complete/incomplete
  • Set priorities
  • Due dates
  • Categories
  • Descriptions
  • Color tags
  • Type-safe design
  • Clean documentation

🚀 Advanced Features

Sorting

  • By due date
  • By priority
  • By title
  • By category

Filtering & Search

  • Search by title, description, or category
  • View only completed / pending tasks

Analytics

  • Total tasks
  • Completion rate
  • Priority breakdown
  • Category breakdown

Exporting

  • CSV
  • TXT

🧱 Technical Overview

Dataclass Model

@dataclass
class Task:
    title: str
    completed: bool = False
    priority: Priority = Priority.MEDIUM
    due_date: Optional[str] = None
    category: str = "general"
    description: Optional[str] = None
    color: Optional[str] = None

Priority Enum

class Priority(Enum):
    LOW = "low"
    MEDIUM = "medium"
    HIGH = "high"

🚀 Quick Start

1️⃣ Clone the repository

git clone https://github.com/husseini2000/To-Do-List.git
cd todo-app

2️⃣ Run the app

python todo.py

✔ No external dependencies ✔ Python standard library only


🧭 Usage (Menu-Based)

When you run the app, you'll see:

==============================
        TO-DO LIST MENU
==============================
1. Add a new task
2. View tasks
3. Update a task
4. Delete a task
5. Mark complete/incomplete
6. Sort tasks
7. Search tasks
8. View statistics
9. Export tasks
10. Exit
==============================

Example Task Display

1. ❌ 🟡 Buy groceries [personal] 📅 2025-11-15

💾 Data Storage

Files

tasks.json        # Persistent data
.backups/         # Automatic backups
tasks_export.csv  # CSV export
tasks_export.txt  # Text export

Features

  • JSON-based storage
  • Automatic timestamped backups
  • Corruption recovery

🧪 Code Quality


🛠 Future Enhancements

  • Multiple lists
  • Subtasks
  • Reminders
  • Recurring tasks
  • Collaboration
  • AI prioritization
  • Charts and graphics
  • Template-based tasks
  • Dependencies

🤝 Contributing

Contribution Guidelines
  1. Follow PEP 8
  2. Use type hints consistently
  3. Write clear PEP 257 docstrings
  4. Add tests when possible
  5. Update documentation

🧑‍💻 Author

Al-Husseini Ahmed Abdelaleem

---

📄 License

This project is licensed under the MIT License.

About

A minimal yet extensible Python command-line To-Do List manager featuring task CRUD operations, completion tracking, and JSON-based persistent storage—perfect as a learning project or a base for expanding features.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages