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.examplefile to.envand 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 buildfor 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...