Hey Dash fam!
Proud to announce I’ve reached a milestone with my first multi-page dash app! (and first python app at all for the record).
Most of my python experience has been quick one-off business use case scripts and what started out as a simple idea to get some analytics behind my fitness data quickly spun out of control, feeding my fitness tech-toy addiction, to end up with fit.ly (fitness + plotly).
Several friends and community members asked I share the code so they too can have some awesome dash charts for their data, however I need some help to get it ‘production’ ready. My idea is to share this with everyone so they can self host it (and choose whether or not to deploy or just use via localhost). Additionally, it currently only leverages the data services I use, so once all the core code is cleaned up, I’d love to start maintaining this and including new sources/charts/functionalities. For the endurance athlete enthusiasts out there, I’ve recreated several chart types which are only available in paid versions of other apps (i.e. power curve, fitness performance management chart, etc.)
I’m thinking in its final state, users could just download via docker-compose and everything is already set up…although this is where I’d love some thoughts from those who have experience deploying applications (or at least for this manner, getting code in a state where users can self deploy).
However before we get there…I’ll say it again, this was my first python project - and I am entirely self-taught in all things computer related, so there are several areas for the code to be improved. Dash has also come a long way since I first started building this out (~2 years ago), so there are a lot of new functionalities I believe which formerly required a lot more code that can be cleaned up (i.e. plotly express).
It does work and I’ve been using on my personal home server (making great fitness gains I might add), however I was hoping there are some other fitness junkies out there who may be interested and would like to contribute. I’ve posted the current state here:
Here’s some images of what the dashboards look like:
Right now it grabs data from the following on a cron schedule every hour, so the dashboard is always up to date when you view it:
- Strava
- Withings
- Peloton
- Stryd
- Oura
- Fitbod (csv uploaded to nextcloud)
You’ll notice this is also my first github project - so also looking to learn not only how to improve my coding skills, but also work on a project with others