# ramesharma426/the-doors-family-hotel architecture

> Architecture diagram of the GitHub repository ramesharma426/the-doors-family-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/ramesharma426/the-doors-family-hotel
- Repository: https://github.com/ramesharma426/the-doors-family-hotel

## Overview

This is a bilingual NestJS/Handlebars rebuild of The Door’s Family Hotel website. Its main workflow is a visitor requesting the English or Nepali page, the controller assembling localized business and menu data, and a Handlebars view rendering the page; the static-export script also renders routes and copies public assets for the documented GitHub Pages deployment. The graph includes the menu’s Food, Café, and Bar content, SEO/contact information, and browser assets. Relationships are based on the excerpts and README; unsampled view and browser-code details are not inferred.

Main entry points: [`src/app.controller.ts`](https://github.com/ramesharma426/the-doors-family-hotel/blob/master/src/app.controller.ts) (Page controller), [`src/main.ts`](https://github.com/ramesharma426/the-doors-family-hotel/blob/master/src/main.ts) (Nest app setup), [`src/menu/menu.service.ts`](https://github.com/ramesharma426/the-doors-family-hotel/blob/master/src/menu/menu.service.ts) (Menu selector), [`scripts/export-static.ts`](https://github.com/ramesharma426/the-doors-family-hotel/blob/master/scripts/export-static.ts) (Static exporter)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Page Rendering"]
  node_app["Nest app setup<br/>[main.ts]"]
  node_routes["Page controller<br/>[app.controller.ts]"]
  node_module["App module<br/>[app.module.ts]"]
  node_viewen["English page view<br/>[index.hbs]"]
  node_viewne["Nepali page view<br/>[index-ne.hbs]"]
  node_assets["Site assets"]
  node_browserjs["Browser interactions<br/>[main.js]"]
end

subgraph group_content["Localized Content"]
  node_menumodule["Menu module<br/>[menu.module.ts]"]
  node_menuservice["Menu selector<br/>[menu.service.ts]"]
  node_menudata["English menu<br/>[menu.data.ts]"]
  node_menune["Nepali menu<br/>[menu.ne.data.ts]"]
  node_menutypes["Menu structure<br/>[menu.types.ts]"]
  node_siteen["English site details<br/>[site.config.ts]"]
  node_sitene["Nepali site details<br/>[site.ne.config.ts]"]
end

subgraph group_delivery["Static Site"]
  node_exporter["Static exporter<br/>[export-static.ts]"]
  node_staticresult["Static site output"]
  node_pages["GitHub Pages"]
end

node_visitor(("Site visitor"))

node_visitor -->|"requests page"| node_app
node_app -->|"creates module"| node_module
node_module -->|"registers controller"| node_routes
node_module -->|"imports module"| node_menumodule
node_routes -->|"selects menu"| node_menuservice
node_routes -->|"uses English details"| node_siteen
node_routes -->|"uses Nepali details"| node_sitene
node_routes -->|"renders English"| node_viewen
node_routes -->|"renders Nepali"| node_viewne
node_menumodule -->|"provides service"| node_menuservice
node_menuservice -->|"selects English"| node_menudata
node_menuservice -->|"selects Nepali"| node_menune
node_menudata -->|"uses types"| node_menutypes
node_menune -->|"uses types"| node_menutypes
node_sitene -->|"reuses shared facts"| node_siteen
node_app -->|"serves static files"| node_assets
node_visitor -.->|"uses interactions"| node_browserjs
node_exporter -->|"boots app"| node_app
node_exporter -->|"writes rendered pages"| node_staticresult
node_exporter -->|"copies assets"| node_assets
node_staticresult -->|"publishes site"| node_pages

click node_app "https://github.com/ramesharma426/the-doors-family-hotel/blob/master/src/main.ts"
click node_routes "https://github.com/ramesharma426/the-doors-family-hotel/blob/master/src/app.controller.ts"
click node_module "https://github.com/ramesharma426/the-doors-family-hotel/blob/master/src/app.module.ts"
click node_viewen "https://github.com/ramesharma426/the-doors-family-hotel/blob/master/views/index.hbs"
click node_viewne "https://github.com/ramesharma426/the-doors-family-hotel/blob/master/views/index-ne.hbs"
click node_menumodule "https://github.com/ramesharma426/the-doors-family-hotel/blob/master/src/menu/menu.module.ts"
click node_menuservice "https://github.com/ramesharma426/the-doors-family-hotel/blob/master/src/menu/menu.service.ts"
click node_menudata "https://github.com/ramesharma426/the-doors-family-hotel/blob/master/src/menu/menu.data.ts"
click node_menune "https://github.com/ramesharma426/the-doors-family-hotel/blob/master/src/menu/menu.ne.data.ts"
click node_menutypes "https://github.com/ramesharma426/the-doors-family-hotel/blob/master/src/menu/menu.types.ts"
click node_siteen "https://github.com/ramesharma426/the-doors-family-hotel/blob/master/src/content/site.config.ts"
click node_sitene "https://github.com/ramesharma426/the-doors-family-hotel/blob/master/src/content/site.ne.config.ts"
click node_assets "https://github.com/ramesharma426/the-doors-family-hotel/tree/master/public"
click node_browserjs "https://github.com/ramesharma426/the-doors-family-hotel/blob/master/public/js/main.js"
click node_exporter "https://github.com/ramesharma426/the-doors-family-hotel/blob/master/scripts/export-static.ts"

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_app,node_routes,node_module,node_viewen,node_viewne,node_assets,node_browserjs toneBlue
class node_menumodule,node_menuservice,node_menudata,node_menune,node_menutypes,node_siteen,node_sitene toneAmber
class node_exporter,node_staticresult,node_pages toneMint
class node_visitor toneIndigo
```

## Components

### Page Rendering

- [Nest app setup](https://github.com/ramesharma426/the-doors-family-hotel/blob/master/src/main.ts): `src/main.ts`
- [Page controller](https://github.com/ramesharma426/the-doors-family-hotel/blob/master/src/app.controller.ts): `src/app.controller.ts`
- [App module](https://github.com/ramesharma426/the-doors-family-hotel/blob/master/src/app.module.ts): `src/app.module.ts`
- [English page view](https://github.com/ramesharma426/the-doors-family-hotel/blob/master/views/index.hbs): `views/index.hbs`
- [Nepali page view](https://github.com/ramesharma426/the-doors-family-hotel/blob/master/views/index-ne.hbs): `views/index-ne.hbs`
- [Site assets](https://github.com/ramesharma426/the-doors-family-hotel/tree/master/public): `public`
- [Browser interactions](https://github.com/ramesharma426/the-doors-family-hotel/blob/master/public/js/main.js): `public/js/main.js`

### Localized Content

- [Menu module](https://github.com/ramesharma426/the-doors-family-hotel/blob/master/src/menu/menu.module.ts): `src/menu/menu.module.ts`
- [Menu selector](https://github.com/ramesharma426/the-doors-family-hotel/blob/master/src/menu/menu.service.ts): `src/menu/menu.service.ts`
- [English menu](https://github.com/ramesharma426/the-doors-family-hotel/blob/master/src/menu/menu.data.ts): `src/menu/menu.data.ts`
- [Nepali menu](https://github.com/ramesharma426/the-doors-family-hotel/blob/master/src/menu/menu.ne.data.ts): `src/menu/menu.ne.data.ts`
- [Menu structure](https://github.com/ramesharma426/the-doors-family-hotel/blob/master/src/menu/menu.types.ts): `src/menu/menu.types.ts`
- [English site details](https://github.com/ramesharma426/the-doors-family-hotel/blob/master/src/content/site.config.ts): `src/content/site.config.ts`
- [Nepali site details](https://github.com/ramesharma426/the-doors-family-hotel/blob/master/src/content/site.ne.config.ts): `src/content/site.ne.config.ts`

### Static Site

- [Static exporter](https://github.com/ramesharma426/the-doors-family-hotel/blob/master/scripts/export-static.ts): `scripts/export-static.ts`
- **Static site output**
- **GitHub Pages**

### Other components

- **Site visitor**

## Connections

- Site visitor → Nest app setup: requests page (evidence: `README.md`)
- Nest app setup → App module: creates module (evidence: `src/main.ts`)
- App module → Page controller: registers controller (evidence: `src/app.module.ts`)
- App module → Menu module: imports module (evidence: `src/app.module.ts`)
- Page controller → Menu selector: selects menu (evidence: `src/app.controller.ts`)
- Page controller → English site details: uses English details (evidence: `src/app.controller.ts`)
- Page controller → Nepali site details: uses Nepali details (evidence: `src/app.controller.ts`)
- Page controller → English page view: renders English (evidence: `src/app.controller.ts`)
- Page controller → Nepali page view: renders Nepali (evidence: `src/app.controller.ts`)
- Menu module → Menu selector: provides service (evidence: `src/menu/menu.module.ts`)
- Menu selector → English menu: selects English (evidence: `src/menu/menu.service.ts`)
- Menu selector → Nepali menu: selects Nepali (evidence: `src/menu/menu.service.ts`)
- English menu → Menu structure: uses types (evidence: `src/menu/menu.data.ts`)
- Nepali menu → Menu structure: uses types (evidence: `src/menu/menu.ne.data.ts`)
- Nepali site details → English site details: reuses shared facts (evidence: `src/content/site.ne.config.ts`)
- Nest app setup → Site assets: serves static files (evidence: `src/main.ts`)
- Site visitor → Browser interactions: uses interactions
- Static exporter → Nest app setup: boots app (evidence: `README.md`)
- Static exporter → Static site output: writes rendered pages (evidence: `README.md`)
- Static exporter → Site assets: copies assets (evidence: `README.md`)
- Static site output → GitHub Pages: publishes site (evidence: `README.md`)
