adc207c56399b49d28949e1c8daa1b490bdf1fb8
🏃♂️ Jogging Dashboard
An interactive Python Dash app to visualize, analyze, and explore your jogging or running sessions recorded as GPX/FIT files.
Features
- Info Banner with total distance, duration, and average pace
- Interactive Map View with route trace and start/stop markers
- Elevation Profile with relative height and gradient fill
- Speed Over Time plot with smoothing and average line
- Heart Rate Over Time plot with smoothing and average line (if .fit)
- Deviation from Mean Speed to see pacing consistency
- Pace Bar Chart showing per-kilometer pace breakdown
Project Structure
gpx_app.py # Main Dash application for gpx files
gpx_files/ # Folder for storing GPX files
fit_app.py # Main Dash application for fit files
fit_files/ # Folder for storing FIT files
requirements.txt # Required Python packages
README.md # This file
Getting Started
1. Clone the repository
git clone https://github.com/yourusername/jogging-dashboard.git
cd jogging-dashboard
2. Install dependencies
We recommend using a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
Content of the requirements.txt file:
- dash
- dash-bootstrap-components
- plotly
- pandas
- numpy
- scipy
- gpxpy
- fitparse
3. Run the app
python fit_app.py
Then open your browser and go to:
http://127.0.0.1:8050
Uploading Your GPX File
- Export your activity (e.g., from Strava, Garmin, etc.) as a
.gpxor.fitfile - Place the file into the
gpx_files/orfit_files/directory - Select it via the dropdown in the dashboard
Tech Stack
- Dash (by Plotly) for building the UI and graphs
- Pandas for data wrangling
- Plotly Graph Objects & Express for advanced visuals
- Scipy for smoothing the data lines
- GPXPy for parsing
.gpxfiles - Numpy for vectorized math and smoothing
- FitParse for parsing
.fitfiles
Example GPX File
You can test the dashboard by either placing any valid .gpx file in the gpx_files/ or any valid .fit file in the fit_files/ directory. Make sure it contains track points with elevation and time data.
To Do / Ideas
- Plotting heart rate data - if FIT file choosen.
- Export as PDF report
- Multi-run comparison
License
This project is open source under the MIT License.
Feedback / Contributions
Feel free to open issues or pull requests!
If you enjoy this project, a ⭐️ star is always appreciated.
Description
Interactive Dash Dashboard for GPX/FIT-Based Running Data Analysis
This Python Dash app provides an interactive visual dashboard to analyze GPX/FIT tracking data from running sessions. After selecting a GPX/FIT file, the app processes the data and displays multiple synchronized plots, including:
- A dynamic route map with start/stop markers
- A relative elevation profile with gradient fill
- Speed over time with smoothing
- Heart rate over time with smoothing
- Deviation from average speed ("ghost runner")
- A summary banner showing total distance and duration
The app helps runners and hobby athletes explore performance, pacing, elevation, and route efficiency—all visualized intuitively using Plotly and Dash.
Languages
Python
100%
