A complex form to check-in to the airline flight. Personal information, seat choice, extra services and baggage - all filled in with dynamic Alpine/Livewire elements and complicated pricing logic.
Airline flight check-in system built with Laravel 12, Filament 4, and Alpine.js (with a bit of Livewire) for dynamic form elements.
The system consists of two main components:
- Multi-step web-based check-in process for passengers
- And a Filament admin panel for managing flights, pricing, and system operations.
How to install
- Clone the repository with
git clone
- Copy the
.env.example
file to.env
and edit database credentials there - Run
composer install
- Run
php artisan key:generate
- Run
php artisan migrate --seed
(it has some seeded data for your testing) - Run
npm install && npm run build
for the front-end assets - Launch the main URL
/
and start the check-in process - Filament admin panel URL is
/admin
, login with[email protected]
andpassword
.
Web Check-in Flow
The system processes passenger check-ins through a multi-step web interface (/checkin/step/1
through /checkin/step/6
) handled by the app/Http/Controllers/CheckinController.php
Controller:
public function processStep1(BookingLookupRequest $request): RedirectResponse{ try { $booking = $this->checkinService->findAndValidateBooking($request->validated()); $checkin = $this->checkinService->createCheckinSession($booking); // Implementation of the check-in flow... } catch (ModelNotFoundException $e) { return back()->withErrors(['booking_reference' => $e->getMessage()]); }}
Step 1: Booking Lookup
Validates passenger identity and retrieves...