Created by Fabricio Braga
Last Updated: February 27, 2025
A simple command-line To-Do List Manager written in Python. This project demonstrates Python coding practices, unit testing, and packaging. It allows users to:
- Add tasks.
- Mark tasks as completed.
- List all tasks.
- Add Tasks: Add new tasks to the to-do list.
- Complete Tasks: Mark tasks as completed.
- List Tasks: View all tasks with their completion status.
Before running the project, ensure you have the following installed:
- Download and install Python from https://www.python.org/.
- Verify the installation:
python --version
- Git is used for version control. You can download it from https://git-scm.com/.
Follow these steps to set up and run the project locally.
Clone the repository to your local machine:
git clone https://github.com/hackthegap/course-8-python-task-manager.git
cd todo-list-manager
Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
Install the package in development mode:
pip install -e .
Run the application using the command-line interface:
todo-cli
- Add Task: Add a new task to the to-do list.
- Complete Task: Mark a task as completed by entering its index.
- List Tasks: View all tasks with their completion status.
- Exit: Exit the application.
The project includes unit tests to ensure the functionality works as expected. Run the tests using the following command:
python -m unittest discover tests
todo-list-manager/
├── todo_manager/
│ ├── __init__.py
│ ├── todo.py # To-Do List logic
│ ├── cli.py # Command-line interface
├── tests/
│ ├── __init__.py
│ ├── test_todo.py # Unit tests for To-Do List logic
├── setup.py # Packaging configuration
├── README.md # Project documentation
- Follows PEP 8 style guidelines.
- Uses meaningful variable and function names.
- Includes docstrings for functions.
- Uses
unittest
to test the To-Do List logic. - Tests cover adding tasks, completing tasks, and listing tasks.
- Uses
setuptools
to package the application. - Includes a command-line interface (CLI) for easy usage.
If you'd like to contribute to this project, follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/YourFeatureName
). - Commit your changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature/YourFeatureName
). - Open a pull request.
- This project was created as part of a course to teach Python coding practices, unit testing, and packaging.
- Special thanks to the Python community for providing excellent resources and tools.
If you have any questions or need further assistance, feel free to reach out to the instructor or open an issue in the repository.