Skip to main content

BUSINESS.md: Hotel8:ePMS — Business Requirements & Functionality

Audience: product owners, business analysts, and anyone evaluating what Hotel8:ePMS does for the business. For architecture read README.md; for wire-level detail read DESIGN.md.

1. Business Purpose​

  • Give hotel staff the property-management console: reservations, front desk, housekeeping, cashiering, rate management, blocks and events — the operational heart of the hotel.
  • Shorten guest-facing operations: check-in/out in a few clicks with live room status and folio visibility.
  • Keep daily financial control: folio charges/payments with full audit and End-of-Day close with exception tracking.
  • Serve management with occupancy/revenue dashboards and rate-schedule control without leaving the vertical.

2. Business Scope (What the Service Provides)​

CapabilityProvided by ePMS
Front-desk dashboard (occupancy, arrivals, departures, housekeeping, revenue)✅
Reservation search, detail, create, edit, cancel, split✅
Pre-check-in / check-in / check-out wizard✅
Room status grid + housekeeping updates✅
Folio view + charge/payment posting✅
Rate plans + schedules view✅
Blocks + events view✅
Guest profiles (CRM) lookup✅
EOD dashboard + exceptions✅
Property audit-log view✅
Availability + inventory views✅
RFW operations pages (service-defined admin UI hosted in-app)✅
Full rate-plan CRUD, block/event CRUD admin✅ via the service RFW admin pages (Dash + in-app RFW host on the RFW Ops tab)
Distribution channel management❌ delegated — Hotel8:Distrib (Dash)
POS terminal❌ delegated — Hotel8:ePOS
Guest-facing apps❌ delegated — eBooking / eGuest / eKiosk
Payment acceptance❌ delegated — PMS → Bill8 server-side

3. Business Capabilities​

Front desk​

CapabilityBusiness rule
Arrivals/departuresThe dashboard lists today's arrivals and departures with status, so the desk sees the day at a glance.
Check-inCheck-in requires a room assignment; pre-check-in data (registration card) already captured by eGuest reduces the wizard to allocate-and-confirm.
Check-outCheck-out settles against the folio — the console surfaces outstanding balances before the room is released.
Room statusRoom statuses (clean/dirty/inspected/OOS) are updated from the grid; housekeeping and front office stay in sync on one view.

Cashiering​

CapabilityBusiness rule
Folio managementCharges and payments post against the reservation's folio; the console never edits money rows directly — each posting is a server action.
AuditEvery staff mutation is journaled by PMS with the acting staff identity; the audit-log view provides read-back.

Revenue & inventory​

CapabilityBusiness rule
Rate plans & schedulesRevenue managers see rate plans and their schedules; changes ride the PMS rate engine (schedules fetched per plan).
Availability & inventoryAvailability and inventory views give the allocation picture for the property.

Group & catering​

CapabilityBusiness rule
Blocks & eventsGroup blocks and function-space events are visible with their state; detailed sales workflows ride the service's admin pages.

Property control​

CapabilityBusiness rule
EODThe night auditor runs End-of-Day from the console; exceptions surface in the dashboard before and after close.
RFW ops pagesThe operations destination renders the PMS service's own admin UI definitions in-app, so service-side admin pages and staff workflows share one surface.

4. Business Events (Outbound)​

ePMS emits no events; staff actions generate events in Hotel8:PMS:

Business momentEvent family (owner)
Reservation created/edited/cancelled/splitPMS reservation events
Check-in / check-out / pre-check-inPMS front-office events
Charge/payment postedPMS cashiering events
Room status changePMS housekeeping events
EOD executedPMS end-of-day events

Inbound: none (the console is read+write over HTTP only).

5. Business Rules & Invariants​

  1. The console operates strictly through the BFF with the staff session; no direct PMS/database access from the app.
  2. The property under management is the runtime context's environment — the console cannot act across environments.
  3. Money postings are server actions; the console never computes or edits folio figures directly.
  4. Check-in/out are state machines — a reservation cannot be checked in twice, or out with an unsettled folio (server-enforced).
  5. Every mutation is audit-attributed to the acting staff member.
  6. RFW-rendered pages use the same authorization surface as native screens — no separate admin backdoor.
  7. Widget hosts render what the server declares; the console adds no business logic of its own.

6. Target-User Roles & Use Cases​

PersonaWhat they do with ePMS
Front-desk agentRuns arrivals/check-ins/check-outs, assigns rooms, handles walk-ins via reservations.
Housekeeping supervisorUpdates room status grid, tracks task progress against the floor.
Cashier/night auditorPosts charges/payments, reconciles folios, runs EOD.
Revenue managerInspects rate plans and schedules, availability, inventory.
Sales & cateringReviews blocks and event bookings.
General managerMonitors dashboard KPIs and the audit log.

7. KPIs / Success Criteria​

  • Check-in/out time per guest (desk productivity).
  • Folio accuracy — postings match Bill8/folio settlements with zero manual correction.
  • EOD completion within the nightly window; exceptions resolved before close.
  • Dashboard trust — occupancy/revenue figures reconcile against PMS reports.
  • Security posture — zero cross-env actions; zero unaudited mutations; token-free client.

8. Dependencies & Reliance on Other Services​

RelianceFor
Hotel8:PMSAll staff domain operations + RFW admin UI
Sentin8:BFFTransport, staff session, tenant resolution
Sentin8:Auth (staff env)Staff identity + role scopes (via BFF)
Sentin8:AppRuntime context, listing, DCR bootstrap
Sentin8:ProxyTLS host-resolution headers at bootstrap
Bill8 (server-side)Folio settlement (not called by the app)

9. Acceptance Criteria​

  1. A staff member signs in and sees the property dashboard with live occupancy/arrivals/departures.
  2. A reservation can be searched, opened, edited, and cancelled; a split produces two reservations with correct folio inheritance.
  3. Check-in assigns a room and flips the reservation state; the room grid reflects occupancy immediately.
  4. Folio charges/payments post and appear with running balance.
  5. EOD runs and exceptions list before/after close; the audit log shows the acting staff member for each mutation.
  6. The RFW operations destination renders service-defined pages with working data/submit endpoints.
  7. No app call exists outside /proxy/hotel8-pms/*.

10. Open Business Questions​

  • Multi-property environments: property selection when an env hosts more than one property (property registry read).
  • Role boundaries: which screens/actions gate by which staff roles, and where manager approvals are needed server-side.
  • Offline tolerance for check-in/out (designed against; awaiting the platform offline pattern).

Design attribution: hotel8:epms and its underlying concepts were designed by Hamid Jahanzad Hamid@Jahanzad.com.