Simple YAML task time tracker
Project description
TaskTrack
TaskTrack is a simple YAML-based task time tracker for grouping daily tasks under named categories. It provides a command-line interface to add, list, and delete tasks with time accumulation and optional summaries.
Features
- ✅ Add or update time on a task under a specific group
- ✅ Store tasks under
dailyTasksin the YAML backend - ✅ Optional summaries for each task
- ✅ List all tasks for a group, showing time and summary
- ✅ Delete tasks
- 📦 Installable as a Python package with a
tasktrackCLI - 🧪 Unit-tested with pytest, with isolated I/O fixtures
Installation
# Clone the repo
git clone https://github.com/yourname/tasktrack.git
cd tasktrack
# Install in editable mode
pip install -e .
Project Structure
tasktrack/ # Project root
├── task_tracker/ # Package directory
│ ├── __init__.py # Package marker
│ ├── cli.py # CLI entry point
│ ├── manager.py # Core logic (load, save, update, list, delete)
│ ├── utils.py # Time parsing/formatting helpers
│ └── tasks.yaml # YAML backend (created on first run)
├── tests/ # Pytest test suite
│ └── test_manager.py # Unit tests with I/O patching
├── pyproject.toml # Build metadata and CLI entry point
└── README.md # This file
Usage
Once installed, you can run the tasktrack command from anywhere.
Add or update a task
tasktrack add <group>/<task> <time> [--summary "Your summary"]
<group>: e.g.a,b, etc.<task>: the task name (no spaces recommended)<time>: time to add, in minutes (Xm) or hours (Xh)--summary: optional summary string
Example:
tasktrack add a/testtask 15m --summary "Refactored manager logic"
List tasks in a group
tasktrack list <group>
Example:
tasktrack list a
Output:
- testtask: 15m — Refactored manager logic
- other: 30m
Delete a task
tasktrack delete <group>/<task>
Example:
tasktrack delete a/testtask
Configuration
By default, the YAML database is stored in task_tracker/tasks.yaml. To override:
export TASK_TRACKER_DB=/path/to/custom_tasks.yaml
Testing
Run the unit tests with:
pytest tests/
Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature/YourFeature - Commit your changes: `git commit -m "Add new feature"
- Push to your branch:
git push origin feature/YourFeature - Open a Pull Request
Enjoy tracking your daily tasks!
Give me the pure markdown version
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file daily_tasktrack-0.1.0.tar.gz.
File metadata
- Download URL: daily_tasktrack-0.1.0.tar.gz
- Upload date:
- Size: 5.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b965e9ddf490d7d137a4b808affe72c7b274d08ef25868fdd40c2cda68605f1b
|
|
| MD5 |
01243038998adb64b03ef0dfa065d4fd
|
|
| BLAKE2b-256 |
86a3ef2f652b62476a7122a0823012aadc91318ed57a0149b849d5d59a737038
|
File details
Details for the file daily_tasktrack-0.1.0-py3-none-any.whl.
File metadata
- Download URL: daily_tasktrack-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
45bd38d712e628a71feb4c3e9a5e5cef9e81f7fc2af2c6e4017a16f0c7cd4945
|
|
| MD5 |
c0c42ed1635ac8971591af2eaf9ae63c
|
|
| BLAKE2b-256 |
3d85bb08eb8e3abc3f9023220be96979b9fefe46c07fd37303afdd5fcb3faff4
|