Home
Softono

Laravel Gymie

Open source PHP
465
Stars
256
Forks
14
Issues
42
Watchers
3 months
Last Commit

 About Laravel Gymie

πŸ‘¨β€πŸ’» Gym & Club Management System https://gymie.in

Platforms

Web Self-hosted

Languages

PHP

Links

Need Help Installing Laravel Gymie?

We provide expert installation service for this software. Our team will install, configure, and secure Laravel Gymie on your server. plans start at just $30.

Laravel Gymie

View on GitHub

Gymie

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.example to .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/me always includes roles and permissions. Other user endpoints include permissions only when requested:
    • GET /api/v1/users?include=permissions or GET /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

Allowlists (searchable/sortable/includes/filters) are defined per resource in:

  • app/Services/Api/Schemas/*Schema.php via ::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