FitHub
A desktop fitness app in Java Swing — workout planner, meal tracker, and computed progress stats, all persisted to JSON.

5
App views
7×3
Meal grid
JSON
Persistence
1
Term build
The Interface
Four views, one app.



Architecture
Built to last.
Stats aren't a separate database — they're computed from the same JSON that drives the planner views. One source of truth, every perspective.
Java Swing
JFrame panels with custom layouts for each view. Responds to model changes; no logic in the view layer.
Plain Java
Domain objects — User, Workout, MealPlan, Exercise. State and business logic, independent from the UI.
JSON
All data serializes on save, deserializes on load. Stateless between sessions with no stale state in memory.
What it does
Workout Planner
Create or generate weekly splits, track exercises per day, and save your routine so it's always waiting when you reopen.
Meal Planner
A 7×3 grid for breakfast, lunch, dinner. Swap meals in any slot, inspect macros, and experiment with weekly layouts.
Progress Tracking
Computed stats on volume, macro trends, and consistency — all derived from the same data, so there's nothing to sync.
# FitHub
A Java Swing desktop fitness application.
Built for CPSC 210 @ UBC.
$ git clone https://github.com/itskushagraa/fithub

