Back to projects

projects / Hotels-Services

Lehotel — Hotel Booking System

Complete hotel booking flow with admin dashboard and online payments.

  • React.js
  • Node.js
  • Paymob API
3-state
Booking status tracking
Integrated
Online payments via Paymob
Live
Room availability updates

The challenge

A hotel needed to move off manual booking logs to a system that handled reservations, room availability, and payment status in one place.

The solution

Developed a full hotel booking system with a professional admin dashboard using React.js and Node.js, including room management, reservation tracking, and online payment integration via Paymob with live booking status (Pending / Paid / Confirmed).

  • Room Management
  • Reservations
  • Payments
  • Admin Dashboard

System design

  1. FrontendReact.js booking flow + admin dashboard
  2. API GatewayNode.js REST API handling bookings and payment callbacks
  3. ServicesPayment service integrating Paymob's webhook events
  4. DatabaseStores rooms, reservations, and payment state

Engineering notes

API design

How the system talks

  • Webhook endpoint updates booking status automatically on Paymob payment events
  • Room availability checked and locked at booking time to prevent double-booking

Performance

What keeps it fast

  • Admin dashboard built for quick status scanning across all active reservations

Challenges

What was hard to get right

  • Handling payment webhook edge cases (delayed, failed, or duplicate callbacks)
  • Preventing race conditions when two guests book the same room simultaneously

Lessons learned

What I'd carry into the next project

  • Payment status should always be driven by the provider's webhook, never assumed client-side