2025-08-06 10:18:02 +02:00
2025-08-06 10:18:02 +02:00
2025-07-30 14:20:17 +02:00

🏃‍♂️ GPX Jogging Dashboard

An interactive Python Dash app to visualize, analyze, and explore your jogging or running sessions recorded as GPX files.

Description


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
  • Deviation from Mean Speed to see pacing consistency
  • Pace Bar Chart showing per-kilometer pace breakdown

Project Structure

app.py                 # Main Dash application
gpx_files/             # Folder for storing GPX files
requirements.txt       # Required Python packages  (TODO!)
README.md              # This file

Getting Started

1. Clone the repository

git clone https://github.com/yourusername/gpx-jogging-dashboard.git
cd gpx-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
  • gpxpy

3. Run the app

python app.py

Then open your browser and go to:
http://127.0.0.1:8050


Uploading Your GPX File

  1. Export your activity (e.g., from Strava, Garmin, etc.) as a .gpx file
  2. Place the file into the gpx_files/ directory
  3. 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
  • GPXPy for parsing .gpx files
  • Numpy for vectorized math and smoothing

Example GPX File

You can test the dashboard by placing any valid .gpx file in the gpx_files/ directory. Make sure it contains track points with elevation and time data.


To Do / Ideas

  • Heart rate support if present in GPX
  • Export graphs as images
  • 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.
Readme MIT 22 MiB
Languages
Python 100%