How msstoci/running_page works
Running Page collects and synchronizes workout records from fitness services and files, then presents the resulting activity data as a personal running website. The browser loads the published activity JSON and renders it through a selectable dashboard or classic theme, with activity summaries and route-oriented views. The repository also includes a terminal activity browser and route-poster generation. The README documents the sync and data-update workflow; sampled code supports the frontend loading and rendering relationships, but does not establish all backend adapter wiring.
Main entry points: db.py Activity database · index.tsx Dashboard theme · App.tsx App and themes · TracksPage.tsx Track views
Components 24
Activity synchronization
- Service sync adapters
run_page - GPX/TCX/FIT sync
run_page/gpx_sync.py - Service transfers
run_page/garmin_to_strava_sync.py
Data and visualization
- Database updater
run_page/db_updater.py - Activity database
run_page/generator/db.py - CSV export
run_page/data_to_csv.py - Track posters
run_page/gpxtrackposter/poster.py
Personal website
- Published activities
- React entry
src/main.tsx - App and themes
src/App.tsx - Dashboard theme
src/themes/dashboard/index.tsx - Classic theme
src/themes/classic/index.tsx - Activity loading
src/core/hooks/useActivities.ts - Classic activity data
src/themes/classic/hooks/useActivities.ts - Activity summaries
src/components/SummaryPage.tsx - Track views
src/components/TracksPage.tsx - Route maps
src/components/RouteMap.tsx - Track clustering
src/workers/clusterTracks.worker.ts
Terminal browser
- Terminal activity browser
run_page/tui/app.py - Terminal data model
run_page/tui/data.py
Other components
- Page owner
- Fitness services
- Activity files
- Website visitor
Connections 25
- Page owner → Service sync adapters: starts sync
- Fitness services → Service sync adapters: provides records
- Activity files → GPX/TCX/FIT sync: provides tracks
- Page owner → GPX/TCX/FIT sync: starts import
- Page owner → Service transfers: starts transfer
- Service sync adapters → Activity database: writes activities
- GPX/TCX/FIT sync → Activity database: writes activities
- Service transfers → Fitness services: transfers activities
- Database updater → Activity database: updates schema
- Activity database → CSV export: reads activities
- Activity database → Track posters: supplies tracks
- Activity database → Published activities: exports data
- Website visitor → React entry: opens page
- React entry → App and themes: renders
- App and themes → Dashboard theme: selects theme
- App and themes → Classic theme: selects theme
- Dashboard theme → Activity loading: loads activities
- Classic theme → Classic activity data: loads activities
- Activity loading → Published activities: fetches JSON
- Classic activity data → Published activities: fetches JSON
- Dashboard theme → Activity summaries: renders summaries
- Dashboard theme → Track views: renders tracks
- Track views → Route maps: renders routes
- Track views → Track clustering: clusters tracks
- Terminal activity browser → Terminal data model: loads activity data