This document describes the overall system architecture of Hotelaro, a comprehensive multi-tenant hotel management platform. It covers the core architectural patterns, multi-tenant design, module system, authentication mechanisms, and request flow patterns used throughout the application.
For specific implementation details of individual subsystems, see Multi-Tenant System, Authentication & Security, and Database Schema.
Hotelaro is built on CodeIgniter 4 framework with a modular, multi-tenant architecture that supports multiple hotel properties on a single installation. The system uses subdomain-based tenant isolation and implements role-based access control across different administrative levels.
The system implements a sophisticated module loading mechanism that dynamically includes routes and functionality based on user permissions and available modules.
The route loading logic uses session-based permission checks:
The system implements tenant isolation using the admin_uid field across all hotel booking related tables, following the hotel_booking_* naming convention.
The authentication system supports three administrative levels with different access permissions:
Session Data Structure:
The system includes a comprehensive helper system providing shared functionality across all modules:
The system uses a centralized configuration approach with timezone-aware settings and multi-currency support:
The configuration system supports:
This architecture enables Hotelaro to scale across multiple hotel properties while maintaining data isolation, security, and consistent functionality through its modular design approach.