diff --git a/README.md b/README.md index f032144..7c9154e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# 🏃‍♂️ GPX Jogging Dashboard +# 🏃‍♂️ Jogging Dashboard -An interactive Python Dash app to visualize, analyze, and explore your jogging or running sessions recorded as GPX files. +An interactive Python Dash app to visualize, analyze, and explore your jogging or running sessions recorded as GPX/FIT files.

Description @@ -13,7 +13,8 @@ An interactive Python Dash app to visualize, analyze, and explore your jogging o - **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 +- **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 @@ -22,9 +23,11 @@ An interactive Python Dash app to visualize, analyze, and explore your jogging o ## Project Structure ``` -app.py # Main Dash application +gpx_app.py # Main Dash application for gpx files gpx_files/ # Folder for storing GPX files -requirements.txt # Required Python packages (TODO!) +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 ``` @@ -35,8 +38,8 @@ README.md # This file ### 1. Clone the repository ```bash -git clone https://github.com/yourusername/gpx-jogging-dashboard.git -cd gpx-jogging-dashboard +git clone https://github.com/yourusername/jogging-dashboard.git +cd jogging-dashboard ``` ### 2. Install dependencies @@ -55,13 +58,15 @@ pip install -r requirements.txt - plotly - pandas - numpy +- scipy - gpxpy +- fitparse ### 3. Run the app ```bash -python app.py +python fit_app.py ``` Then open your browser and go to: @@ -71,8 +76,8 @@ Then open your browser and go to: ## 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 +1. Export your activity (e.g., from Strava, Garmin, etc.) as a `.gpx` or `.fit` file +2. Place the file into the `gpx_files/` or `fit_files/` directory 3. Select it via the dropdown in the dashboard --- @@ -82,21 +87,22 @@ Then open your browser and go to: - **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 `.gpx` files - **Numpy** for vectorized math and smoothing +- **FitParse** for parsing `.fit` files --- ## 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. +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 -- [ ] Heart rate support if present in GPX -- [ ] Export graphs as images +- [X] Heart rate support if present in FIT - [ ] Export as PDF report - [ ] Multi-run comparison