Files
jogging-dashboard/README.md

2.4 KiB
Raw Blame History

🏃‍♂️ GPX Jogging Dashboard

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

Dashboard Preview


Features

  • Interactive Map View with route trace and start/stop markers
  • Info Banner with total distance, duration, and average pace
  • 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
assets/                # CSS and styling
data/                  # Folder for storing GPX files
utils.py               # Optional helper functions
requirements.txt       # Required Python packages
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
# TODO:
pip install -r ...

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.