# alejofla2/hotel-paraiso-real architecture

> Architecture diagram of the GitHub repository alejofla2/hotel-paraiso-real, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-10). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/alejofla2/hotel-paraiso-real
- Repository: https://github.com/alejofla2/hotel-paraiso-real

## Overview

Hotel Paraíso Real is a web application for public room searches and reservation requests, plus authenticated hotel administration. The main workflow is: a guest searches dates and party size, submits a pending booking, and an administrator reviews it; confirmation is committed only after email delivery succeeds. Administrators also manage rooms and reservation states, while SQLite persists hotel and booking records. The excerpts show the browser API calls and parts of the server’s database and session logic; other capabilities and their links are represented only where the README documents them.

Main entry points: [`public/app.js`](https://github.com/alejofla2/hotel-paraiso-real/blob/main/public/app.js) (Admin panel UI), [`server.js`](https://github.com/alejofla2/hotel-paraiso-real/blob/main/server.js) (Reservation request), [`public/index.html`](https://github.com/alejofla2/hotel-paraiso-real/blob/main/public/index.html) (Hotel and booking UI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web interfaces"]
  node_public_site["Hotel and booking UI<br/>[index.html]"]
  node_browser_app["Browser interactions<br/>[app.js]"]
  node_admin_panel["Admin panel UI<br/>[app.js]"]
end

subgraph group_booking["Booking operations"]
  node_availability["Availability search<br/>[server.js]"]
  node_booking_request["Reservation request<br/>[server.js]"]
  node_dashboard["Dashboard summary<br/>[server.js]"]
  node_reservation_admin["Reservation management<br/>[server.js]"]
  node_room_management["Room management<br/>[server.js]"]
  node_plans_pricing["Meal plans and pricing<br/>[server.js]"]
end

subgraph group_platform["Server and persistence"]
  node_authentication["Login and session<br/>[server.js]"]
  node_mail_delivery["Confirmation email<br/>[server.js]"]
  node_sqlite[("Hotel database")]
end

node_guest(("Guest"))
node_administrator(("Administrator"))
node_smtp["SMTP service"]

node_guest -->|"browses"| node_public_site
node_public_site -->|"uses interactions"| node_browser_app
node_browser_app -->|"requests availability"| node_availability
node_guest -->|"submits booking"| node_browser_app
node_browser_app -.->|"posts reservation"| node_booking_request
node_administrator -->|"administers"| node_admin_panel
node_admin_panel -->|"logs in"| node_authentication
node_admin_panel -->|"loads summary"| node_dashboard
node_admin_panel -->|"loads and updates"| node_reservation_admin
node_admin_panel -.->|"manages rooms"| node_room_management
node_availability -->|"reads availability"| node_sqlite
node_booking_request -->|"stores booking"| node_sqlite
node_booking_request -->|"calculates total"| node_plans_pricing
node_reservation_admin -->|"reads and updates"| node_sqlite
node_dashboard -->|"reads counts"| node_sqlite
node_room_management -->|"updates room state"| node_sqlite
node_reservation_admin -->|"confirms reservation"| node_mail_delivery
node_mail_delivery -->|"sends email"| node_smtp
node_mail_delivery -->|"persists confirmation"| node_sqlite

click node_public_site "https://github.com/alejofla2/hotel-paraiso-real/blob/main/public/index.html"
click node_browser_app "https://github.com/alejofla2/hotel-paraiso-real/blob/main/public/app.js"
click node_availability "https://github.com/alejofla2/hotel-paraiso-real/blob/main/server.js"
click node_booking_request "https://github.com/alejofla2/hotel-paraiso-real/blob/main/server.js"
click node_admin_panel "https://github.com/alejofla2/hotel-paraiso-real/blob/main/public/app.js"
click node_authentication "https://github.com/alejofla2/hotel-paraiso-real/blob/main/server.js"
click node_dashboard "https://github.com/alejofla2/hotel-paraiso-real/blob/main/server.js"
click node_reservation_admin "https://github.com/alejofla2/hotel-paraiso-real/blob/main/server.js"
click node_room_management "https://github.com/alejofla2/hotel-paraiso-real/blob/main/server.js"
click node_plans_pricing "https://github.com/alejofla2/hotel-paraiso-real/blob/main/server.js"
click node_mail_delivery "https://github.com/alejofla2/hotel-paraiso-real/blob/main/server.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_public_site,node_browser_app,node_admin_panel toneBlue
class node_availability,node_booking_request,node_dashboard,node_reservation_admin,node_room_management,node_plans_pricing toneAmber
class node_authentication,node_mail_delivery,node_sqlite toneMint
class node_guest,node_administrator,node_smtp toneIndigo
```

## Components

### Web interfaces

- [Hotel and booking UI](https://github.com/alejofla2/hotel-paraiso-real/blob/main/public/index.html): `public/index.html`
- [Browser interactions](https://github.com/alejofla2/hotel-paraiso-real/blob/main/public/app.js): `public/app.js`
- [Admin panel UI](https://github.com/alejofla2/hotel-paraiso-real/blob/main/public/app.js): `public/app.js`

### Booking operations

- [Availability search](https://github.com/alejofla2/hotel-paraiso-real/blob/main/server.js): `server.js`
- [Reservation request](https://github.com/alejofla2/hotel-paraiso-real/blob/main/server.js): `server.js`
- [Dashboard summary](https://github.com/alejofla2/hotel-paraiso-real/blob/main/server.js): `server.js`
- [Reservation management](https://github.com/alejofla2/hotel-paraiso-real/blob/main/server.js): `server.js`
- [Room management](https://github.com/alejofla2/hotel-paraiso-real/blob/main/server.js): `server.js`
- [Meal plans and pricing](https://github.com/alejofla2/hotel-paraiso-real/blob/main/server.js): `server.js`

### Server and persistence

- [Login and session](https://github.com/alejofla2/hotel-paraiso-real/blob/main/server.js): `server.js`
- [Confirmation email](https://github.com/alejofla2/hotel-paraiso-real/blob/main/server.js): `server.js`
- **Hotel database**

### Other components

- **Guest**
- **Administrator**
- **SMTP service**

## Connections

- Guest → Hotel and booking UI: browses (evidence: `README.md`)
- Hotel and booking UI → Browser interactions: uses interactions (evidence: `README.md`)
- Browser interactions → Availability search: requests availability (evidence: `public/app.js`)
- Guest → Browser interactions: submits booking (evidence: `README.md`)
- Browser interactions → Reservation request: posts reservation
- Administrator → Admin panel UI: administers (evidence: `README.md`)
- Admin panel UI → Login and session: logs in (evidence: `public/app.js`)
- Admin panel UI → Dashboard summary: loads summary (evidence: `public/app.js`)
- Admin panel UI → Reservation management: loads and updates (evidence: `public/app.js`)
- Admin panel UI → Room management: manages rooms
- Availability search → Hotel database: reads availability (evidence: `server.js`)
- Reservation request → Hotel database: stores booking (evidence: `README.md`)
- Reservation request → Meal plans and pricing: calculates total (evidence: `README.md`)
- Reservation management → Hotel database: reads and updates (evidence: `server.js`)
- Dashboard summary → Hotel database: reads counts (evidence: `server.js`)
- Room management → Hotel database: updates room state (evidence: `server.js`)
- Reservation management → Confirmation email: confirms reservation (evidence: `README.md`)
- Confirmation email → SMTP service: sends email (evidence: `README.md`)
- Confirmation email → Hotel database: persists confirmation (evidence: `README.md`)
