Case Study
Workout Builder
A seven-day workout planner with a searchable exercise library backed by an Express API and Turso database, custom exercises, editable sets and reps, and a weekly plan saved in the browser.

Overview
Workout Builder is a React 19 application for creating a complete weekly exercise routine in the browser. Users can search the built-in exercise library, create their own exercises, assign them to any day of the week and customise the number of sets and repetitions. The exercise library is stored in Turso through a Node.js and Express API, while the weekly plan stays in localStorage. The frontend is hosted on Netlify and proxies production API requests to Render.
Challenge
The main challenge was keeping seven independent daily plans, a customisable exercise library and editable workout values synchronised through one interface. The move from browser-only exercise storage to an API-backed library also needed to preserve existing custom exercises, handle loading and failed requests, and keep the weekly plan available locally.
Architecture
React state manages the exercise library and seven daily workout arrays. The frontend loads, creates and deletes library exercises through an Express API backed by Turso via the libSQL client. A one-time import transfers an existing localStorage exercise library to the API. Loading states, request cancellation and a retry action handle library requests. The weekly routine continues to load and save locally through localStorage. Netlify rewrites /api requests to the Render-hosted backend.
Testing
The repository uses Jest and React Testing Library for exercise data, library and planner components, and application interactions, including day assignment, exercise removal, sets and reps updates and weekly-plan persistence. GitHub Actions runs the Jest suite. The Express and Turso backend is a recent extension of the original browser-based application; the existing frontend coverage figures do not establish backend test coverage.
Features
- Seven-day workout planning
- Searchable built-in exercise library
- First-letter exercise filtering
- Custom exercise creation and deletion
- Exercise assignment to individual days
- Editable sets and repetitions
- Automatic weekly exercise count
- Empty-state guidance for every day
- Weekly plan persistence with localStorage
- Exercise library persistence in Turso through an Express API
- One-time import of an existing browser exercise library
- Exercise-library loading, error and retry states
- Netlify API proxy to the Render-hosted backend
- Responsive one, three and seven-column planner layouts
- Jest and React Testing Library test suite
- Automated test coverage checks with GitHub Actions
Tech Stack
React 19JavaScriptViteTailwind CSS 4localStorageNode.jsExpress 5Turso / libSQLRenderJestReact Testing LibraryTesting Library User EventGitHub ActionsNetlify