Skip to content

OLOW Hotel ERP - Project Overview

1. Introduction

OLOW Hotel ERP is a comprehensive, multi-tenant Property Management System (PMS) and Enterprise Resource Planning (ERP) solution designed for modern hospitality businesses in regions like Somalia. It integrates front-office operations with back-office accounting, HR, and inventory management into a single unified platform.

The system is built to handle the specific operational challenges of the region, including mobile money payments (SomXchange), expense-heavy operations, and flexible multi-currency support (USD/SOS).


2. Technical Stack

  • Backend Framework: Laravel 12.x (PHP 8.2+)
  • Frontend Stack: Livewire 3.x + Flux UI (TailwindCSS)
  • Database: MySQL 8.0 (Running via Laravel Herd locally)
  • Queue System: Redis (for SMS, Notifications, Bank Sync)
  • WebSockets: Laravel Reverb (real-time notifications)
  • Architecture: Domain-Driven Design (DDD) with Modular Monolith structure

3. Core Modules (21 Domains)

The application is divided into distinct domains (Modules) to ensure separation of concerns.

Operational Modules

  1. Front Desk: Reservations, Check-in/Check-out, Room Management, Folios, Revenue Management, Loyalty
  2. Housekeeping: Cleaning schedules, room inspections, checklists, night reset
  3. Restaurant: POS ordering, kitchen display, menu management, folio billing
  4. Laundry: Service tracking, guest/internal laundry, folio integration
  5. Gym: Memberships, Day Passes, check-in tracking
  6. Events (Hall): Banquet bookings, event pricing, capacity management
  7. Maintenance: Work orders, asset tracking, room-linked issues
  8. SMS: Automated guest communication (Pre-arrival, Welcome, OTPs), bulk marketing

Back-Office Modules

  1. Accounting: Double-entry GL, Chart of Accounts, P&L, Balance Sheet, AccountingMapService
  2. Finance: Accounting Setup UI, account mapping configuration
  3. Inventory: Stock management, FIFO costing, lot tracking, requisitions
  4. HR & Payroll: Staff profiles, attendance, monthly payroll, loan recovery, payslips
  5. Staff: Employee records, departments, positions, scheduling
  6. Expense: Petty cash, budget approval workflows, accounting integration
  7. Tax: Automated tax calculation engine with configurable rules
  8. Accounts Receivable (AR): Customer invoicing, receipts, aging reports
  9. Accounts Payable (AP): Vendor bills, payments, aging reports

Infrastructure Modules

  1. Property (Tenant): Multi-tenancy logic, subdomains, tenant isolation, onboarding wizard
  2. Party (Shared Kernel): Centralized contact entity (Customer/Vendor/Staff)
  3. Wallet: Guest prepaid credits, loyalty integration, SomXchange
  4. Import: CSV/XLSX data migration tools for onboarding

4. Key Design Decisions

Multi-Tenancy (SaaS)

The system uses a Single Database, Multi-Tenant SaaS approach.

  • Identification: Tenants are identified via subdomain (e.g., hotel-a.hotels.test locally, hotel-a.olow.com in production).
  • Isolation: The BelongsToProperty trait auto-scopes all queries by property_id and prevents record creation without a property context.
  • Context: IdentifyTenant middleware resolves the tenant from the hostname and binds current_property_id in the service container. Property::currentId() retrieves it.

Triple-Guard Authentication

  • web guard — Staff users (App\Models\User) accessing /admin/*
  • customer guard — Guests (App\Domain\Party\Models\Customer) using the guest portal
  • admin guard — Super Admins (App\Models\Admin) managing the /platform panel

Domain-Driven Design

Code is organized by Business Domain rather than technical layer.

  • Path: app/Domain/{Module}/
  • Structure: Models/, Services/, Enums/, Events/, Listeners/, Jobs/, DTOs/

Accounting-First

Every financial action generates a real-time Journal Entry via AccountingPoster. Account IDs are resolved dynamically via AccountingMapService + AccountingKey enum — no hardcoded GL codes.


5. Getting Started


6. Project Status

  • Current Phase: Production — multi-tenant SaaS platform with 21 modules
  • Version: v3.0 (Multi-tenant SaaS)
  • Documentation: Updated February 2026
  • Last Updated: February 11, 2026