Skip to content

apmokong/ToDo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📝 Todo CLI

A simple, fast, and extensible command-line To-Do application built with Python. Designed for productivity and as a showcase of clean CLI architecture using modern Python tooling.


🚀 Features

  • ✅ Add, list, complete, and delete tasks

  • 📅 Due date support (--due YYYY-MM-DD)

  • ⚠️ Overdue task detection

  • 🔍 Filter tasks:

    • --done
    • --pending
    • --due-today
    • --overdue
  • 📊 Sort tasks by due date automatically

  • 💾 Persistent storage using JSON

  • 🧩 Modular code structure (CLI, storage, utils)


📁 Project Structure

todo-cli/
│── todo/
│   ├── __init__.py
│   ├── cli.py        # CLI commands & argument parsing
│   ├── storage.py    # JSON read/write logic
│   └── utils.py      # formatting & helpers
│── tests/
│── pyproject.toml
│── README.md
│── .gitignore

⚙️ Installation

1. Clone the repository

git clone https://github.com/yourusername/todo-cli.git
cd todo-cli

2. Create and activate virtual environment

Windows

python -m venv venv
venv\Scripts\activate

Mac/Linux

python3 -m venv venv
source venv/bin/activate

3. Install in editable mode

python -m pip install -e .

▶️ Usage

Add a task

todo add "Finish project" --due 2026-05-01

List tasks

todo list

Mark task as done

todo done 1

Delete task

todo delete 1

🔍 Filtering

Show completed tasks

todo list --done

Show pending tasks

todo list --pending

Show tasks due today

todo list --due-today

Show overdue tasks

todo list --overdue

🧪 Running Tests

python -m pytest

💡 Example Output

1. [✗] (normal) Finish project | due: 2026-05-01
2. [✔] (high) Submit report | due: 2026-04-15
3. [✗] (low) Fix bug | due: 2026-04-10 ⚠ OVERDUE

🛠️ Tech Stack

  • Python 3
  • argparse (CLI parsing)
  • JSON (data storage)

🔥 Future Improvements

  • SQLite backend
  • Natural language dates (tomorrow, next week)
  • Colored CLI output (Rich)
  • Task categories/tags
  • Sync with web API (Flask/Laravel backend)
  • Package & publish to PyPI

📜 License

MIT License


👨‍💻 Author

Amiel Pastor GitHub: https://github.com/apmokong


⭐ Why This Project?

This project demonstrates:

  • Clean CLI design with argparse
  • Modular Python architecture
  • File-based persistence
  • Extensible feature design

Perfect as a portfolio project for backend or Python developer roles.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages