An open API service indexing awesome lists of open source software.

https://github.com/pmiddend/myocardio

An ncurses tool magically generating workout plans
https://github.com/pmiddend/myocardio

brick cabal cli fitness haskell ncurses nix

Last synced: 3 months ago
JSON representation

An ncurses tool magically generating workout plans

Awesome Lists containing this project

README

          

* myocardio – automagically generate and display split plans

[[https://github.com/pmiddend/myocardio/actions/workflows/build-with-cabal.yaml][file:https://github.com/pmiddend/myocardio/actions/workflows/build-with-cabal.yaml/badge.svg]]
[[https://github.com/pmiddend/myocardio/actions/workflows/build-with-nix.yaml][file:https://github.com/pmiddend/myocardio/actions/workflows/build-with-nix.yaml/badge.svg]]

** How does it work

myocardio is a small utility to generate exercise split plans for you. It recieves a list of exercises from you. For each exercise, you specify:

- exercise name
- which muscle groups are involved
- how many repetitions you make

The tool then generates and displays an exercise plan for you that /tries/ not to include exercises with big overlaps in muscle groups consecutively. It also prioritizes exercises that you haven’t done for some time.

The algorithm is described in [[./docs/ranking.pdf][this PDF file]].

The input is expected in JSON format at the location =$HOME/.config/myocardio/data.json= and looks like this:

#+BEGIN_SRC json
{
"exercises": [
{
"muscles": [
"pectoralis",
"triceps",
"deltoid",
"core",
"quadriceps",
"hip flexor"
],
"tagged": null,
"reps": "3x10",
"name": "Burpees",
"last": null
}
]
}
#+END_SRC

As you can see, the JSON is just a list of exercises. The format should be self-explanatory.

** Screenshot

#+CAPTION: A sample exercise plan (with some exercises named in German)
[[./screenshot.png]]

#+CAPTION: The muscle display
[[./screenshot2.png]]

** Key bindings

| Key | Binding |
|-----+--------------------------------------------------|
| t | tag an exercise (meaning you did it today) |
| j | Go down a row (vim-style!) |
| k | Go up a row |
| c | commit the plan (meaning you’re done exercising) |
| r | Type in a new repetition count |

** Installation/Usage

Just clone the repository and type:

#+begin_example
cabal v2-run myocardio-exe
#+end_example