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.

Implementation record

How I solved it

  1. 01

    Uses a one-shot FastAPI OAuth setup and SQLite persistence to establish local Strava state before Telegram commands request activity data.

  2. 02

    Handles a Strava 401 with transparent token refresh, then derives split, pace, heart-rate and aggregate views from the returned activities.

  3. 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.