Training App

About

A training app for logging your sessions, viewing your history, tracking progress, and building or choosing the workout plans you follow over time.

Purpose

To add the functionality I felt was missing from most free training apps. They usually cap how many session templates you can create, and metrics like RIR and RPE often are not even an option. The things that would actually help tend to hide behind a paywall or not exist at all. The Training App gives you full plan creation and detailed logging without those limits. The aim is to make your whole training journey easier and more seamless by giving you everything you need and nothing you do not, in an intuitive way.

What I worked on
01

Design and layout. Designed and built the entire interface, every screen, layout, and interaction across the app, from the dashboard and session logging to plans and history.

02

Session logging. Log each exercise with sets, reps, weight, notes, and metrics like RIR and RPE, with support for normal, drop, and super sets. When a session is started from a plan, its prescribed targets are pre-filled so you only overwrite what you actually lifted. A session stays open until you end or cancel it, and can be resumed.

03

Session history. Every finished session is saved to a history you can look back on to review past workouts and track progress over time.

04

Plan creation and selection. Build your own plans from reusable session templates or choose an existing one, with each template prescribing its target sets, reps, weight, RPE and RIR. A plan runs over a set number of weeks and tracks the current week, and the dashboard works out the next session from each template's day offset, never before the plan start date, and surfaces a "start today's session" button when it lands on today.

05

Authentication. Auth0 sign-in with a JWT validated on every API route, so each user's training data stays private to their account.

06

Testing. Jest and supertest integration tests covering the API and running against a real database.

07

Docker deployment. A three-container stack (MySQL, the API, and nginx serving the frontend and proxying the API) built to self-host on a Raspberry Pi, with database migrations as the single source of truth for the schema.

Back to projects