How cyerifor/lift-app works
Lift App is a coach–athlete strength-training product. Coaches create training blocks and prescriptions; athletes follow scheduled sessions and submit set logs; coaches review performance and analytics. Authentication and role-specific access support both workflows. The sampled code shows block generation, log processing, and shared persistence/authentication layers. Several screens and API routes are present in the tree, but their request wiring was not excerpted, so those links are marked unverified rather than asserted.
Main entry points: db.ts Application Database · get-coach.ts Coach Access · coach Coach Routes · session-logs Session Logging
Components 19
Identity & Access
- Sign-in & Signup
app/auth - Account Routes
app/api/auth - Password Auth
lib/auth.ts - Session Access
lib/session.ts
Coach Planning
- Coach Dashboard
app/dashboard - Coach Routes
app/api/coach - Block Editor API
app/api/coach/blocks/[blockId]/route.ts - Block Creation API
app/api/coach/blocks/route.ts - Reviews & Analytics
app/api/coach/reviews
Athlete Training
- Athlete Screens
app/athlete - Athlete Routes
app/api/athlete - Session Logging
app/api/session-logs
Training Services
- Progression Engine
lib/engine.ts - Exercise Library
lib/exercise-seeds.ts - Coach Access
lib/get-coach.ts - Athlete Access
lib/get-athlete.ts - Application Database
lib/db.ts
Other components
- Coach
- Athlete
Connections 30
- Coach → Sign-in & Signup: signs up
- Athlete → Sign-in & Signup: signs in
- Sign-in & Signup → Account Routes: submits credentials
- Account Routes → Password Auth: hashes passwords
app/api/auth/signup/route.ts - Account Routes → Session Access: creates sessions
app/api/auth/signup/route.ts - Password Auth → Application Database: uses adapter
lib/auth.ts - Session Access → Application Database: reads/writes sessions
lib/session.ts - Coach → Coach Dashboard: plans training
- Coach Dashboard → Coach Routes: requests data
- Coach Routes → Coach Access: checks coach
app/api/coach/blocks/route.ts - Coach Access → Session Access: checks role
lib/get-coach.ts - Coach Routes → Application Database: queries training data
app/api/coach/blocks/route.ts - Block Creation API → Coach Access: checks coach
app/api/coach/blocks/route.ts - Block Creation API → Application Database: creates block schedule
app/api/coach/blocks/route.ts - Block Editor API → Coach Access: checks coach
app/api/coach/blocks/[blockId]/route.ts - Block Editor API → Application Database: reads/writes prescriptions
app/api/coach/blocks/[blockId]/route.ts - Block Editor API → Progression Engine: generates weeks
app/api/coach/blocks/[blockId]/route.ts - Coach Routes → Exercise Library: uses seed data
app/api/coach/exercise-library/route.ts - Coach → Reviews & Analytics: reviews progress
- Reviews & Analytics → Coach Access: checks coach
app/api/coach/reviews/route.ts - Reviews & Analytics → Application Database: reads review data
app/api/coach/reviews/route.ts - Athlete → Athlete Screens: follows sessions
- Athlete Screens → Athlete Routes: requests schedule
- Athlete Screens → Session Logging: submits set logs
- Athlete Routes → Athlete Access: checks athlete
app/api/athlete/blocks/active/route.ts - Athlete Access → Session Access: checks role
lib/get-athlete.ts - Athlete Routes → Application Database: reads athlete data
app/api/athlete/blocks/active/route.ts - Session Logging → Athlete Access: checks athlete
app/api/session-logs/sync/route.ts - Session Logging → Progression Engine: calculates summaries
app/api/session-logs/sync/route.ts - Session Logging → Application Database: stores logs and analytics
app/api/session-logs/sync/route.ts