# Created 2023-10-02 Mon 17:33
#+options: toc:t
#+title: kettlebells
#+author: Russell Helmstedter
#+description: README file for iron-cardio cli tool
#+keywords: kettlebells, iron cardio, cli
#+language: en
#+export_file_name: ../README.org

kettlebells is a CLI designed to create, save, and track the progress of kettlebell workouts. The inspiration for this project came from [[https://www.chroniclesofstrength.com/what-strength-aerobics-are-and-how-to-use-them-w-brett-jones/][Pat Flynn's conversation with Bret Jones]]. (For a more detailed look at Iron Cardio, go checkout the [[https://strongandfit.com/products/iron-cardio-by-brett-jones][Iron Cardio Book]] by Bret Jones.) After starting an [[https://github.com/rhelmstedter/iron-cardio][initial project]] that focused only on iron cardio, I wanted to be able to add more. This is essentially a fork of the iron-cardio project designed to add various workouts such as the armor building complex, and dry fighting weight.

* Installation
Use [[https://github.com/pypa/pipx][pipx]]
#+begin_src bash
pipx install kettlebells
#+end_src
* Usage
** Initialize
Run the ~init~ command. This creates the database.

#+begin_src bash
kettlebells init
#+end_src

Next, run the ~setloads~ command. This sets the units to either pounds or kilograms, the user's bodyweight, and the loads for the light, medium, and heavy kettlebell. This command can be run as needed when the user is ready to move up in load.

#+begin_src bash
kettlebells setloads
#+end_src

** Commands
*** workout
The work out command generates a random workout. The current options are:
- ~iron-cardio~
- ~abc~

**** iron-cardio
The ~workout~ command with an argument of ~iron-cardio~, generates a random iron cardio session.
#+begin_src bash
kettlebells workout iron-cardio
#+end_src

Iron cardio sessions are built from the following parameters

|--------------------------+----------------------------|
| Parameter                | Options                    |
|--------------------------+----------------------------|
| *Single Bell Variations* | Classic                    |
|                          | Classic + Pullup           |
|                          | Classic + Snatch           |
|                          | Traveling 2s               |
|                          | Traveling 2s + Snatch      |
|                          | Traveling 2s + Pullup      |
|                          | Armor Building Complex 2.0 |
|--------------------------+----------------------------|
| *Double Bell Variations* | Double Classic             |
|                          | Double Traveling 2s        |
|                          | Double Classic + Pullup    |
|                          | Armor Building Complex     |
|--------------------------+----------------------------|
| *TIMES*                  | 30 mins                    |
|                          | 20 mins                    |
|                          | 10 mins                    |
|--------------------------+----------------------------|
| *LOADS*                  | heavy                      |
|                          | medium                     |
|                          | light                      |
|--------------------------+----------------------------|
| *SWINGS*                 | 0 - 100                    |

**** abc
The workout command with an argument of ~abc~ will generate a random armor building complex workout.

#+begin_src
kettlebells workout abc
#+end_src

*** done
The ~done~ command saves the most recently generated workout to the database.

#+begin_src
kettlebells done
#+end_src

To save a custom workout, add the workout type as an argument. For example, to save a custom Armor Building Complex workout use an argument of ~abc~.

#+begin_src
kettlebells done abc
#+end_src

*** last
The ~last~ command displays the last saved workout and calculates the amount of weight moved, the total reps, and the pace (sec/rep).

#+begin_src bash
kettlebells last
#+end_src

*** stats
The ~stats~ command displays the aggregated weight moved, number of reps, and pace for all workout in the database.

#+begin_src bash
kettlebells stats
#+end_src

To plot the weight moved per session, use the ~--plot~ flag.

#+begin_src bash
kettlebells stats --plot
#+end_src

*** best
The ~best~ command displays the top ten sessions based on the weight moved.
#+begin_src bash
kettlebells best
#+end_src
