Skip to content

Repository files navigation

# GymTracker 🏋️ A personal gym tracking PWA built with Blazor WebAssembly. Tracks workouts, bodyweight, and progression over time. Installs on your iPhone home screen for free — no App Store needed. ## Features - **Log Workouts** — Pick exercises, enter sets/reps/weight, with auto-fill from your last session - **Log Bodyweight** — Daily weigh-in with 7-day rolling average - **History** — Browse and filter past workouts, expandable detail view - **Progress Charts** — Bodyweight trend and per-exercise weight progression over time - **Personal Bests** — Automatic PB tracking and estimated 1RM (Epley formula) - **Exercise Library** — 27 pre-loaded exercises + add your own custom ones - **Offline Support** — Works without internet once installed - **All data stays on your device** — nothing is sent to any server ## Quick Start (Local) ```bash # Prerequisites: .NET 8 SDK (https://dotnet.microsoft.com/download/dotnet/8.0) dotnet restore dotnet run # Open https://localhost:5001 in your browser ``` ## Deploy to GitHub Pages (Free) 1. **Create a GitHub repo** and push this code: ```bash git init git add . git commit -m "Initial commit" git branch -M main git remote add origin https://github.com/YOUR_USERNAME/GymTracker.git git push -u origin main ``` 2. **Enable GitHub Pages**: - Go to your repo → Settings → Pages - Under "Source", select **GitHub Actions** 3. **Wait for the build** — check the Actions tab. Once green, your app is live at: ``` https://YOUR_USERNAME.github.io/GymTracker/ ``` 4. **Install on iPhone**: - Open the URL above in **Safari** - Tap the **Share** button (square with arrow) - Tap **"Add to Home Screen"** - Done! It now works like a native app with its own icon ## Project Structure ``` GymTracker/ ├── Models/Models.cs # Data models (WorkoutSession, BodyweightLog, etc.) ├── Services/DataService.cs # Data persistence via browser localStorage ├── Pages/ │ ├── Index.razor # Dashboard │ ├── LogWorkout.razor # Workout logging │ ├── LogWeight.razor # Bodyweight logging │ ├── History.razor # Workout history browser │ └── Progress.razor # Charts and stats ├── Layout/MainLayout.razor # Shell with bottom tab navigation ├── wwwroot/ │ ├── index.html # Entry point with PWA meta tags │ ├── manifest.json # PWA manifest │ ├── css/app.css # Full dark-theme styling │ ├── js/chart-interop.js # Chart.js integration │ └── icons/ # PWA icons └── .github/workflows/ └── deploy.yml # Auto-deploy on push to main ``` ## Tech Stack - C# / .NET 8 Blazor WebAssembly - Blazored.LocalStorage (browser persistence) - Chart.js (progression graphs) - PWA (installable, offline-capable) ## Notes - All data is stored in your browser's localStorage — clearing browser data will erase it - Designed for mobile-first usage on iPhone but works on any device - Units are in kg; to change to lbs, update the display strings in the `.razor` files # gymtracker # gymtracker

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages