A gym management system built with Laravel, SvelteKit, and a mobile-friendly member PWA.
laragym/
├── app/ # Laravel application
├── routes/api.php # REST API routes
├── resources/apps/
│ ├── admin/ # Admin panel (SvelteKit)
│ └── member/ # Member PWA (SvelteKit + vite-plugin-pwa)
└── database/migrations/
git clone [email protected]:johndavedecano/laragym.git project
cd project
composer install
cp .env.example .env # edit with your DB credentials
php artisan key:generate
php artisan storage:link
php artisan migrate
php artisan db:seed
php artisan serve # http://localhost:8000
cd resources/apps/admin
cp .env.example .env # set PUBLIC_API_URL=http://localhost:8000
npm install
npm run dev # http://localhost:5173
cd resources/apps/member
cp .env.example .env # VITE_API_BASE_URL can stay empty in dev (proxy handles it)
npm install
npm run dev # http://localhost:5174
In development the member app proxies all
/apirequests tohttp://localhost:8000automatically. For production setVITE_API_BASE_URLto your API's public URL.
The REST API is served at http://localhost:8000/api.
| Group | Endpoints |
|---|---|
| Auth | POST /api/auth/login, register, logout, forgot, reset |
| Member (auth) | GET/PUT /api/me, PUT /api/me/password, GET /api/me/subscriptions, GET /api/me/attendance |
| Admin only | cycles, services, branches, packages, subscriptions, users, activities, stats |
# create a `homestead_test` database first, then:
./vendor/bin/phpunit
To use a different test database name, update phpunit.xml.
Open to work — reach out at johndavedecano@gmail.com
MIT — free to use, modify, and distribute with attribution.