00 the spec
Every module, broken down.
GainSync is not a tracker with extras bolted on. Each module below maps to a real part of the app — with a space reserved for its wireframe.
Training blocks
The core of GainSync. Train in periodised blocks with weeks, deloads, and reps-in-reserve targets — not a flat list of days.
- Manual creation with full control over weeks & days
- Auto-generation from goal, experience & frequency
- Planning state before you commit a block
- Current block tracking with live progress
- Calendar view of every planned workout
- Deload weeks & per-workout target RIR
- Reschedule a single workout or the whole cycle
- Mesocycle results & block summary
Live workout session
Log the work as it happens. Weight, reps and RIR per set, with the template snapshot pinned so the plan never drifts.
- Set-by-set logging: weight · reps · RIR
- Rest timers between sets
- Session preview before you start
- Workout set planner
- Template snapshot per planned workout
- Exercise picker mid-session
Exercise library
A structured movement database — global exercises plus your own — tagged so the generator and stats actually understand them.
- Global + custom exercises
- Movement patterns: squat, hinge, H/V push, H/V pull
- Muscle group & category tagging
- Difficulty: beginner / intermediate / advanced
- Form notes & per-exercise rest seconds
- Create & edit custom exercises
Statistics
Progress you can see. Charted progression so you know whether the block is actually working.
- Per-exercise progression over time
- Total sets across the block
- Total workouts completed
- Charts powered by fl_chart
Onboarding
Four steps to a usable plan. The answers feed straight into the mesocycle generator.
- Step 1 — primary goal
- Step 2 — experience level
- Step 3 — training frequency
- Step 4 — complete & generate
Workout templates
Reusable building blocks. Define a workout once and drop it into any block.
- Create & edit templates
- Template picker per planned day
- Per-set inputs & target schemes
- Workout list & detail views
Platform
The plumbing that keeps it reliable — built on Flutter, GraphQL, and a local-first store.
- Offline-first: mutations queue via Hive
- GraphQL backend with sync
- Local notifications
- Type-safe i18n (Slang)
- Secure storage for credentials
- BLoC/Cubit state management