HappyGymStats is a Torn telemetry pipeline with a production ASP.NET API, a Blazor frontend, and an AdminPanel surface. The current deployment shape is API + Blazor + AdminPanel backed by Postgres, with Keycloak-protected admin/auth flows.
- Live Project: HappyGymStats
- Operator console:
bash scripts/menu.sh— one place to run every deploy, bootstrap, maintenance and verification task, with a preview before anything changes - Operational pitfalls: docs/OPERATIONS-PITFALLS.md — read before a first deploy
- Project overview: docs/OVERVIEW.md
- Local setup/run: docs/SETUP.md
- Deployment: docs/DEPLOYMENT.md
- My stats operator gate (M004): docs/M004-MY-STATS-OPERATOR-GATE.md
- Audit context (2026-05-06-181943): .gsd/milestones/M003/M003-ROADMAP.md
- Production smoke verification:
scripts/verify/production-smoke.sh - Torn API key ToS disclosure: docs/torn-api/terms-of-service.md
Everything below is also reachable from bash scripts/menu.sh without typing
flags.
bash scripts/verify/m004-my-stats-final-gate.shbash scripts/verify/production-smoke.shbash scripts/verify/s05-local-surfaces.sh
src/HappyGymStats.Api— production API (/api/v1/torn/*), import/surfaces endpoints, and the SignalR war hubsrc/HappyGymStats.Blazor— primary frontend for production user flowssrc/HappyGymStats.AdminPanel— operations/admin surfacesrc/HappyGymStats.Core— Torn fetch, reconstruction, and war-engine logicsrc/HappyGymStats.Data— EF Core data layer (Postgres + provider integration)src/HappyGymStats.Contracts— shared entities and repository interfacessrc/HappyGymStats.Identity— Keycloak auth extensionssrc/HappyGymStats.Encryption— ECIES pseudonymization primitivessrc/HappyGymStats.WarPoller— Torn war polling hostweb/data/surfaces/— generated local surfaces cache artifacts (gitignored) used by local verification scriptstests/— unit/integration verification suitesscripts/verify/— bash gate harness (the project's CI equivalent)
See LICENSE.