A Python command-line To-Do app using OOP, JSON persistence, and argparse.
- Add, delete, update, and list tasks
- Save/load tasks from a
.jsonfile - Filter tasks by completion
- Prioritize tasks
- Fully tested with
unittest - Validates due dates via CLI
- Python 3.10+
argparseunittest- JSON I/O
- OOP (Enums, Classes)
# Add a task
python main.py add "Buy milk" todo --due_date 2025-12-30 --priority 1
# List all tasks
python main.py list --all --sort --verbose
# Delete task
python main.py delete 1
# Update status
python main.py update 1 completed
# Run Tests
python -m unittest discover -s tests
Tasks are saved in to_do_list_file.json using JSON format.