main initial setup of the repo.
This commit is contained in:
106
README.md
Normal file
106
README.md
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
# 🏃♂️ GPX Jogging Dashboard
|
||||||
|
|
||||||
|
An interactive Python Dash app to visualize, analyze, and explore your jogging or running sessions recorded as GPX files.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/yourusername/gpx-jogging-dashboard.git
|
||||||
|
cd gpx-jogging-dashboard
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Install dependencies
|
||||||
|
|
||||||
|
We recommend using a virtual environment:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python -m venv venv
|
||||||
|
source venv/bin/activate # On Windows: venv\Scripts\activate
|
||||||
|
# TODO:
|
||||||
|
pip install -r ...
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Run the app
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python app.py
|
||||||
|
```
|
||||||
|
|
||||||
|
Then open your browser and go to:
|
||||||
|
[http://127.0.0.1:8050](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](LICENSE).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Feedback / Contributions
|
||||||
|
|
||||||
|
Feel free to open issues or pull requests!
|
||||||
|
If you enjoy this project, a ⭐️ star is always appreciated.
|
||||||
BIN
WebAppGPXDashboard.jpg
Normal file
BIN
WebAppGPXDashboard.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 651 KiB |
20812
gpx_files/20250621_093335.gpx
Normal file
20812
gpx_files/20250621_093335.gpx
Normal file
File diff suppressed because it is too large
Load Diff
20549
gpx_files/20250623_152441.gpx
Normal file
20549
gpx_files/20250623_152441.gpx
Normal file
File diff suppressed because it is too large
Load Diff
19288
gpx_files/20250626_093922.gpx
Normal file
19288
gpx_files/20250626_093922.gpx
Normal file
File diff suppressed because it is too large
Load Diff
15052
gpx_files/20250710_131853.gpx
Normal file
15052
gpx_files/20250710_131853.gpx
Normal file
File diff suppressed because it is too large
Load Diff
6487
gpx_files/activity_12,82Km,Hamburg,Run,2019-02-02.gpx
Normal file
6487
gpx_files/activity_12,82Km,Hamburg,Run,2019-02-02.gpx
Normal file
File diff suppressed because it is too large
Load Diff
7992
gpx_files/activity_15,21Km,Hamburg,Run,Feb,2019.gpx
Normal file
7992
gpx_files/activity_15,21Km,Hamburg,Run,Feb,2019.gpx
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user