Skip to content

Weekly Commitment Tracker — Rust CLI/TUI to set weekly hour goals, log progress, and view history with a lightweight SQLite backend.

License

Notifications You must be signed in to change notification settings

Isaac7777-cpu/weekly-task-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Weekly Commitment Tracker

A lightweight CLI tool written in Rust for tracking weekly commitments, logging progress, and maintaining a history of personal productivity.
The project uses SQLite and SQLx for async database access, along with Clap for command-line parsing.

GitHub commit activity GitHub contributors GitHub last commit GitHub License GitHub repo size


✨ Features

  • Add commitments with weekly target hours
  • Log progress (e.g., daily or weekly hours done)
  • List all active commitments
  • Archive / Reactivate commitments without deleting history
  • View current week's progress (per commitment and total)
  • SQLite-backed, async, and easy to migrate

📦 Project Structure

src/
│
├ # CLI parts with application backends (database parts)
├── db.rs # Database setup + SQLx queries
├── main.rs # Entry point + routing commands
├── model.rs # Structs representing DB rows
├── cli.rs # Command-line argument definitions (Clap)
│
├ # TUI part, vaguely follow MVC architecture but also uses the above database as the 'backend'
├── app.rs # TUI App state (Model)
├── ui.rs # TUI UI Functions (View)
└── tui.rs # TUI main loop + Event Handling (Controller)

migrations/
└── <timestamp>.sql # SQLx migration

✨ Features / TODO

  • Add commitments with weekly target hours
  • Log progress (daily/weekly hours)
  • List all active commitments
  • Archive commitments
  • Reactivate archived commitments
  • View current week progress (per commitment + total)
  • Add new commitment with TUI
  • Edit old commitment with TUI
  • Add Testing for the Functionalities
  • Add TUI mode using ratatui (Mostly Done)
  • Integrate with neovim / vim
  • Export data to CSV
  • Graph weekly progress (e.g., via ratatui)
  • Allow for having "Off-Weeks"
  • Sync across devices

Contribution Guide

Thanks for your interest in contributing! All contributions are welcome — whether it’s fixing a bug, improving documentation, or adding new features.

  1. Make sure you have Rust (stable) installed.
  2. Clone the repository:
  3. You can directly build the project and run it with
    cargo run
  4. Use SQLx CLI for migrations:
    cargo install sqlx-cli
    sqlx run migrations
    Note that currently the project relies on a relative path to find the database (terrible idea, happy to take PR), so you have to run cargo run in the top level directory, and you should / can use sqlx create database to create the database.

This Project uses Rust's standard formatting (rustfmt), please use this formatting for the project.


Tech Stack

Tech Stack

SQLite

About

Weekly Commitment Tracker — Rust CLI/TUI to set weekly hour goals, log progress, and view history with a lightweight SQLite backend.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages