Files
truenas-stacks/home/doris-barbell
Fizzlepoof 1227814277
Some checks failed
secret-guardrails / artifact-secret-scan (push) Has been cancelled
secret-guardrails / gitleaks (push) Has been cancelled
Add Doris Barbell live workout logger
2026-05-28 21:32:09 +00:00
..
2026-05-28 21:32:09 +00:00
2026-05-21 23:32:10 +00:00
2026-05-21 23:32:10 +00:00
2026-05-21 23:32:10 +00:00
2026-05-21 23:32:10 +00:00

Doris Barbell

Private-first exercise tracking app for John, with a clean path to add Manndra later.

Purpose

Doris Barbell gives John one place to track:

  • workout sessions
  • structured exercise templates and routines
  • sets with reps, weight, notes, rest, and RPE
  • body weight and BMI over time
  • broader body metrics in imperial units
  • progress trends and simple PR tracking

Runtime shape

  • Repo source: home/doris-barbell
  • Expected live PD runtime: /mnt/docker-ssd/docker/compose/doris-barbell
  • Expected first exposure: private-first on PD, with public routing optional later
  • Published app port: 8093

Do not run production from an agent workspace.

V1 defaults in flight

Unless John overrides them later, V1 is being built with these defaults:

  • mobile-friendly but usable on desktop
  • private-first deployment on PD
  • John is the active user
  • Manndra is stubbed as a second household member for future expansion
  • JSON-backed state first for speed of delivery
  • imperial measurement system only
  • no progress photos
  • no muscle-size tracking focus
  • structured workout logging first, richer planning/reporting layered in after

Current scaffold

The current scaffold already supports:

  • seeded users for john and stub manndra
  • seeded exercise templates and John's current five-day split:
    • Monday: Chest
    • Tuesday: Back
    • Wednesday: Arms
    • Thursday: Shoulders
    • Friday: Legs
  • profile updates
  • weight logging with BMI calculation
  • imperial body measurements for waist, hips, chest, and neck
  • exercise template creation/listing
  • routine creation/listing on top of John's imported base split
  • structured workout logging with nested exercises and sets
  • dedicated routine log sheets with dropdown exercise selection plus set-by-set reps and weight entry
  • live workout pages that let John start a session and save one exercise at a time mid-workout
  • history endpoints for weight, measurements, and workouts
  • exercise progression summaries with max weight and estimated 1RM per exercise
  • mobile-friendly homepage with HTML forms for:
    • weight logging
    • body-measurement logging
    • exercise template creation
    • routine draft creation
    • quick workout logging
  • basic dashboard summary plus John-facing history snapshots

John is currently seeded at a default height assumption of 68.5 inches until he says otherwise. His current imported split is stored with a default prescription of 3 sets and 10 reps for each listed movement, while working weights remain TBD until he fills them in.

Current API surface

  • GET /api/health
  • GET /api/dashboard/summary
  • PUT /api/profile/{user_id}
  • POST /api/profile/{user_id}/weight
  • GET /api/history/{user_id}/weights
  • POST /api/profile/{user_id}/measurements
  • GET /api/history/{user_id}/measurements
  • POST /api/exercises/templates
  • GET /api/exercises/templates
  • POST /api/routines
  • GET /api/routines
  • POST /api/workouts
  • GET /api/history/{user_id}/workouts
  • GET /api/progression/{user_id}/exercises
  • POST /log/weight
  • POST /log/measurements
  • POST /templates
  • POST /routines
  • POST /workouts/quick-log

Local run

cd /home/fizzlepoof/repos/truenas-stacks/home/doris-barbell
python3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8093

Or:

cd /home/fizzlepoof/repos/truenas-stacks/home/doris-barbell
bin/run-local.sh

Verification targets

curl -fsS http://127.0.0.1:8093/api/health
curl -fsS http://127.0.0.1:8093/api/dashboard/summary