genee 0.9.2

A habit tracker app with command-line interface
Documentation
# genee

[![Crates.io](https://img.shields.io/crates/v/genee.svg)](https://crates.io/crates/genee)
[![Docs.rs](https://docs.rs/genee/badge.svg)](https://docs.rs/genee)
[![CI](https://github.com/mfep/genee/workflows/CI/badge.svg)](https://github.com/mfep/genee/actions)
[![dependency status](https://deps.rs/repo/github/mfep/genee/status.svg)](https://deps.rs/repo/github/mfep/genee)

genee is a simple habit tracker program for the command line

## Features
- Daily tracking of habits 📅
- Open storage format: SQLite database 📄
- Pretty diagrams to compare successive periods of habit data 📊
- Store default settings persistently 💾

## Workflow

1. Figure out the list of habits to track. In this example, we would like to restrict
   our gaming binges and increase the frequency of our piano exercise sessions.
   `GAM` stands for gaming, whereas `PNO` stands for the instrumental practice.
2. Download the [latest release]https://github.com/mfep/genee/releases/latest from this repository.
3. Using the downloaded executable, create a new data file to store the diary data.
   Specify the list of habit abbreviations to use in this file: `genee new GAM,PNO`
4. Each day, fill in whether you practiced the particular habits the previous day or not.
   Run `genee` which opens an interactive terminal interface. Habit data for each day can be
   added and edited, and various statistics are shown.

### Screenshot

![A screenshot of the main genee interface](./docs/screenshot.png)

## Full helptext

```
A habit tracker app with command-line interface

Usage: genee [OPTIONS] [COMMAND]

Commands:
  list-config    Prints the persistent configuration
  new            Provide a comma separated list of habit categories. A new diary file is created at the specified --datafile path
  save-config    Saves the specified options to persistent configuration
  add-category   Adds or unhides a category
  hide-category  Hides a category
  help           Print this message or the help of the given subcommand(s)

Options:
  -d, --datafile <DATAFILE>
          Path to the diary file. When not provided, its value is loaded from persistent configuration file
  -p, --past-periods <PAST_PERIODS>
          Specifies the number of displayed periods when graphing the diary data. When not provided, its value is loaded from persistent configuration file
  -f, --list-most-frequent-days <LIST_MOST_FREQUENT_DAYS>
          Specifies the number of most frequent daily habit compositions over the specified period
  -h, --help
          Print help
  -V, --version
          Print version
```

## Building

genee builds with the standard Rust toolchain:

```
git clone https://github.com/mfep/genee.git
cd genee
cargo build --release
```

## Contribution

See [CONTRIBUTING.md](CONTRIBUTING.md).