A CLI tool to analyze running data
Project description
🏃 Running Data Analyzer
A command-line tool for analyzing running data. Manually add data or upload from a CSV or FIT file. Supports basic data insights like distance, pace, and trends over time.
Features
-
📊 Load and analyze running data from CSV or FIT files.
-
📏 Calculate total distance, average pace, and other key metrics.
-
📈 Identify trends and generate insights from past runs.
-
🖥️ Command-line interface (CLI) for easy use.
Installation
You can install the Running Data Analyzer from PyPI using uv:
uv pip install running-data-analyzer
🚀 Usage
Once installed, you can use the CLI command python -m running_analyzer run to start the program. Or use python -m running_analyzer -help to list avaialable commands.
Using run will have the app continually running in the terminal. Use help to list out all the commands.
Example Output
🏃♂️ Run Summary:
Total Runs: 105
Total Distance: 1601.12 km
Total Duration: 13437.33 mins
Average Distance: 15.25 km
Average Duration: 127.97 mins
Average Pace: 8.39 min per km
🏆 Best Run:
2025-03-06: 100.00 km in 35.00 mins (Pace: 0.35)
📏 Longest Run:
2025-03-06: 100.00 km
📉 Shortest Run:
2025-02-22: 1.01 km
🐢 Slowest Run:
2024-12-22: Pace of 11.96 min/km
CSV Format & Getting FIT File from Strava
When importing a CSV file, you should have the following columns:
Date,Distance,Unit,Duration (min),Heart Rate,Elevation Gain,Pace,Run Type,Location,Notes
2025-02-15,10.5,km,55,150,200,5:14,Tempo,Park,Good run
2025-02-10,8.0,mi,44,145,180,7:10,Long,Trail,Felt strong
Strava Guide: Exporting Strava Data
🛠️ Tech Stack
- Backend: Typer (CLI framework), SQLModel (ORM & DB modeling), PostgreSQL (database), Alembic (migrations)
- CLI & Utilities: Rich (console output), Plotext (terminal plotting), NumPy (data processing)
- Deployment: PyPI (package distribution)
🔥 Future Features
- 📅 Add support for GPX file imports
- 🏆 More visualizations
- 📝 API integration with Strava/Garmin
📄 License
This project is licensed under the MIT License.
Acknowledgements
Feel free to suggest any improvements or share your feedback by logging an issue against this repo!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file running_analyzer-0.1.0.tar.gz.
File metadata
- Download URL: running_analyzer-0.1.0.tar.gz
- Upload date:
- Size: 52.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c9264ce8b00929f77f86b6593f5d9cd2b851323f6027b0d73ad78a7581d4f0f
|
|
| MD5 |
56c647edda051aa3c310691a187b0e12
|
|
| BLAKE2b-256 |
590a3bde1faabed3fcec604c5b440d2d1cc9dbbbc94587831a65db2765234f9d
|
File details
Details for the file running_analyzer-0.1.0-py3-none-any.whl.
File metadata
- Download URL: running_analyzer-0.1.0-py3-none-any.whl
- Upload date:
- Size: 13.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6db499ba9d33f4b63ca86b4cc3b015d8e796f0e28875dec0c0769751718f59fd
|
|
| MD5 |
18b395cad627f5f994489abcee54ac8e
|
|
| BLAKE2b-256 |
41811138df8559b2d2306a8bf3982fb10c4664285c49f7db837a598227a98171
|