PROJECT

Booking system for hotels that brings reservations, operations and billing together

Custom software development, Hotel PMS, Reservation management, Room availability, OTA synchronization, Billing and invoicing, Reporting

  • Industry: Hospitality
  • Romania Location: Romania
  • Delivery time: 16 weeks
  • Technologies: Python, PHP
4+ months

This client is a hotel group from Romania. Its staff manage reservations, room availability and guest operations across hotel properties. The booking system brings these activities into one place: staff manage reservations, room inventory and guest check-ins. It also supports OTA updates, invoices and reports for booking managers, front-desk staff and hotel managers.

Summary

Problem

The hotel group manages reservations, room availability, guest operations, billing and reporting across its hospitality business.

Solution

The solution became a custom booking system that connects hotel operations, OTA synchronization, invoicing and reporting in one place.

Result

The system is made to reduce manual work and the time spent moving booking information between hotel tasks and tools.

Client story

The client is a hotel group from Romania. It operates hospitality properties where staff coordinate reservations, room availability and guest arrivals.

Housekeeping, billing and reporting are part of the same daily operation.

Reservation teams need current room inventory and booking details, while front-desk and housekeeping staff follow the status of guests and rooms. Managers and accountants also need financial information and reports.

The request was simple: manage reservations and daily hotel operations in one system. Direct bookings, OTA synchronization, billing, payments and reporting also had to fit the same solution.

The solution was shaped as a modular hotel PMS with separate screens for availability, reservations, OTA synchronization, housekeeping and revenue reporting. Access rules, integrations and later additions were treated as part of the structure rather than separate tools.

The client asked for

  1. Manage rooms, availability and the full booking lifecycle centrally
  2. Manage guest profiles, history, check-in, check-out and communications
  3. Connect direct bookings with OTAs and channel managers
  4. Handle billing, invoices, payments, accounting and financial reports

Why ready-made software did not fit

Ready-made hotel management products cover front-desk work, reservations and housekeeping. They also include financials, reporting and multi-property management, but their access model and feature combination may not fit this hotel group. A custom booking system was needed to bring booking, CRM and operations into one workflow. It also had to support integrations and access rules, including compatibility with legacy systems where required.

Project overview

The solution was designed around shared booking information for availability, front-desk work and reporting. Room inventory and booking status stay connected as staff follow a reservation through its lifecycle.

To handle room selection, the availability screen combines date ranges, room status and room types. Guest preferences and reservation details complete the room selection view, while the booking calendar and inventory modules keep the room information connected.

The reservation manager was shaped for front-desk and booking teams. It brings guest search, reservation status, check-in, check-out and booking history into one screen.

OTA synchronization was provided as a separate monitor with connected channels, change queues, logs and retry actions. This keeps new, modified and cancelled reservations visible to the reservation team.

The solution also includes a housekeeping board and a revenue dashboard. Invoice and report actions, exports and accounting connections give managers and accountants a view of operational and financial information.

Key features delivered

  • Central room availability calendar
  • Room and booking selection
  • Reservation lifecycle management
  • Guest profiles and booking history
  • Check-in and check-out tracking
  • OTA reservation synchronization
  • Housekeeping room-status board
  • Invoice and report generation
  • Revenue and occupancy dashboard

Can be added

+ Restaurant or POS orders + Room service management + Laundry management + Discount management + Extra-bed services + Marketing-tool integrations + Grafana dashboards

Who else can use this solution

These businesses have a similar reservation and operations task, so the same solution can be adapted to their rules and channels.

A resort

Task It coordinates reservations, room inventory, guest operations and external booking channels.
How the solution helps The solution brings availability, bookings, housekeeping, OTA updates and reports into one hotel management system.

A lodge

Task It manages guest bookings, arrivals, departures and room status with a small operations team.
How the solution helps The solution connects reservation management with room availability, housekeeping and invoicing.

A property-management business

Task It coordinates customers, vendors, bookings, payments and operations across accommodation properties.
How the solution helps The solution provides shared booking records, property access, integrations and reporting.

Technology stack

Python

Backend and data services

Python supports the booking, integration and reporting services.

PHP

Web services and integrations

PHP supports selected accounting, payment and travel-service connections.

JavaScript / TypeScript (Node.js)

Interfaces and file services

JavaScript and TypeScript support booking interfaces, calendar functions and file exchange.

fastapi

API service layer

fastapi (a Python framework for web APIs) provides the core API services.

django-trips

Bookings and schedules

django-trips (a Django app for trips and bookings) supports booking models, schedules and business rules.

rrule

Recurring calendar dates

rrule (a library for recurring calendar rules) handles recurring reservation calendar dates.

icalendar

Calendar file exchange

icalendar (a library for iCalendar files) reads and creates calendar data.

jspdf and pypdf

PDF invoices and reports

jspdf and pypdf create and work with PDF documents for invoices and reports.

CSV and JSON

Exports and data exchange

CSV and JSON carry booking, inventory, accounting and reporting data between systems.

Integrations

OTAs and channel managers

Reservation, availability and inventory updates move between the booking system and connected channels.

Accounting systems

Invoice and financial data moves through accounting APIs.

Payment gateways

Payment information connects to supported payment gateway services.

Legacy hotel systems

The system can exchange information with legacy systems such as HotSoft and Vega when required.

Calendar services

Reservation dates can move through calendar formats and calendar integrations.

The result

Room availability is clear before a booking is created

The availability screen gives the booking team a shared view of room inventory, dates and room status. Guest preferences and room selection sit beside the booking details, so the selected room is tied to the reservation.

This creates a direct path from availability checking to booking creation without separating room information from the guest request.

How it works

  1. The room availability calendar shows room availability for the selected date range.
  2. Room-type and room-status filters narrow the available inventory.
  3. The room selection panel combines guest preferences with reservation details and the create-booking action.
  • Date range selection
  • Room-type and room-status filters
  • Guest preference fields
Availability and room selection

Availability and room selection

Functions on this screen
Room Availability Check Room Booking Selection Manage booking calendar Hotel Inventory Management

Reservations stay connected to the guest journey

The reservation manager keeps guest information, booking status and booking history in one view. Front-desk staff can follow the reservation from its active record to check-in and check-out.

This gives the hotel group a consistent place for the booking lifecycle instead of separating guest records from reservation work.

How it works

  1. The reservation list shows reservation records with booking-status filters.
  2. The reservation details panel shows guest information and booking status.
  3. Check-in, check-out and booking history connect the reservation to its guest records.
  • Reservation status filtering
  • Guest search
  • Booking history
Reservation manager

Reservation manager

Functions on this screen
Booking Management System Manage Room Reservations Track guest check-ins and check-outs Manage booking history

OTA changes are visible to the reservation team

The OTA synchronization monitor makes channel updates easier to review. New, modified and cancelled reservations appear in a queue alongside synchronization and error logs.

A retry action gives the reservation team a clear place to address synchronization errors rather than searching across separate channel tools.

How it works

  1. The connected-channel list shows synchronization status for each OTA connection.
  2. The reservation queue separates new, modified and cancelled OTA reservations.
  3. Synchronization and error logs record channel activity, while the retry action handles failed updates.
  • Connected-channel status
  • Reservation change queue
  • Synchronization and error logs
Note: The monitor keeps channel changes and synchronization errors in the same operational view.
OTA synchronization monitor

OTA synchronization monitor

Functions on this screen
Synchronize reservations with OTAs

Room status supports housekeeping planning

The housekeeping room board connects cleaning schedules with room assignments and reservation status. Housekeeping staff and hotel managers see room status and assigned staff in one place.

This helps the hotel group coordinate room preparation with the current reservation picture.

How it works

  1. The room-status board shows room status alongside reservation status.
  2. The cleaning schedule lists room assignments and assigned staff.
  3. The room detail panel records the current room information and status update.
  • Room-status board
  • Cleaning schedule
  • Assigned staff
Housekeeping room board

Housekeeping room board

Functions on this screen
Hotel Housekeeping Management Hotel Inventory Management Manage Room Reservations

Managers get a practical view of revenue and occupancy

The dashboard brings revenue, occupancy trends and the demand calendar together with invoice and report actions. Managers and accountants can review financial information and prepare exports from the same screen.

Invoice and report generation supports the billing requirement in DOC and PDF formats, while custom exports keep reporting data available for other systems.

How it works

  1. The revenue summary and occupancy trend chart show the dashboard's revenue and occupancy data.
  2. The demand calendar presents demand information alongside the operational view.
  3. Invoice, report and export controls produce financial documents and custom exports.
  • Revenue summary
  • Occupancy trend chart
  • Invoice and report actions
Revenue and occupancy dashboard

Revenue and occupancy dashboard

Functions on this screen
Generate invoices and reports

What the solution gives

With this solution, the hotel group can:

  • Manage room availability and reservations in one place
  • Follow guest bookings through check-in and check-out
  • Keep OTA reservation changes visible to the booking team
  • Coordinate housekeeping with room and reservation status
  • Generate invoices, reports and exports for financial work
  • Connect booking data with accounting, payment and legacy systems

Could ready-made systems do the job?

Before the design, the task was compared with ready-made products by their own descriptions.

What the client needs Hotel PMS SkyTouch Technology, StayNTouch Cloud PMS, Oracle Hospitality OPERA Property Management System, WebRezPro, Mews Integrated hotel software 360HMS, uHotelBooking Channel managers Visitor Custom solution
Manage rooms and booking lifecycle partly
Manage guests and check-in —
Connect OTAs and direct bookings
Handle billing and reports —
Fits the client's own rules: stages, roles, reports partly partly —
All steps in one place —
No manual steps between programs partly partly

By the public descriptions of the products and their category.

The main parts of the task exist in ready-made hotel PMS and integrated hotel products, and a ready-made product is enough when only one part is needed.

The hotel group's requested combination of booking, guest management, OTA synchronization, billing, reporting and its own access rules was not fully covered by one standard product.

A channel manager handles OTA updates, but it does not replace the reservation, housekeeping, guest and financial workflow in one place.

In the end

In the end, the solution was made to manage the path from room availability and guest booking to housekeeping, billing and reporting in one system.

FAQ

Thinking about building a similar system? Read the answers below to see how a custom hotel management system can be structured around your properties, rules and integrations.