Full-Stack · Product · Mobile
Roomy Hotels
Direct hotel booking across web, iOS and Android
Overview
Roomy is a hotel chain in Pakistan, with properties in Islamabad and up north. The booking system lets guests skip third-party sites and book direct: choose a location, dates and rooms, check availability, and confirm the stay online.
It spans three clients on one backend: a Next.js website for search and booking, React Native apps for iOS and Android, and a PHP + MySQL API that owns hotels, rooms, availability and reservations — and syncs them with travel agencies through a channel manager.
What it does
- Availability search by location, check-in/check-out dates, rooms and guests
- Direct online booking on the website and the iOS and Android apps
- Guest accounts with sign-in
- Booking changes: modifications, cancellations, and moving guests between rooms
- Two-way channel-manager sync (Reseliva) for availability and reservations
- Online pre-check-in: arrival time, guest details and ID documents before arrival
- Automatic check-in and check-out processing
- Hotels, events and getaways sections on the Next.js website
The hard parts
One backend, three clients
The website and both mobile apps read and write the same bookings. A single PHP + MySQL API owns availability and reservations, so a room booked in the app is gone from the website immediately — there's no per-channel copy of the data to drift out of sync.
Staying in sync with travel sites
Roomy's rooms are also sold on online travel agencies through the Reseliva channel manager. Sync services push availability out and pull reservations in, so a room booked on a travel site disappears from the direct channel and every booking — direct or OTA — lands in the same reservation records.
Availability that stays correct
Date-range availability per room type is the core query of the product, and it has to hold up while bookings are modified, cancelled, or moved between rooms. Booking changes run inside transactions with row locks, so two concurrent requests can't both take the last room.
Check-in before the guest arrives
Online pre-check-in lets guests submit their arrival time, details for everyone in the booking, and ID documents before they reach the hotel. Documents are stored privately and served through expiring signed URLs, so the front desk confirms a check-in instead of doing paperwork.
Tech stack
Outcome
Live at roomy.pk, taking direct bookings for Roomy's hotels on the web, iOS and Android.