A personal health tracking tool

For a little while now I have been using a personal health tracking tool to monitor my progress in various areas such as strength exercises, weight management and mental hygiene routines.

Some examples of the strength exercise tracking can be found here or here.

In this post I will walkthrough how and why I created a personal health tracking tool. But first, feel free to have a poke around the LookerStudio dashboard that was built to visualise all of the repetitions and sets of exercises that I have been doing:

TL;DR

At a very high level, what I have set up is a Streamlit app (check out this post on Streamlit if its new to you) that runs on Google Cloud Run. This is the interface for inputting the data. The information is then saved into a Google Sheet which is subsequently loaded into BigQuery. Looker Studio provides the visualisation layer on top of the data in BigQuery.

All this runs for less than $1 each month!

The app in action

A quick demo of using the Streamlit app to save some workout stats to a Google Sheet:

Give me the code!

The code for this Streamlit app can be found on Github.

Requirements performance

How did this solution do against important criteria:

Access to underlying data – ✅ Having used various workout apps in the past I had been frustrated that I was unable to download or play with the data. Having the data from my custom solution in a Google Sheet solves this problem.

Mobile accessible – ✅ Deploying an app on Cloud Run results in having a URL to access the app. The URL can then be made into a homescreen icon.

Custom exercises – ✅ I like to do bodyweight exercises, so often times the actual exercise I want to do is not in many workout apps. Having the option to put in my particular exercises is a huge plus.

Durable – ✅ Google sheets isn’t going anywhere

Low cost – ✅ Less than $1 per month in Google Cloud Platform costs.

Private – ✅ Only the people I share the Google Sheets (or BigQuery tables) with will have access to the data.

Send a Comment

Your email address will not be published.