Giter VIP home page Giter VIP logo

strava-tool's Introduction

Strava-Tool

Open Source Love

A personal side project with Strava API using Python.


Motivation

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!


Features (just name a few, not completed yet)

  • 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.

How to use the code


Good resources


Support the project

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. ๐Ÿ’ช๐Ÿ™ƒ

Buy Me A Coffee paypal.me/huaminghuang

Thanks!:heart: and Cheers!:beers:


Contact

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.


License

This project is licensed under the terms of MIT.

strava-tool's People

Contributors

huaminghuangtw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.