-
Notifications
You must be signed in to change notification settings - Fork 0
Home
A robust command-line task management application built in Python that helps you organize and track your tasks efficiently.
This is an implementation of the Task Tracker Project from roadmap.sh.
- Features - Discover what Task Tracker CLI can do
- Getting Started - Installation and basic setup
- User Guide - Learn how to use Task Tracker CLI
- Development Guide - Information for developers
- Data Storage - How your data is stored
- Social Sharing - Share and promote the project
π Additional Resources:
- Read the Docs - Comprehensive API documentation
- GitHub Repository - Source code
- TestPyPI Package - Package distribution
Task Tracker CLI is a powerful yet simple command-line application that helps you manage your tasks effectively. Whether you're a developer managing project tasks or someone looking to organize personal todos, Task Tracker CLI provides an efficient way to track your work.
The project documentation is organized into several key files:
- README.md - Main project documentation and quick start guide
- CHANGELOG.md - Tracks all project changes and version history
- FUTURELOG.md - Outlines planned features and improvements
- Sphinx Documentation - Comprehensive API documentation and guides
For detailed information about specific aspects of the project, please refer to the wiki sections listed in Quick Navigation above.
# Install the application
pip install task-tracker-cli
# Create your first task
task-cli add "Complete the project documentation"
# List all tasks
task-cli list
- Check the User Guide for detailed usage instructions
- Join our community discussions in Social Sharing
- Report issues on our GitHub repository
This project is licensed under the MIT License. See the LICENSE file in the main repository for details.
-
Task Management
- Create tasks with descriptions
- List all tasks or filter by status
- Update task descriptions
- Mark tasks as todo/in-progress/done
-
Data Persistence
- Automatic JSON storage
- Timestamps for creation and updates
- Data integrity checks
- Python 3.10 or higher
- pip (Python package installer)
- Clone the repository:
git clone <repository-url>
cd roadmaps-python-task-tracker
- Install in development mode:
# Install with development dependencies
pip install -e ".[dev]"
# Or install just the application
pip install -e .
pip install task-tracker-cli
# Install build dependencies
pip install build
# Build the package
python -m build
# Install the built package
pip install dist/task_cli-0.1.0-py3-none-any.whl
The task-cli
command provides several subcommands for task management:
# Add a new task
task-cli add "Complete the project documentation"
# List all tasks
task-cli list
# List tasks by status
task-cli list todo
task-cli list in-progress
task-cli list done
# Edit task description
task-cli edit <task-id> "Updated task description"
# Update task status
task-cli mark-todo <task-id>
task-cli mark-progress <task-id>
task-cli mark-done <task-id>
The project includes two testing implementations to demonstrate different Python testing approaches:
The unittest
implementation follows Python's built-in testing framework approach:
# Run unittest tests
python -m unittest tests/test_task_cli_unittests.py -v
Key features:
- Uses Python's standard library testing framework
- Class-based test organization
- Built-in assertion methods
- Test discovery and execution
The pytest
implementation offers a more modern and feature-rich testing approach:
# Run basic tests
pytest tests/test_task_cli_pytest.py -v
# Run tests with coverage report
pytest tests/test_task_cli_pytest.py -v --cov=src/task_cli
# Generate HTML coverage report
pytest tests/test_task_cli_pytest.py --cov=src/task_cli --cov-report=html
Key features:
- Fixtures for better test setup and teardown
- Powerful assertion introspection
- Built-in parameterization
- Rich plugin ecosystem
- Coverage reporting
- Parallel test execution (with pytest-xdist)
task-tracker-cli/ # Root project directory
βββ src/ # Source code directory
β βββ task_cli/ # Main package directory
β βββ __init__.py # Package initialization
β βββ __main__.py # Entry point for CLI
β βββ task_cli.py # Core implementation
βββ tests/ # Test files directory
β βββ test_task_cli_pytest.py # Pytest test suite
β βββ test_task_cli_unittests.py # Unittest test suite
βββ README.md # Project documentation
βββ pyproject.toml # Project metadata and dependencies
Tasks are stored in a JSON file (tasks.json
by default) with the following schema:
[
{
"id": 1,
"description": "Task description",
"status": "todo",
"createdAt": "2024-01-01T10:00:00",
"updatedAt": "2024-01-01T10:30:00"
}
]
This project is prepared within the Python Developer path on Roadmap.sh.