How lenonante/altarun-app works
Altarun is a web app for user accounts, clubs and teams, with Strava connectivity and an administrative dashboard. The principal flow is a user interacting with the Flask frontend, which calls the API for account or club operations; the API applies domain logic and persists records through SQLAlchemy. The frontend also handles Strava OAuth and presents account, club and admin pages. The source excerpts show the API’s BigQuery query path and a frontend service for recent ETL executions. Some routes and integrations are only partially sampled, so the graph omits unverified details.
Main entry points: app.py Web routes · main.py Authentication API · extensions.py SQLAlchemy extension · config.py Account API client
Components 19
Web experience
- Web routes
frontend/app.py - Page templates
frontend/templates
Accounts and security
- Account flows
frontend/app.py - Account API client
frontend/services/config.py - Authentication API
api/main.py
Clubs and teams
- Club flows
frontend/app.py - Club API client
frontend/services/config.py - Club and team API
api/main.py
Integrations and admin
- Admin dashboard
frontend/app.py - Admin API client
frontend/services/config.py - Strava OAuth
frontend/app.py - ETL execution client
frontend/services/big_query_requests.py - BigQuery endpoint
api/main.py
Persistence
- Domain models
api/database/models.py - SQLAlchemy extension
api/database/extensions.py - SQLite database
api/main.py
Other components
- User
- Strava
- BigQuery
Connections 23
- User → Web routes: uses
- Web routes → Page templates: renders
frontend/app.py - Web routes → Account flows: routes
frontend/app.py - Web routes → Club flows: routes
frontend/app.py - Web routes → Admin dashboard: routes
frontend/app.py - Web routes → Strava OAuth: routes
frontend/app.py - Account flows → Account API client: calls
frontend/app.py - Account API client → Authentication API: requests
frontend/services/config.py - Club flows → Club API client: calls
frontend/app.py - Club API client → Club and team API: requests
frontend/services/config.py - Admin dashboard → Admin API client: calls
frontend/app.py - Admin API client → Authentication API: requests
frontend/services/config.py - Strava OAuth → Strava: exchanges token
frontend/app.py - Strava OAuth → Account API client: stores connection
frontend/app.py - Web routes → ETL execution client: imports
frontend/app.py - ETL execution client → BigQuery endpoint: requests runs
frontend/services/big_query_requests.py - BigQuery endpoint → BigQuery: queries
api/main.py - Authentication API → Domain models: queries and updates
api/main.py - Club and team API → Domain models: queries and updates
api/main.py - Domain models → SQLAlchemy extension: defines with
api/database/models.py - Authentication API → SQLAlchemy extension: uses
api/main.py - Club and team API → SQLAlchemy extension: uses
api/main.py - SQLAlchemy extension → SQLite database: persists records
api/main.py