blockbasti / just_another_workout_timer

A simple timer for your workouts, built with Flutter!
MIT License
136 stars 23 forks source link

Keep a Log of the workout #89

Open lamyergeier opened 3 years ago

lamyergeier commented 3 years ago

Is your feature request related to a problem? Please describe. No Workout log means the data can't be analyzed

Describe the solution you'd like I would like to have a data log, preferable in jrnl - The Command Line Journal format, so that I can record my workout and keep track of it. Would be nice if it records which workout was done at what time and date, in that workout how many reps were completed. jrnl allows us to visualize the data using mkaz/termgraph: a python command-line tool which draws basic graphs in the terminal

Example: Sample Log Format

The Workout:

{
  "workouts": [
    {
      "title": "Feet Spur On Stairs",
      "sets": [
        {
          "repetitions": 5,
          "id": "6551a649-cd4f-42ac-8c09-7e86097e2739",
          "exercises": [
            {
              "name": "left leg",
              "id": "09189f49-8b52-4789-8b8b-ac74aa8ffb90",
              "duration": 30
            },
            {
              "name": "right leg",
              "id": "79fbc556-ae60-49c5-aadf-d633b27d0a00",
              "duration": 30
            }
          ]
        }
      ],
      "version": 2,
      "position": 0
    }
  ]
}

For the workout named as 'Feet Spur On Stairs', with 5 sets; with each set comprising of exercise for left and right feet, a typical Log would look like as follows. The workout name can be saved as using Camel case and removing space to make it a single word. It can be preceeded by @ which would save the entry with this tag. This tag can be helpful in filtering and can be used for plotting of time series graph. Time is stored as ISO Format in square brackets.

[2021-09-23 14:19] @FeetSpurOnStairs 
Completed Sets=5
left leg=5 
right leg=5

This indicates that the journal entry with the tag FeetSpurOnStairs was done with 5 complete sets, with each set comprising of 2 exercise called as left leg and right leg, and they were performed in total 5 times each (1 times per set).

lamyergeier commented 3 years ago

It will be good if the app can daily automatically update the log file saved in the file system, so that it can be synced using syncthing, and can be used to analyse the time series graph.