python-cli-tool/
│
├── lib/
│ ├── models.py # Task and User classes
│ └── cli_tool.py # CLI entry point
│
├── testing/
│ └── test_cli_tool.py # Pytest test suite
│
├── pytest.ini
└── README.mdMake sure you have Python 3.12+ installed.
python --versionIf python is not recognized, you may need:
sudo apt install python-is-pythonpython -m lib.cli_tool add-task Alice "Submit report"📌 Task 'Submit report' added to Alice.python -m lib.cli_tool complete-task Alice "Submit report"``` bash
✅ Task 'Submit report' completed.
## How It Works
# Task Class
# Stores:
title
completed status (default: False)
# Method:
complete() → marks task complete and prints confirmation
# User Class
# Stores:
name
list of tasks
# Methods:
add_task(task)
get_task_by_title(title)
# CLI (cli_tool.py)
Uses Python’s argparse
# Supports subcommands:
add-task
complete-task
## Running Tests
This project uses pytest.
Install pytest if needed:
``` bash
pip install pytest
Run tests:
pytestExpected output:
2 passedTasks are stored in memory only.
Data resets every time the program exits.
Future improvements could include: JSON file persistence Task listing command Task deletion Due dates Priority levels
Persistent storage (JSON or database)
List all tasks per user
Delete tasks
Edit tasks
Task priority system
User authentication
Luis Maleya