You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The post will describe how I track my fitness journey so far.
10
+
11
+
Slight background: I am on the journey to be the person who goes to gym daily, my goal is to reduce weight, and get lean. I go to [cult](https://www.cult.fit/) for gym.
12
+
13
+
## What all I track so far?
14
+
15
+
- Weight (morning and night)
16
+
- Number of weeks I had been regular in gym/number of classes attended.
17
+
- Occasional BMI and other metrics from [InBody machine](https://www.inbody.in/) installed in the gym I go to.
18
+
19
+
## How I track all this?
20
+
21
+
### Weight
22
+
23
+
I have a simple google sheet which looks like this:
24
+
25
+

26
+
27
+
Column D and E are calculated as `Di = Ci - Bi`, `Ei = Bi+1 - Ci` tracking how much weight changed in that day, and the next day.
28
+
29
+
Until sometime back, this was the interface I used for updating weight everyday: open sheet, add date if not there, add the weight entries. I have a better way which uses this sheet itself as database/backend, gonna come to it at the end.
30
+
31
+
### Number of weeks I had been regular in gym/number of classes attended.
32
+
33
+
This data is something I occasionally run a script (I should probably automate this) which calls CULT's API to get the data, and I put that manually into a google sheet then.
34
+
Figuring out exact API was done by downloading raw cult apk, pass it through [apk-mitm](https://github.com/shroudedcode/apk-mitm) and then use [http-toolkit](https://httptoolkit.com/) to intercept the traffic while I visit corresponding page in the app to see the API that the app calls..
35
+
36
+
The script looks something like in [this](./cult_data_extract.py).
37
+
38
+
The sheet then looks like  with self-explanatory column names.
39
+
40
+
Again, this sheet also acts as a backend now, with frontend I will describe at the end on how do I visualize all this.
41
+
42
+
### Occasional BMI and other metrics from InBody machine installed in the gym I go to.
43
+
44
+
This is also backed by google sheet, and I have no automated way to get this data, I just manually enter it into the sheet.
45
+
46
+
From the GYM, I get the data printed on a page, from which I manually enter to the frontend I am gonna describe next.
47
+
48
+
The sheet by the way looks like:
49
+
50
+

51
+
52
+
## Frontend for all this
53
+
54
+
Entering all this data manually into the google sheet is a hard task, which lead me sometimes missing recording the data. So, I tried to follow the advice that `Atomic Habits` book's second rule of habit formation preaches: `Make it easy`.
55
+
56
+
So, the simplest way I thought was having an app in which I can quickly crunch in numbers (Ik google sheet also is the same thing, but the interface is hard to enter on the phone), so I used [appsheet](https://www.appsheet.com/) to quickly create a UI on top of the google sheets.
57
+
58
+
My app looks something like this:
59
+
60
+
### Landing screen
61
+
62
+

63
+
64
+
This shows the weight entries, and a `+` button to add in new entries, and clicking on anyone brings interface like this: , where I can edit during night to record night weight.
65
+
66
+
### InBody Results
67
+
68
+
Exactly similar to Landing screen, but another tab at the bottom for this.
69
+
70
+
### Charts - Weight and Classes
71
+
72
+
The third tab has charts for how weight is progressing and for cult gym classes.
73
+
74
+

75
+
76
+

77
+
78
+
### InBody charts
79
+
80
+
The last one has inbody charts for metrics: Body Fat Percentage, Total Fat (kg), Muscle Mass (kg), Visceral Fat Level, Waist Hip Ratio.
0 commit comments