CPSC 210 · Java Swing · UBC

FitHub

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

FitHub.app — Welcome
FitHub splash screen
scroll

5

App views

7×3

Meal grid

JSON

Persistence

1

Term build

The Interface

Four views, one app.

Workout Planner — FitHub
FitHub workout planner
Weekly Split View
Meal Planner
FitHub meal planner
Workout Stats
FitHub workout stats
Diet Tracker — Macro Overview
FitHub diet tracker
Macro Breakdown

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.

UI Layer

Java Swing

JFrame panels with custom layouts for each view. Responds to model changes; no logic in the view layer.

Model Layer

Plain Java

Domain objects — User, Workout, MealPlan, Exercise. State and business logic, independent from the UI.

Persistence

JSON

All data serializes on save, deserializes on load. Stateless between sessions with no stale state in memory.

What it does

01

Workout Planner

Create or generate weekly splits, track exercises per day, and save your routine so it's always waiting when you reopen.

02

Meal Planner

A 7×3 grid for breakfast, lunch, dinner. Swap meals in any slot, inspect macros, and experiment with weekly layouts.

03

Progress Tracking

Computed stats on volume, macro trends, and consistency — all derived from the same data, so there's nothing to sync.

FitHub — README.md

# FitHub
A Java Swing desktop fitness application.
Built for CPSC 210 @ UBC.

$ git clone https://github.com/itskushagraa/fithub

View on GitHubCPSC 210 · University of British Columbia