Building a Gym Management App with Laravel, Filament, Herd, and Blueprint
Hassan Shahzad Aheer
Posted on June 9, 2024
Hello friends,
I recently took on the challenge of building a gym management application. Using Laravel along with some fantastic tools like Filament, Herd, and Blueprint, I was able to create a robust app in no time. If you find documentation hard to follow or just want a more guided experience, this post is for you. I'll walk you through everything step-by-step. Let's dive in!
Setting Up Your Environment with Herd
First things first, let's get our development environment ready with Herd. Herd makes setting up Laravel projects a breeze, so you can get to coding faster.
- Download and Install Herd: Head over to Herd's official site and follow the instructions to install it.
-
Create a New Laravel Project: Open your terminal and run:
laravel new project-name
Replace project-name
with your desired project name.
Installing Filament
Filament is an awesome admin panel for Laravel applications. It gives you a beautiful, easy-to-use interface to manage your app's data.
-
Navigate to Your Project Directory:
cd project-name
-
Install Filament: Run the following command to install Filament:
composer require filament/filament:"^3.2" -W
-
Set Up Filament: After installation, set it up with:
php artisan filament:install --panels
-
Start the Development Server:
php artisan serve
Now, you can access the admin panel at http://localhost/admin
.
-
Create an Admin User:
php artisan make:filament-user
Follow the prompts to set up a username and password.
Accelerating Development with Blueprint
Blueprint lets you define your application's models, controllers, and more using simple YAML files. This can save you a ton of time.
-
Install Blueprint:
composer require -W --dev laravel-shift/blueprint
-
Create a New Blueprint Draft:
php artisan blueprint:new
Here's an example draft.yaml
file for our gym management application:
models:
Member:
id: id
name: string:255
email: string:255 unique
phone: string:20
address: string:255
membership_start_date: date
membership_end_date: nullable date
membership_type_id: foreignId:constrained:cascade
relationships:
belongsTo: membership_type
hasMany: payments, invoices
MembershipType:
id: id
name: string:255
description: text
price: decimal:8,2
duration_months: integer
relationships:
hasMany: members
Payment:
id: id
member_id: foreignId:constrained:cascade
amount: decimal:8,2
payment_date: date
payment_method: string:50
relationships:
belongsTo: member
Invoice:
id: id
member_id: foreignId:constrained:cascade
amount: decimal:8,2
due_date: date
paid: boolean
relationships:
belongsTo: member
-
Build Your Application:
php artisan blueprint:build
This command will generate the necessary models, migrations, and more based on your draft.yaml
.
-
Run the Migrations:
php artisan migrate
Creating Filament Resources
Filament makes it super easy to generate resource management interfaces. Let's create resources for our models.
-
Generate Resources:
php artisan make:filament-resource MemberResource --generate php artisan make:filament-resource PaymentResource --generate php artisan make:filament-resource InvoiceResource --generate
Wrapping Up
And there you have it! Using Herd, Filament, and Blueprint, I was able to quickly build a functional gym management application. These tools made the process smooth and enjoyable, turning what could have been a tedious task into a fun project.
If you're looking to speed up your Laravel development and build powerful applications with ease.
Follow me on Twitter, LinkedIn, and Instagram for more insights and updates!
Posted on June 9, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.