A personal side project with Strava API using Python.
This project is my personal side project with Strava API. The goal of this project is to analyze my training data for better future performance, as well as to hone my Data Analysis & Visualization skills. The idea was originally coming from the fact that my increasing demands for uploading indoor cycling activity data to Strava, especially in the lockdown time of COVID-19. I usually did indoor training with Zwift during the weekdays and long weekend group ride on the weekend. When training indoors with Zwift, I used to also record my cycling workout with a bicycle computer, for more workout information like power zone, laps, time, etc. This means there will be two generated files pointing to the same activity in the end. If you have authorized Zwift to connect with Strava beforehand, each of your virtual ride data will be AUTOMATICALLY synchronized to Strava. That's really exciting and satisfying when you saw a Strava notification telling you that "Your activity is ready." after suffering on the saddle for hours. (You know that feeling.😉)
However, as an engineering graduate student and bike🚴 enthusiast, I decided to to take more control over the whole interaction process with Strava, in order to know what's happening under the hood. Therefore, I disabled the connection between the two Apps, and started developing a toy StravaAutoUploader tool with Python as the starting point of this side project. Hopefully it could be someday extended to have some advanced features like Golden Cheetah, TrainingPeaks, for analyzing, tracking, and predicting my performance on the bike!
- Fixing and uploading workout (Ride, Virtual Ride, Run, Hike, etc.) activity files with the help of batch script automation using Task Scheduler (Windows)
demo1.mp4
demo2.mp4
- Analyzing workout data using Pandas package
e.g.,- yearly summary (similar to Strava Year in Sport Data Report)
- How many workout activities I did per month/week in a year?
- How much time I spent on cycling activities per month/week in a year?
- etc.
- Visualizing workout data using Seaborn and Matplotlib libraries as well as Tableau software
e.g.,- heatmap
- etc.
- Pipenv
- https://selenium-python.readthedocs.io/installation.html#drivers
- batch file
- auth
- config
- Getting started with Strava API:
- Further development ideas: Strava Labs
- Strava API Developer Forum
Whether you use this project, have learned something from it, or just like it, please consider supporting it by buying me a coffee or making one-time donations via PayPal, so I can dedicate more time on open-source projects like this. 💪🙃
Thanks!:heart: and Cheers!:beers:
If you have any question or suggestion, feel free to contact me at [email protected]. Contributions are also welcomed. Please open a pull-request or an issue in this repository.