Progressive Overload
REST API and mobile client for a serious progressive-overload fitness tracker.
A full-stack fitness platform designed around the principle of progressive overload — the gradual increase of weight, reps, or intensity across training sessions. The product targets athletes who want structured programming, not another casual workout log.
The backend exposes a clean REST API secured with both JWT and Firebase authentication, backing a Flutter mobile client that lets athletes plan routines, log sets in real time, and track progress with rich analytics. Exercise data is filterable by muscle group and equipment so sessions stay fast in the gym.
Routine builder support covers supersets, circuits, RPE/RIR targets, and tempo prescriptions. Every logged set feeds automatic PR detection and volume trends, so progression is measured instead of guessed. Muscle-group heatmaps and per-exercise charts make imbalances visible over weeks of training.
This project reflects how I ship end-to-end systems: clear API boundaries, dual auth for mobile and API clients, and analytics that stay useful when the dataset grows. The stack — Node.js, Express, MongoDB, Firebase, and Flutter — was chosen for speed of iteration without sacrificing structure.
Dual authentication
JWT for stateless API sessions plus Firebase Auth for social / email login on the mobile client.
Exercise database
Searchable library filterable by muscle group, equipment, and movement pattern.
Routine builder
Supersets, circuits, RPE/RIR targets, tempo control, and rest-timer presets.
Set logging
Per-set weight, reps, RPE, notes, and warm-up flags with instant history recall.
Automatic PR detection
Server-side calculation of 1RM, volume, and rep-max PRs across every logged session.
Analytics
Volume trends, muscle-group heatmaps, and per-exercise progression charts.