Back to projects

Featured Project

Hotel Reservation Platform

Hotel reservation platform integrating a modern guest booking experience with an admin dashboard for real-time hotel management.

Hotel Reservation Platform

What It Does

  • • Public guest website for searching availability and creating reservations.
  • • Admin portal for reception and operations teams.
  • • Manages arrivals, in-house stays, departures, and forward bookings.
  • • Single backend securely serving multiple clients.

System Design

Single Spring Boot backend exposes /api/public/** for guest bookings and/api/admin/** for secured admin operations. Requests pass through controllers → services → domain logic → persistence.

  • • JWT + role-based access (Admin / Receptionist).
  • • Stateless services designed for horizontal scaling.
  • • Admin portal calls use JWT while the public site hits /api/public/bookings; services coordinate Postgres, cache, and notifications.

Booking Flow

  1. Validate stay dates against availability.
  2. Generate booking reference + pricing summary.
  3. Persist booking in PostgreSQL (transactional).
  4. Emit BOOKING_CREATED event.
  5. Notify staff/guest via email or SMS.
  6. Return structured response to client.

Domain Decisions

  • • LocalDate for stays to avoid timezone or DST bugs.
  • • Explicit booking lifecycle states.
  • • Database constraints + indices to guard correctness and performance.

Performance & Reliability

  • • Operational views optimized for Arrivals / In-House / Departures.
  • • Cache-ready architecture (Caffeine/Redis) for hot lookups.
  • • Flyway migrations for safe schema evolution.
  • • Strong transactional boundaries on booking creation.

Security

  • • JWT authentication on admin endpoints.
  • • Role-based authorization separating Admin vs Reception.
  • • Public endpoints isolated from admin APIs.
  • • Validation enforced at API and domain layers.