Building a Gym Management App with Laravel, Filament, Herd, and Blueprint

RMAG news

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!

Please follow and like us:
Pin Share