E-Ticketing Platform
A full-stack travel e-ticket platform built from scratch, multi-step declaration form, Stripe payment processing, auto-generated PDF delivery by email, and a searchable admin panel. Built with Laravel, Livewire, and FilamentPHP.
The brief
This project started from a job listing on Upwork that caught my attention, a client needed a travel e-ticket platform similar to the Dominican Republic e-ticket system. Users fill in a multi-step form with their travel details, pay a fee, and receive a completed PDF e-ticket by email. I found the problem interesting and built the full platform myself as a portfolio piece.
The core challenge was stitching together several independent concerns, a user-friendly multi-step form, server-side payment verification, deterministic PDF generation from user input, and reliable email delivery, into a single seamless flow where failure at any step is handled gracefully and the user always knows where they stand.
What was built
- Public-facing page built to GOV.UK design standards
- Explains the service clearly and lists what the traveller needs before starting
- SEO-optimised structure with clean meta, heading hierarchy, and fast load times
- Single call-to-action linking through to registration
- Step 1: General Information: address, country of residence, travel direction (arrival / departure)
- Step 2: Personal & Travel Information: full name, date of birth, passport number, airline, and flight details
- Step 3: Customs Declaration: goods being carried, animals, and currency amounts
- Step 4: Payment: Stripe card payment inline on the form, no redirect
- Payment intent verified server-side before any record is created, the submission cannot exist without a confirmed payment
- Unique reference number generated on confirmation (format: TKT-XXXXXXXX)
- PDF e-ticket generated from the submitted data and attached to the confirmation email
- Confirmation email sent to the traveller immediately after successful submission
- Registered users can log back in and view all previous submissions
- Each submission shows reference number, travel details, and current payment status
- PDF download available for any completed submission
- Full submissions table: reference number, passenger name, travel direction, airline, flight number, submission date, and payment status
- Search and filter across all submitted records
- Direct link to the Stripe receipt for each submission
- Admins view submissions only, creation and editing are intentionally restricted to user-submitted forms
Screenshots
Screenshots of the live application.
Technical notes
Have a similar project?
Get in touch with a brief description of what you need and I'll come back to you within 24 hours.