HotelHub HMSDocs

12 — User Panel (Hotel Staff Side) #

Panel utama untuk pengguna sehari-hari: front office, housekeeping, kasir, F&B server, manager, accountant, owner. Modular, role-based, mobile-first untuk role yang lapangan.

URL convention: /panel (atau root / setelah login untuk single-property standalone). SaaS: {tenant-slug}.hotelhub.id/panel atau custom domain.


1. Roles default #

Role Panel section Mobile-first? 2FA wajib?
Super Owner Full + admin tools No Yes
Manager Full read, edit op No Yes
Front Office FO, reservasi, folio Yes (tablet) No
Cashier Folio + payment posting Yes No
Housekeeping Room status, task Yes (mobile) No
Engineer / Maintenance Work order Yes No
F&B Server POS Yes (tablet) No
F&B Cashier POS settle Yes No
Accountant GL, AR, AP, report No Yes
Auditor (read-only) Reports No No
HR (P2) Payroll, attendance No Yes
Sales Company, contract, group block No No
Revenue Manager (P2) Rate, restriction, demand No No
Marketing pSEO, promo, email No No
IT Admin Settings, integrations, user mgmt No Yes

User punya 1 atau lebih role. Permission resolved via union.

Custom role bisa dibuat owner di "Settings → Roles".


2. Layout dasar #

[Top Bar]
  [Logo] [Property switcher (kalau owner punya >1 prop)] [Date toggle (sistem tanggal operasi)]
  [Search box] [Notification bell] [User profile menu]

[Sidebar (collapsible)]
  Modul list — disembunyikan kalau role gak punya akses

[Main Content]
  Breadcrumb
  Page header dengan action buttons
  Konten halaman

Color coding cepat (sticker per modul):


3. Sidebar / navigation full (super owner view) #

🏠 Dashboard
📅 Front Office
   ├── Reservation calendar
   ├── New reservation
   ├── Walk-in
   ├── Arrivals today
   ├── Departures today
   ├── In-house guests
   ├── Folio
   ├── Group block
   ├── Waitlist
   ├── Room move
   └── Night audit

🛏 Housekeeping
   ├── Room status board
   ├── Task assignment
   ├── Lost & found
   ├── Linen inventory
   └── Inspection log

🔧 Engineering
   ├── Work orders
   ├── Preventive maintenance
   ├── Asset register (P3)
   └── Out of order rooms

🍽 POS
   ├── Outlets
   ├── Open tables
   ├── Menu
   ├── Inventory
   ├── Daily sales
   └── Recipe & cost (P2)

💼 Sales & Marketing
   ├── Companies
   ├── Travel agents
   ├── Contracts
   ├── Promo codes
   ├── Email campaigns
   ├── pSEO pages
   └── Reviews

🌐 Channel Manager
   ├── Connected OTAs
   ├── Mapping
   ├── Rate plans
   ├── Restrictions calendar
   ├── ARI sync log
   └── Conflict resolution

💰 Accounting
   ├── Chart of Accounts
   ├── Journal entries
   ├── AR (city ledger, OTA)
   ├── AP (suppliers)
   ├── Reports (P&L, TB, etc)
   ├── Tax (PB1, PPN, PPh)
   └── Period close

📊 Reports
   ├── Daily revenue
   ├── Forecast (P2 — RMS)
   ├── Channel production
   ├── Source of business
   ├── Guest demographics
   ├── Cashier shift
   └── Custom report builder (P3)

🤝 Guest Experience
   ├── Reviews & feedback
   ├── Loyalty program (P2)
   ├── Communications log
   └── Service request

👥 HR (P2)
   ├── Employees
   ├── Attendance
   ├── Schedule
   ├── Payroll
   └── Service charge distribution

⚙️ Settings
   ├── Property profile
   ├── Room types & rates
   ├── Tax config (PB1, region, PPN)
   ├── Users & roles
   ├── Integrations (BYOK config)
   ├── Email templates
   ├── Theme & branding (booking engine)
   ├── Document templates (folio, invoice)
   ├── Currency & locale
   └── Audit log

4. Dashboard (default landing) #

Widget per role:

Owner / Manager #

Front Office #

Housekeeping #

Cashier #

Accountant #


5. Mobile-first sub-panels #

Housekeeping mobile (PWA) #

POS tablet #

Engineering mobile #


Global search bar (top bar):

Powered by Meilisearch indexed: guests, reservations, rooms, invoices, users.


7. Notification system #

In-app bell:

Channel: in-app + email + WhatsApp (BYOK) + SMS (BYOK).

User config notification preference per type.


8. Permission matrix (sample) #

permissions
├── id, key (e.g. 'fo.reservation.create')
├── group (fo|hk|pos|acc|sett)
├── label
└── description

role_permission (M:M)

Sample keys:

Owner UI: matrix view role × permission with toggle.


9. Property switcher (multi-property) #

Untuk owner yang punya beberapa hotel:

Implementasi: app('current_property')->id injected via middleware berdasarkan session-selected property.


10. Localization & accessibility #


11. Performance target #


12. Open questions #

  1. Filament vs full custom Livewire untuk staff panel? Filament fast, tapi reservation calendar drag-drop perlu custom heavy.
  2. Mobile native app vs PWA untuk housekeeping? PWA cukup untuk MVP, native (Flutter / RN) di Phase 2 kalau request banyak.
  3. Single-page vs multi-page? Cenderung Livewire-driven multi-page dengan partial reload (Hotwire-style).
  4. Voice command untuk HK / front office? P3 nice-to-have.