Strava training workflow
Open-source work in progressPublic personal project
A Telegram training bot that turns Strava activities into split, pace, heart-rate and trend views with SQLite-backed OAuth state.
Problem
A personal training assistant first needs reliable OAuth, token refresh, activity ingestion and local analysis before an LLM can add useful coaching.
How I solved it
- 01
Uses a one-shot FastAPI OAuth setup and SQLite persistence to establish local Strava state before Telegram commands request activity data.
- 02
Handles a Strava 401 with transparent token refresh, then derives split, pace, heart-rate and aggregate views from the returned activities.
- 03
Keeps the unfinished LLM coaching layer outside the shipped claim; the current record is the observable Telegram, OAuth and analysis core.
My role / what I owned
Personal-product builder
- Implemented the async Telegram commands and Strava activity-analysis path.
- Built one-shot FastAPI OAuth setup and transparent 401 token refresh with SQLite persistence.
- Added split, pace, heart-rate and aggregate analytics plus two direct test modules.
How it was built
- Team
- A personal project in Nivish’s public repository.
- Tools
- Python
- Telegram
- Strava API
- aiohttp
- FastAPI
- OAuth
- SQLite
- Use of AI
- The repository README says LLM coaching integration is still coming, so it is not presented as a shipped capability.
Source and current state
- 19 public commits at the August 2026 review.
- 2 direct test modules plus visible Telegram, OAuth, refresh and analytics paths.
- Status
- Public work in progress. The Telegram and Strava data core exists; LLM coaching remains unfinished.
- What it shows
- The repository demonstrates the current Telegram, Strava, token-refresh and activity-analysis workflow.