How lboehme/griptrack works
GripTrack is a mobile-first finger-strength training app with a FastAPI server-rendered web interface and an Android WebView shell that can run the backend on-device. The main workflow is to choose a session from Today, follow the guided warmup and work sets, save the session as it progresses, then review strength and climbing trends. Separate product paths cover max testing, plate-aware loading, climbing logs, settings and backup/restore. Router-to-domain wiring is explicit in the README and sampled routes; unsampled subsystem links are omitted where their callers cannot be verified.
Main entry points: main.py FastAPI app · db.py SQLite database · settings.py Settings routes · training_log.py Session logging
Components 23
Clients
- Browser UI
backend/static - Android WebView
android/app/src/main/java/org/griptrack/app/MainActivity.kt - Embedded server
android/app/src/main/java/org/griptrack/app/ServerManager.kt
HTTP application
- FastAPI app
backend/main.py - Auth routes
backend/routers/auth.py - Device sign-in
backend/routers/device_auth.py - Today routes
backend/routers/home.py - Session routes
backend/routers/training_session.py - Max-test routes
backend/routers/max_tests.py - Climb and log routes
backend/routers/climbs.py - Progress routes
backend/routers/progress.py - Settings routes
backend/routers/settings.py
Training and insights
- Identity and access
backend/auth.py - Session planning
backend/today.py - Session logging
backend/training_log.py - Max testing and plans
backend/plan.py - Plate loading
backend/plates.py - Strength analytics
backend/analytics.py - Climbing correlation
backend/climbing.py - Backup and restore
backend/archive.py
User records
- Domain records
backend/models.py - SQLite database
backend/db.py
Other components
- Climber
Connections 32
- Climber → Browser UI: uses
- Climber → Android WebView: uses
- Browser UI → FastAPI app: HTTP requests
- Android WebView → Embedded server: starts
- Embedded server → FastAPI app: serves locally
- FastAPI app → Auth routes: registers
- FastAPI app → Device sign-in: registers on device
- FastAPI app → Today routes: registers
- FastAPI app → Session routes: registers
- FastAPI app → Max-test routes: registers
- FastAPI app → Climb and log routes: registers
- FastAPI app → Progress routes: registers
- FastAPI app → Settings routes: registers
- Auth routes → Identity and access: calls
- Device sign-in → Identity and access: calls
- Today routes → Session planning: calls
- Session routes → Session logging: calls
- Max-test routes → Max testing and plans: calls
- Climb and log routes → Climbing correlation: calls
- Progress routes → Strength analytics: calls
- Settings routes → Plate loading: calls
- Settings routes → Backup and restore: calls
- Session logging → Plate loading: uses loading
- Identity and access → SQLite database: reads and writes
- Session planning → SQLite database: reads
- Session logging → SQLite database: reads and writes
- Max testing and plans → SQLite database: reads and writes
- Plate loading → SQLite database: reads and writes
- Strength analytics → SQLite database: reads
- Climbing correlation → SQLite database: reads
- Backup and restore → SQLite database: exports and restores
- SQLite database → Domain records: stores