Skip to content
AivalioPublic

About

๐Ÿ“ A simple CLI task manager in Python. Pure stdlib, 33 tests, GitHub Actions CI.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

ย 

History

25 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“ Task CLI

A simple command-line task manager written in Python.

Python License: MIT Tests


๐Ÿ“ธ Screenshots

Task list Statistics
Task list Statistics
Interactive mode
Interactive

โœจ Features

  • โž• Add tasks with priority and due date
  • ๐Ÿ“‹ List all tasks
  • โœ… Complete tasks
  • ๐Ÿ”„ Reopen completed tasks
  • โœ๏ธ Edit existing tasks
  • ๐Ÿ—‘๏ธ Delete tasks
  • ๐Ÿ” Search tasks by title
  • ๐ŸŽฏ Filter by status or priority
  • ๐Ÿ“Š View statistics
  • ๐Ÿงน Clear completed tasks
  • ๐Ÿ’ฌ Interactive mode โ€” menu-driven interface

๐Ÿ“ฆ Requirements

  • Python 3.10+
  • No third-party runtime dependencies (uses only the standard library)

๐Ÿš€ Installation

git clone https://github.com/Aivalio/task-cli.git
cd task-cli
python -m venv .venv

# Windows
.venv\Scripts\activate

# macOS / Linux
source .venv/bin/activate

pip install -r requirements.txt

๐ŸŽฎ Usage

Command-line mode

# Add a task
python -m task_cli add "Buy groceries" --priority high --due 2026-10-15

# List all tasks
python -m task_cli list

# Mark a task as completed
python -m task_cli complete 1

# Reopen a completed task
python -m task_cli reopen 1

# Edit a task
python -m task_cli edit 2 --title "Buy almond milk" --priority low

# Delete a task
python -m task_cli delete 3

# Search by keyword
python -m task_cli search milk

# Filter by status and priority
python -m task_cli filter --status pending --priority high

# Show statistics
python -m task_cli stats

# Clear all completed tasks
python -m task_cli clear

Interactive mode

Run without any arguments to open the menu:

python -m task_cli
============================
       TASK CLI
============================
1. View tasks
2. Add task
3. Complete task
4. Reopen task
5. Delete task
6. Search tasks
7. Statistics
8. Clear completed
9. Exit

Choose an option:

๐Ÿ“ธ Example Output

Adding and listing tasks:

$ python -m task_cli add "Buy milk" --priority high --due 2026-10-15
โœ“ Added: Buy milk

$ python -m task_cli add "Walk dog"
โœ“ Added: Walk dog

$ python -m task_cli list

--- Tasks ---
1. [ ] Buy milk | Priority: HIGH | Due: 2026-10-15
2. [ ] Walk dog | Priority: MEDIUM

Statistics:

$ python -m task_cli stats

--- Statistics ---
Total tasks:     2
Completed:       1
Remaining:       1

By priority:
  Low      0
  Medium   1
  High     1

Completion rate: 50.0%

๐Ÿงช Running Tests

pytest tests/ -v

The project has 33 unit tests covering storage, task logic, and display helpers.

pytest tests/test_storage.py -v    # Storage tests
pytest tests/test_tasks.py -v      # Business logic tests
pytest tests/test_display.py -v    # Display tests

๐Ÿ“ Project Structure

task-cli/
โ”œโ”€โ”€ task_cli/
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ __main__.py          # Entry point for `python -m task_cli`
โ”‚   โ”œโ”€โ”€ constants.py         # Configuration constants
โ”‚   โ”œโ”€โ”€ storage.py           # JSON file storage
โ”‚   โ”œโ”€โ”€ tasks.py             # Task business logic
โ”‚   โ”œโ”€โ”€ display.py           # Output formatting
โ”‚   โ””โ”€โ”€ main.py              # CLI (argparse)
โ”œโ”€โ”€ tests/
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ test_storage.py
โ”‚   โ”œโ”€โ”€ test_tasks.py
โ”‚   โ””โ”€โ”€ test_display.py
โ”œโ”€โ”€ docs/
โ”‚   โ””โ”€โ”€ screenshots/
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ LICENSE
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ pyproject.toml
โ””โ”€โ”€ requirements.txt

๐Ÿ’พ Data Storage

Tasks are stored in tasks.json in the current working directory:

[
  {
    "title": "Buy milk",
    "completed": false,
    "priority": "high",
    "due_date": "2026-10-15"
  }
]

๐Ÿ—บ๏ธ Roadmap

  • Add task categories / projects
  • Support recurring tasks
  • Export tasks to CSV / Markdown
  • Config file (~/.task-cli/config.json)
  • Colored output (with colorama)

๐Ÿค Contributing

This is a personal learning project, but suggestions are welcome. Feel free to open an issue.


๐Ÿ“„ License

Distributed under the MIT License. See LICENSE for more information.


Built with โ˜• by Aivalio

About

๐Ÿ“ A simple CLI task manager in Python. Pure stdlib, 33 tests, GitHub Actions CI.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages