How fatuko/iron-workout-app works
IRON is a mobile workout tracker. The current client workflow starts at Home, where users can open a workout or splits; workout set entry is draft-only, while history and progression screens display starter content. The API contains a 1RM estimator and research-backed constants, but no sampled progression endpoint or client integration. Supabase persistence, authentication, and schema/RLS are documented plans, not connected runtime paths; those planned capabilities are shown without invented data-flow edges.
Main entry points: _layout.tsx Tab navigation · page-shell.tsx Page components · index.tsx Home · splits.tsx Split setup
Components 14
Mobile client
- Tab navigation
app/src/app/_layout.tsx - Home
app/src/app/index.tsx - Split setup
app/src/app/splits.tsx - Workout entry
app/src/app/workout.tsx - Session history
app/src/app/history.tsx - Progress trends
app/src/app/progression.tsx - Page components
app/src/components/page-shell.tsx
Progression logic
- Progression service
api/app/services - 1RM estimator
api/app/services/one_rm.py - Training constants
api/app/services/constants.py - Research citations
api/app/data/citations.json
Planned data layer
- Workout database
supabase - Supabase
Other components
- Lifter
Connections 14
- Lifter → Tab navigation: opens
- Tab navigation → Home: routes
- Tab navigation → Split setup: routes
- Tab navigation → Workout entry: routes
- Tab navigation → Session history: routes
- Tab navigation → Progress trends: routes
- Home → Workout entry: links to
- Home → Split setup: links to
- Split setup → Page components: renders
- Workout entry → Page components: renders
- Session history → Page components: renders
- Progress trends → Page components: renders
- 1RM estimator → Training constants: reads limits
- Training constants → Research citations: traces values to