Skip to main content

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 dailyTasks in 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 tasktrack CLI
  • 🧪 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

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/YourFeature
  3. Commit your changes: `git commit -m "Add new feature"
  4. Push to your branch: git push origin feature/YourFeature
  5. Open a Pull Request

Enjoy tracking your daily tasks!

Give me the pure markdown version

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

daily_tasktrack-0.1.0.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

daily_tasktrack-0.1.0-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

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

Hashes for daily_tasktrack-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b965e9ddf490d7d137a4b808affe72c7b274d08ef25868fdd40c2cda68605f1b
MD5 01243038998adb64b03ef0dfa065d4fd
BLAKE2b-256 86a3ef2f652b62476a7122a0823012aadc91318ed57a0149b849d5d59a737038

See more details on using hashes here.

File details

Details for the file daily_tasktrack-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for daily_tasktrack-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 45bd38d712e628a71feb4c3e9a5e5cef9e81f7fc2af2c6e4017a16f0c7cd4945
MD5 c0c42ed1635ac8971591af2eaf9ae63c
BLAKE2b-256 3d85bb08eb8e3abc3f9023220be96979b9fefe46c07fd37303afdd5fcb3faff4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page