Skip to content

OxidizedToast/habit-tracker

Repository files navigation

Habit Tracker

A terminal-based habit tracker and planner written in C++23 using FTXUI. Track and manage your daily habits through an interactive terminal interface.


Latest Release Build Status License Contributors Last Commit Open Issues GitHub stars GitHub forks

Features

  • Add, edit, and remove habits
  • Track completion of habits daily
  • Interactive TUI (terminal user interface) powered by FTXUI
  • Stores habits locally in ~/.config/ht/habits.txt

Installation

Clone the repository and build the project using the Makefile or Cmake:

Makefile

The Makefile is configured for C++23 and runs the CMake file git clone https://github.com/OxidizedToast/habit-tracker.git
cd habit-tracker
make

Cmake

CMake is configured for C++23 git clone https://github.com/OxidizedToast/habit-tracker.git
mkdir build
cd build
cmake ..
cmake --build .

Although there is another habit-tracker named habit-tracker-bin, that is not my project so make sure to install correct program paru -Sy habit-tracker

Run the program:

cd build
./habit-tracker


Commands

Usage: ht [flag]\n"
    "Options:"
    "--help     -h  Show this help screen"
    "--version  -v  Show version number"

Usage

  • Use arrow keys to navigate the interface
  • Press Enter to select options
  • Stage new habits, mark habits as complete, or remove habits
  • All data is saved locally so your progress persists between sessions

Roadmap / TODO

  • Add, edit, and remove habits
  • Track habits daily
  • Display streaks and completion statistics
  • Save/load habit history more efficiently
  • Improve TUI navigation and usability
  • Add version display inside the app
  • Fix project file structure

Requirements

  • C++23 compiler (e.g., g++)
  • FTXUI
  • Cmake (for building and managing dependencies)
  • Make (only if using Makefile wrapper)

Contributing

Contributions are welcome! You can:

  • Submit issues for bugs or feature requests
  • Fork the repository and create pull requests
  • Suggest improvements or optimizations