A full-featured gym tracking Progressive Web App (PWA) for teams and individuals. Track workouts, monitor progress, compete on leaderboards, and get AI-driven progressive overload recommendations.
- Authentication — Invite-based sign-up, JWT persistence, password management
- Onboarding — Multi-step profile setup with completion banner
- Dashboard — GitHub-style gym attendance heatmap + daily creatine tracker
- Workout Logging — Log sets/reps/weights per session with history
- Progressive Overload Algorithm — Smart weight/rep suggestions for next session
- Leaderboard — 3 tabs: Relative Strength Score, Wilks Score, Progress Rate
- Achievements — Bodyweight-based strength goals with progress bars
- Admin Panel — User management, exercise plan assignment, cross-user comparison charts
- PWA — Installable on mobile and desktop, works offline
| Layer | Technology |
|---|---|
| Frontend | Next.js 14 (App Router), TypeScript, Tailwind CSS, shadcn/ui |
| Backend | NestJS, TypeScript, TypeORM |
| Database | SQLite3 (via better-sqlite3) |
| Auth | JWT (httpOnly cookies), bcryptjs |
| Resend | |
| PWA | next-pwa |
RepRush/
├── frontend/ # Next.js PWA application
├── backend/ # NestJS REST API
│ └── database/ # SQLite .db file (gitignored)
├── DEVELOPMENT.md # Architecture & session continuity docs
└── README.md
- Node.js 18+
- npm 9+
cd backend
cp .env.example .env
# Edit .env with your values (see .env.example)
npm install
npm run start:devBackend runs on http://localhost:3001
cd frontend
cp .env.local.example .env.local
# Edit .env.local
npm install
npm run devFrontend runs on http://localhost:3000
After starting the backend, the admin account is auto-seeded. See DEVELOPMENT.md for credentials.
JWT_SECRET=your-secret-key-here
RESEND_API_KEY=re_xxxxxxxxxxxx
RESEND_FROM_EMAIL=RepRush <noreply@your-verified-domain.com>
ADMIN_EMAIL=frezwoan+reprush@gmail.com
ADMIN_PASSWORD=changeme123
PORT=3001
FRONTEND_URL=http://localhost:3000RESEND_FROM_EMAIL must use a sender on a verified Resend domain for real invite delivery.
NEXT_PUBLIC_API_URL=http://localhost:3001main— production-ready codedevelop— integration branchfeature/*— individual featuresfix/*— bug fixes
Designed to run on a Raspberry Pi (Linux ARM). See DEVELOPMENT.md → Deployment section.
Private — All rights reserved.