# dcane4ever/laravel-pearl-manila-hotel architecture

> Architecture diagram of the GitHub repository dcane4ever/laravel-pearl-manila-hotel, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/dcane4ever/laravel-pearl-manila-hotel
- Repository: https://github.com/dcane4ever/laravel-pearl-manila-hotel

## Overview

This is a hotel room booking and operations web application built with Laravel. Guests register and verify email, browse rooms and facilities, submit a dated booking with identity documents, and await staff verification and confirmation. Admins manage daily room inventory, review documents, update booking status, and notify guests; users can also manage profiles. The map reflects documented routes and sampled controller/model behavior. Several display and check-in subsystems are represented from the file tree and README-adjacent evidence only, so uncertain links are omitted.

Main entry points: [`app/Http/Controllers/BookingController.php`](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Http/Controllers/BookingController.php) (Booking handling), [`app/Http/Controllers/AdminController.php`](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Http/Controllers/AdminController.php) (Admin operations), [`routes/web.php`](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/routes/web.php) (Web routes), [`app/Models/Room.php`](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Models/Room.php) (Room catalogue data)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_guest["Guest booking"]
  node_web["Web routes<br/>[web.php]"]
  node_booking_ui["Room booking<br/>[booking.blade.php]"]
  node_rooms_ui["Room catalogue<br/>[index.blade.php]"]
  node_facilities["Facilities<br/>[index.blade.php]"]
  node_checkin["Check-in<br/>[index.blade.php]"]
  node_booking_controller["Booking handling"]
  node_layouts["Shared page layouts<br/>[app.blade.php]"]
end

subgraph group_identity["Identity and accounts"]
  node_auth_routes["Auth routes<br/>[auth.php]"]
  node_registration["Registration"]
  node_login["Login"]
  node_login_request["Login validation<br/>[LoginRequest.php]"]
  node_profile["Profile management"]
end

subgraph group_operations["Hotel operations"]
  node_admin["Admin operations"]
  node_admin_ui["Operations dashboard"]
  node_mail["Booking status mail"]
  node_email_view["Booking email template"]
end

subgraph group_domain["Booking domain"]
  node_user[("User account<br/>[User.php]")]
  node_booking[("Booking record<br/>[Booking.php]")]
  node_audit[("Booking audit<br/>[BookingAudit.php]")]
  node_room[("Room catalogue data<br/>[Room.php]")]
  node_floor[("Floor data<br/>[Floor.php]")]
  node_daily_inventory[("Daily inventory")]
  node_availability[("Room availability")]
  node_room_inventory[("Room inventory<br/>[RoomInventory.php]")]
end

node_visitor(("Guest or staff"))
node_app_entry["HTTP entry point<br/>[index.php]"]

node_visitor -->|"sends requests"| node_app_entry
node_app_entry -->|"loads routes"| node_web
node_web -->|"routes booking"| node_booking_controller
node_web -->|"routes admin"| node_admin
node_web -->|"routes profile"| node_profile
node_web -->|"loads auth routes"| node_auth_routes
node_auth_routes -->|"routes registration"| node_registration
node_auth_routes -->|"routes login"| node_login
node_login -->|"authenticates via"| node_login_request
node_registration -->|"creates account"| node_user
node_profile -.->|"updates account"| node_user
node_booking_ui -.->|"submits booking"| node_booking_controller
node_booking_controller -->|"checks room"| node_room
node_booking_controller -->|"checks capacity"| node_daily_inventory
node_booking_controller -->|"creates booking"| node_booking
node_booking_controller -->|"records submission"| node_audit
node_booking_controller -->|"sends status mail"| node_mail
node_admin -->|"updates status"| node_booking
node_admin -->|"records actions"| node_audit
node_admin -->|"updates inventory"| node_daily_inventory
node_admin -->|"sends status mail"| node_mail
node_mail -.->|"renders template"| node_email_view
node_admin_ui -.->|"uses operations"| node_admin
node_rooms_ui -.->|"displays rooms"| node_room
node_facilities -.->|"presents facilities"| node_visitor
node_checkin -.->|"supports check-in"| node_visitor
node_room -->|"has availability"| node_availability
node_room -->|"has bookings"| node_booking
node_room -->|"has inventory"| node_room_inventory
node_floor -->|"has inventory"| node_room_inventory
node_layouts -.->|"renders pages"| node_visitor

click node_web "https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/routes/web.php"
click node_booking_ui "https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/resources/views/rooms/booking.blade.php"
click node_rooms_ui "https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/resources/views/rooms/index.blade.php"
click node_facilities "https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/resources/views/facilities/index.blade.php"
click node_checkin "https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/resources/views/checkin/index.blade.php"
click node_booking_controller "https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Http/Controllers/BookingController.php"
click node_auth_routes "https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/routes/auth.php"
click node_registration "https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Http/Controllers/Auth/RegisteredUserController.php"
click node_login "https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Http/Controllers/Auth/AuthenticatedSessionController.php"
click node_login_request "https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Http/Requests/Auth/LoginRequest.php"
click node_profile "https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Http/Controllers/ProfileController.php"
click node_admin "https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Http/Controllers/AdminController.php"
click node_admin_ui "https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/resources/views/admin/operations.blade.php"
click node_user "https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Models/User.php"
click node_booking "https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Models/Booking.php"
click node_audit "https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Models/BookingAudit.php"
click node_room "https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Models/Room.php"
click node_floor "https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Models/Floor.php"
click node_daily_inventory "https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Models/DailyRoomInventory.php"
click node_availability "https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Models/RoomAvailability.php"
click node_room_inventory "https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Models/RoomInventory.php"
click node_mail "https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Mail/BookingStatusMail.php"
click node_email_view "https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/resources/views/emails/booking-status.blade.php"
click node_layouts "https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/resources/views/layouts/app.blade.php"
click node_app_entry "https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/public/index.php"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_web,node_booking_ui,node_rooms_ui,node_facilities,node_checkin,node_booking_controller,node_layouts toneBlue
class node_auth_routes,node_registration,node_login,node_login_request,node_profile toneAmber
class node_admin,node_admin_ui,node_mail,node_email_view toneMint
class node_user,node_booking,node_audit,node_room,node_floor,node_daily_inventory,node_availability,node_room_inventory toneRose
class node_visitor toneIndigo
class node_app_entry toneTeal
```

## Components

### Guest booking

- [Web routes](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/routes/web.php): `routes/web.php`
- [Room booking](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/resources/views/rooms/booking.blade.php): `resources/views/rooms/booking.blade.php`
- [Room catalogue](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/resources/views/rooms/index.blade.php): `resources/views/rooms/index.blade.php`
- [Facilities](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/resources/views/facilities/index.blade.php): `resources/views/facilities/index.blade.php`
- [Check-in](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/resources/views/checkin/index.blade.php): `resources/views/checkin/index.blade.php`
- [Booking handling](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Http/Controllers/BookingController.php): `app/Http/Controllers/BookingController.php`
- [Shared page layouts](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/resources/views/layouts/app.blade.php): `resources/views/layouts/app.blade.php`

### Identity and accounts

- [Auth routes](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/routes/auth.php): `routes/auth.php`
- [Registration](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Http/Controllers/Auth/RegisteredUserController.php): `app/Http/Controllers/Auth/RegisteredUserController.php`
- [Login](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Http/Controllers/Auth/AuthenticatedSessionController.php): `app/Http/Controllers/Auth/AuthenticatedSessionController.php`
- [Login validation](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Http/Requests/Auth/LoginRequest.php): `app/Http/Requests/Auth/LoginRequest.php`
- [Profile management](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Http/Controllers/ProfileController.php): `app/Http/Controllers/ProfileController.php`

### Hotel operations

- [Admin operations](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Http/Controllers/AdminController.php): `app/Http/Controllers/AdminController.php`
- [Operations dashboard](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/resources/views/admin/operations.blade.php): `resources/views/admin/operations.blade.php`
- [Booking status mail](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Mail/BookingStatusMail.php): `app/Mail/BookingStatusMail.php`
- [Booking email template](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/resources/views/emails/booking-status.blade.php): `resources/views/emails/booking-status.blade.php`

### Booking domain

- [User account](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Models/User.php): `app/Models/User.php`
- [Booking record](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Models/Booking.php): `app/Models/Booking.php`
- [Booking audit](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Models/BookingAudit.php): `app/Models/BookingAudit.php`
- [Room catalogue data](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Models/Room.php): `app/Models/Room.php`
- [Floor data](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Models/Floor.php): `app/Models/Floor.php`
- [Daily inventory](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Models/DailyRoomInventory.php): `app/Models/DailyRoomInventory.php`
- [Room availability](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Models/RoomAvailability.php): `app/Models/RoomAvailability.php`
- [Room inventory](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/app/Models/RoomInventory.php): `app/Models/RoomInventory.php`

### Other components

- **Guest or staff**
- [HTTP entry point](https://github.com/dcane4ever/laravel-pearl-manila-hotel/blob/main/public/index.php): `public/index.php`

## Connections

- Guest or staff → HTTP entry point: sends requests (evidence: `public/index.php`)
- HTTP entry point → Web routes: loads routes
- Web routes → Booking handling: routes booking (evidence: `routes/web.php`)
- Web routes → Admin operations: routes admin (evidence: `routes/web.php`)
- Web routes → Profile management: routes profile (evidence: `routes/web.php`)
- Web routes → Auth routes: loads auth routes (evidence: `routes/web.php`)
- Auth routes → Registration: routes registration (evidence: `routes/auth.php`)
- Auth routes → Login: routes login (evidence: `routes/auth.php`)
- Login → Login validation: authenticates via (evidence: `app/Http/Controllers/Auth/AuthenticatedSessionController.php`)
- Registration → User account: creates account (evidence: `app/Http/Controllers/Auth/RegisteredUserController.php`)
- Profile management → User account: updates account
- Room booking → Booking handling: submits booking
- Booking handling → Room catalogue data: checks room (evidence: `app/Http/Controllers/BookingController.php`)
- Booking handling → Daily inventory: checks capacity (evidence: `app/Http/Controllers/BookingController.php`)
- Booking handling → Booking record: creates booking (evidence: `app/Http/Controllers/BookingController.php`)
- Booking handling → Booking audit: records submission (evidence: `app/Http/Controllers/BookingController.php`)
- Booking handling → Booking status mail: sends status mail (evidence: `app/Http/Controllers/BookingController.php`)
- Admin operations → Booking record: updates status (evidence: `app/Http/Controllers/AdminController.php`)
- Admin operations → Booking audit: records actions (evidence: `app/Http/Controllers/AdminController.php`)
- Admin operations → Daily inventory: updates inventory (evidence: `app/Http/Controllers/AdminController.php`)
- Admin operations → Booking status mail: sends status mail (evidence: `app/Http/Controllers/AdminController.php`)
- Booking status mail → Booking email template: renders template
- Operations dashboard → Admin operations: uses operations
- Room catalogue → Room catalogue data: displays rooms
- Facilities → Guest or staff: presents facilities
- Check-in → Guest or staff: supports check-in
- Room catalogue data → Room availability: has availability (evidence: `app/Models/Room.php`)
- Room catalogue data → Booking record: has bookings (evidence: `app/Models/Room.php`)
- Room catalogue data → Room inventory: has inventory (evidence: `app/Models/Room.php`)
- Floor data → Room inventory: has inventory (evidence: `app/Models/Floor.php`)
- Shared page layouts → Guest or staff: renders pages
