# ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d architecture

> Architecture diagram of the GitHub repository ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d
- Repository: https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d

## Overview

Lumière is a hotel-operations web application: staff and guests use browser pages that call an Express REST API, which applies resource logic and persists hotel data in MySQL. The principal booking flow validates a reservation request, finds a matching available room, saves guest/reservation/room assignment, and returns the booking result. Other documented branches cover room records, service orders, invoicing, maintenance, reviews, and JOIN reports. Edges follow explicit README statements, indexed imports, or shown calls; some documented subsystems are represented at directory level because their implementation excerpts were not sampled.

Main entry points: [`models/db.js`](https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/models/db.js) (MySQL pool), [`models/reservationModel.js`](https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/models/reservationModel.js) (Reservation and booking), [`controllers/reservationController.js`](https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/controllers/reservationController.js) (Reservation handler), [`controllers/serviceController.js`](https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/controllers/serviceController.js) (Hotel services)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Web interface"]
  node_web["Hotel pages"]
end

subgraph group_api["API and operations"]
  node_server["Express server<br/>[server.js]"]
  node_routes["Resource routes"]
end

subgraph group_persistence["Data access"]
  node_db_pool["MySQL pool<br/>[db.js]"]
  node_mysql[("Hotel database")]
end

subgraph group_hotel["Hotel workflows"]
  node_reservation_controller["Reservation handler"]
  node_reservation_model["Reservation and booking"]
  node_guest_resources["Guest resources<br/>[guestController.js]"]
  node_room_resources["Room resources<br/>[roomController.js]"]
  node_housekeeping["Housekeeping"]
  node_employee["Employee management"]
  node_services["Hotel services"]
  node_service_orders["Service orders"]
  node_records["Room records"]
  node_invoices["Invoices and billing"]
  node_maintenance["Maintenance requests"]
  node_reviews["Guest reviews"]
  node_reports["JOIN reports"]
end

node_guest(("Guest or staff"))

node_guest -->|"uses"| node_web
node_web -->|"requests"| node_server
node_server -->|"mounts"| node_routes
node_routes -->|"dispatches"| node_reservation_controller
node_reservation_controller -->|"calls"| node_reservation_model
node_reservation_controller -->|"queries"| node_db_pool
node_reservation_model -->|"queries"| node_db_pool
node_db_pool -->|"connects"| node_mysql
node_reservation_model -->|"checks availability"| node_room_resources
node_guest -->|"manages guests"| node_guest_resources
node_guest -->|"manages rooms"| node_room_resources
node_guest -->|"manages tasks"| node_housekeeping
node_guest -->|"manages employees"| node_employee
node_guest -->|"browses services"| node_services
node_guest -->|"places orders"| node_service_orders
node_guest -->|"views occupancy"| node_records
node_guest -->|"handles billing"| node_invoices
node_guest -->|"manages requests"| node_maintenance
node_guest -->|"submits reviews"| node_reviews
node_guest -->|"views reports"| node_reports
node_services -->|"queries"| node_db_pool
node_service_orders -->|"queries"| node_db_pool
node_reservation_model -->|"reads service totals"| node_services
node_invoices -.->|"queries"| node_db_pool
node_maintenance -.->|"queries"| node_db_pool
node_records -.->|"queries"| node_db_pool
node_reviews -.->|"queries"| node_db_pool
node_reports -.->|"queries"| node_db_pool

click node_web "https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/tree/main/public"
click node_server "https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/server.js"
click node_routes "https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/tree/main/routes"
click node_reservation_controller "https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/controllers/reservationController.js"
click node_reservation_model "https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/models/reservationModel.js"
click node_guest_resources "https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/controllers/guestController.js"
click node_room_resources "https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/controllers/roomController.js"
click node_housekeeping "https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/controllers/housekeepingController.js"
click node_employee "https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/controllers/employeeController.js"
click node_services "https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/controllers/serviceController.js"
click node_service_orders "https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/controllers/serviceOrderController.js"
click node_records "https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/controllers/recordController.js"
click node_invoices "https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/controllers/invoiceController.js"
click node_maintenance "https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/controllers/maintenanceController.js"
click node_reviews "https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/controllers/reviewController.js"
click node_reports "https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/controllers/reportController.js"
click node_db_pool "https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/models/db.js"

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 toneBlue
class node_server,node_routes toneAmber
class node_db_pool,node_mysql toneMint
class node_reservation_controller,node_reservation_model,node_guest_resources,node_room_resources,node_housekeeping,node_employee,node_services,node_service_orders,node_records,node_invoices,node_maintenance,node_reviews,node_reports toneRose
class node_guest toneIndigo
```

## Components

### Web interface

- [Hotel pages](https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/tree/main/public): `public`

### API and operations

- [Express server](https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/server.js): `server.js`
- [Resource routes](https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/tree/main/routes): `routes`

### Data access

- [MySQL pool](https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/models/db.js): `models/db.js`
- **Hotel database**

### Hotel workflows

- [Reservation handler](https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/controllers/reservationController.js): `controllers/reservationController.js`
- [Reservation and booking](https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/models/reservationModel.js): `models/reservationModel.js`
- [Guest resources](https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/controllers/guestController.js): `controllers/guestController.js`
- [Room resources](https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/controllers/roomController.js): `controllers/roomController.js`
- [Housekeeping](https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/controllers/housekeepingController.js): `controllers/housekeepingController.js`
- [Employee management](https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/controllers/employeeController.js): `controllers/employeeController.js`
- [Hotel services](https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/controllers/serviceController.js): `controllers/serviceController.js`
- [Service orders](https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/controllers/serviceOrderController.js): `controllers/serviceOrderController.js`
- [Room records](https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/controllers/recordController.js): `controllers/recordController.js`
- [Invoices and billing](https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/controllers/invoiceController.js): `controllers/invoiceController.js`
- [Maintenance requests](https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/controllers/maintenanceController.js): `controllers/maintenanceController.js`
- [Guest reviews](https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/controllers/reviewController.js): `controllers/reviewController.js`
- [JOIN reports](https://github.com/ortizrattanuel0601-coder/hotel-management-system-dbms-final-project---group-5-section-d/blob/main/controllers/reportController.js): `controllers/reportController.js`

### Other components

- **Guest or staff**

## Connections

- Guest or staff → Hotel pages: uses (evidence: `README.md`)
- Hotel pages → Express server: requests (evidence: `README.md`)
- Express server → Resource routes: mounts (evidence: `server.js`)
- Resource routes → Reservation handler: dispatches (evidence: `routes/reservationRoutes.js`)
- Reservation handler → Reservation and booking: calls (evidence: `controllers/reservationController.js`)
- Reservation handler → MySQL pool: queries (evidence: `controllers/reservationController.js`)
- Reservation and booking → MySQL pool: queries (evidence: `models/reservationModel.js`)
- MySQL pool → Hotel database: connects (evidence: `models/db.js`)
- Reservation and booking → Room resources: checks availability (evidence: `models/reservationModel.js`)
- Guest or staff → Guest resources: manages guests (evidence: `README.md`)
- Guest or staff → Room resources: manages rooms (evidence: `README.md`)
- Guest or staff → Housekeeping: manages tasks (evidence: `README.md`)
- Guest or staff → Employee management: manages employees (evidence: `README.md`)
- Guest or staff → Hotel services: browses services (evidence: `README.md`)
- Guest or staff → Service orders: places orders (evidence: `README.md`)
- Guest or staff → Room records: views occupancy (evidence: `README.md`)
- Guest or staff → Invoices and billing: handles billing (evidence: `README.md`)
- Guest or staff → Maintenance requests: manages requests (evidence: `README.md`)
- Guest or staff → Guest reviews: submits reviews (evidence: `README.md`)
- Guest or staff → JOIN reports: views reports (evidence: `README.md`)
- Hotel services → MySQL pool: queries
- Service orders → MySQL pool: queries
- Reservation and booking → Hotel services: reads service totals (evidence: `models/reservationModel.js`)
- Invoices and billing → MySQL pool: queries
- Maintenance requests → MySQL pool: queries
- Room records → MySQL pool: queries
- Guest reviews → MySQL pool: queries
- JOIN reports → MySQL pool: queries
