
Overview
Laravel based web application for gym & club management. Currently being used by many fitness centers. For more information, visit - https://www.gymie.in
Requirements
- PHP >= 8.2
- Laravel Framework ^12.0
- Filament Admin Panel 5.x
- Livewire ^3.0
- nnjeim/world ^1.1
- barryvdh/laravel-dompdf ^3.1
- Laravel Herd (optional for local development)
Installation
To set up Gymie, follow these steps:
1. Clone the Repository
Clone the repository to your local system:
git clone [email protected]:lubusIN/laravel-gymie.git
2. Go to folder
cd laravel-gymie
3. Install dependencies
composer install
4. Prepare the environment
Run the following script to prepare your environment:
composer run prepare-env
This will:
- Copy
.env.exampleto.env(if missing) - Clear config cache
- Generate application key
- Create a symbolic link to the storage folder
5. Configure the .env file
- Set your database credentials.
- Update other relevant configuration values.
- Set your application URL:
APP_URL=https://laravel-gymie.test
6. Database Setup
You can set up the database in one of two ways, depending on your requirements:
Option 1: Blank Setup (Recommended for Production)
Run the following command:
composer run setup
[!NOTE] This command will prompt you to create an admin user via the terminal.
This will:
- Set up the environment (.env, app key, storage link)
- Run a fresh migration to create database tables
- Seed the world data (countries, states, cities)
- Create a default Filament admin user
Option 2: Demo Setup
If you want to explore the system with all demo data preloaded, use:
composer run setup-demo
This command will:
- Reset the database
- Seed all available demo data
- Prepare the environment automatically
[!CAUTION] This process will erase all existing data. Use it only in a local or demo environment.
Login credentials:
Email: [email protected]
Password: test
Troubleshooting
Memory Errors
Ensure PHP has enough memory allocated. Edit your php.ini:
memory_limit = 512M
Seeder Performance
Seeders (like WorldSeeder) can add significant data and slow down performance. For production, avoid full seeding and run only necessary seeders:
php artisan db:seed --class=WorldSeeder
Development
1. Start the development server:
php artisan serve
Or with Laravel Herd:
herd
2. Start the queue worker
To process background jobs:
php artisan queue:work
3. Start the Laravel scheduler
php artisan schedule:work
[!NOTE] The scheduler must be running continuously to trigger time-based tasks (e.g., status updates).
If those tasks dispatch queued jobs (like import/export or notifications), then the queue worker must also be running to process them.
API (JSON, v1)
Gymie ships with a versioned JSON API under routes/api.php for integrations.
Authentication (Sanctum Bearer Tokens)
- Login:
POST /api/v1/auth/login - Current user:
GET /api/v1/me - Logout:
POST /api/v1/auth/logout
Example:
curl -sX POST "$APP_URL/api/v1/auth/login" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]","password":"password"}'
Use the returned token:
curl -s "$APP_URL/api/v1/me" \
-H "Accept: application/json" \
-H "Authorization: Bearer <token>"
Notes:
- The API is bearer-token only. Being logged into Filament in the browser does not authenticate API requests.
/api/v1/mealways includes roles and permissions. Other user endpoints include permissions only when requested:GET /api/v1/users?include=permissionsorGET /api/v1/users?include_permissions=1
Index Query Parameters (Rich Filtering)
All index endpoints support allowlisted query params:
- Search:
?q=... - Pagination:
?page=...&per_page=... - Sort (multi-sort):
?sort=-created_at,name - Soft deletes (where supported):
?trashed=with|only - Includes (allowlisted):
?include=service,subscription.member - Filters (allowlisted):
?filter[field]=value- Range syntax for date/datetime:
?filter[date]=2026-03-01..2026-03-31
- Range syntax for date/datetime:
Allowlists (searchable/sortable/includes/filters) are defined per resource in:
app/Services/Api/Schemas/*Schema.phpvia::queryRules()
Meet Your Artisans
LUBUS is a web design agency based in Mumbai.
License
Gymie is an open-sourced saas licensed under the MIT license