DuckRunner is a Python-based Streamlit application designed to parse, analyze,
and visualize running metrics extracted from .fit files (Garmin, Strava, and
similar sources).
The project provides an interactive experience for exploring pace, heart rate, elevation, and lap data—with visualizations inspired by Strava’s performance charts.
You can access the DuckerRunner at Streamlit or run it in from your machine using Docker (for more information, go to Installation).
To get started with the DuckerRunnerAnalisis, follow these steps:
-
Ensure you have Docker installed and at least 3GB of free space.
-
Clone the repository from GitHub:
git clone https://github.com/gregomelo/DuckRunnerAnalysis.git
-
Navigate into the project directory and build the Docker image:
cd DuckRunnerAnalysis docker build -t duckrunner-image .
-
AOnce the build is complete, run the container:
bash docker run -d --name duckrunner-container -p 8501:8501 duckrunner-image -
Open your browser and go to http://localhost:8501/.
-
Get Your Data: Download a
.fitfile from your running device. If you use Strava, you can download your original data by following this guide.
Don't have a file? You can use one of the sample training files in the data folder to test the app. -
Open DuckRunner: Go to the DuckRunner app on Streamlit.
Note: The Streamlit app may go to sleep due to inactivity. If this happens, just click "Yes, get this app back up!" and wait a few moments. -
Configure Your Zones: Set up your personal running training zones, which can be calculated from a 3km test. If you don't know your zones yet, you can use the default ones to see how it works.
-
Voilà! Explore your running data in detail and gain insights to improve your performance.
If you like this project, please consider supporting Correndo por Eles. a social project that helps include people with disabilities in street running events.
For questions or contributions, you can contact me on LinkedIn.
-
Introduced noise filtering for speed data
-
Integrated heart rate (BPM) and altitude (m) information into the main plot
-
Added X-axis range selection for interactive chart exploration
-
Improve tables
-
New plots for lap and split analysis
-
Enhanced interactivity with plots