Skip to content

maleyalui/python-cli-tool

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project Structure

 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.md

Installation

Make sure you have Python 3.12+ installed.

Check your version:

python --version

If python is not recognized, you may need:

sudo apt install python-is-python

How to Run the CLI

Add a task

python -m lib.cli_tool add-task Alice "Submit report"

Output:

📌 Task 'Submit report' added to Alice.

Complete a Task

python -m lib.cli_tool complete-task Alice "Submit report"

Output:

``` 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:

pytest

Expected output:

2 passed

⚠️ Notes

Tasks 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

📌 Future Improvements

Persistent storage (JSON or database)

List all tasks per user

Delete tasks

Edit tasks

Task priority system

User authentication

Author

Luis Maleya

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 100.0%