The screenshot highlights the current product surface: logging, plans, nutrition, history, and lifecycle work.
FitTrack
A Phoenix/LiveView training workspace for workout logging, reusable plans, nutrition, exercise media, history, strength tools, and production deployment, with recent work focused on completed-session data integrity.
FitTrack milestones and active delivery work.
The story is recent engineering work, not a generic habit-tracker pitch.
Keep training records stable as the app grows.
FitTrack moved beyond simple logging into reusable plans, exercise sources, media, nutrition, history, and AI-assisted drafting. That made lifecycle state, source snapshots, and completed-workout summaries important for trustworthy history.
Make completion data explicit and durable.
Recent work introduced explicit `draft`, `active`, `completed`, and `discarded` states, immutable origin snapshots for plan-started workouts, and a branch for persisted completed-workout muscle aggregation.
Verified product behavior with production-minded checks.
Lifecycle work passed `mix precommit` with 275 tests. Production media work also recorded zero templates without cached media, while unsupported oversized provider videos remain deliberately outside the cache pipeline.
Verified milestones
- Workout lifecycle states reintroduced explicit draft, active, completed, and discarded behavior.
- Origin snapshots preserve completed History context after plans, exercises, templates, or normalized source rows change.
- Mobile navigation blockers were resolved with mobile primary links and Start/Resume CTAs.
- Exercise media reliability reached production coverage with 488 templates and 0 templates missing cached media.
- AI workout generator, nutrition import, meal planning, History, and 1RM work are documented in the completed-work log.
Current active work
- `feature/workout-completion-muscle-aggregation` persists per-workout muscle summaries when sessions complete.
- The aggregation path covers quick-log workouts, origin-snapshot muscles, live normalized muscles, and string fallbacks.
- Acceptance requires ownership-scoped reads, transactional writes, idempotent recompletion, constraints, cascade behavior, and `mix precommit`.
- Out of scope for that branch: advanced History filters and retroactive snapshot reconstruction.