Skip to main content
  • Booking platform
  • Multi-app back office
  • Online payments

OM Travel

Sector
Travel & events
Delivered as
  • Website
  • Back office
Languages
FR / EN

“Explorez votre lieu de séjour”

(The project)

A booking platform for event travel: customers buy hotels, flights, airport transfers, fast tracks, restaurants and city tours around a conference in one checkout, while three businesses run inventory, payments, invoices and vouchers from a single back office.

(Context)

One platform where most agencies run five spreadsheets.

Event organisers and travel agencies sell hotel packages, flights, transfers and tours around seminars and conferences. Sold through separate tools, bookings, payments, invoices and vouchers drift apart and staff re-key the same data.

OM Travel puts the whole chain on one Laravel back office shared by three businesses, SeminairExpo, OM Travel Events and VIP Transferts. Customers browse per-event catalogues and check out once; admins manage inventory, bookings, wallets, cash, invoices and vouchers.

(Key figures)

businesses on one back office
3
payment methods
6
display currencies
MAD / EUR / USD
client and back office
FR / EN

(The ecosystem)

What we delivered

The decisions that shaped it

  1. Three apps, one back office

    Each business has its own area in the back office, and users only see the apps they are granted. A shared core keeps bookings, invoices and customers consistent.

    Isolated access

  2. Two levels of permission

    Global permissions per action are combined with per-item delegation, so one event, flight or transfer can be entrusted to one admin.

    Least privilege

  3. One rule for every payment

    A single payment service splits each booking between wallet and bank for every method, from cash to card to payment link, for new bookings and pay-later requests alike.

    Consistent money

  4. Documents follow payment

    A paid booking triggers its PDF voucher by email and its invoice automatically, after a signed and idempotent Stripe webhook confirms the payment.

    No manual follow-up

(How it works)

A card checkout

  1. Build the cart

    The customer adds hotels, transfers or tours for an event and opens checkout, with prices shown in their currency.

  2. Create the booking

    The booking is validated, its payment split computed and the admins notified.

  3. Pay by card

    A Stripe payment is created for the customer’s own booking and paid in the page.

  4. Confirm and issue

    The webhook marks the booking paid, then the voucher PDF and the invoice are issued and emailed.

Captures of the delivered build, grouped by product. Select one to see it at full size.

Technology

Front end
  • React 18
  • Vite 5
  • React Router 6
  • Tailwind CSS 4
  • SWR
Back end
  • Laravel 12
  • Sanctum 4
  • MySQL
Back office
  • Blade
  • Livewire 3
  • Filament
  • Alpine.js
Payments
  • Stripe
Badges & documents
  • DomPDF
  • mPDF
  • Laravel Excel

(Next project)

Capstone Academy

Education

Your project could be the next system we build.