# tarick7/toom-website architecture

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

- Interactive diagram: https://gitdiagram.com/tarick7/toom-website
- Repository: https://github.com/tarick7/toom-website

## Overview

TOOM’s Next.js site presents its Lebanese restaurant and catering services, with visitors moving from the home page into either offering. The catering path includes describing an event, submitting a quote request, validating it server-side, and persisting the lead locally. Restaurant information, menu items, event types, and gallery data are maintained as Git-managed content. The README documents delivery-platform links and the gallery capability; only sampled source is used to show their wiring. Quote persistence is local JSON, not a CRM integration.

Main entry points: [`app/restaurant/page.tsx`](https://github.com/tarick7/toom-website/blob/main/app/restaurant/page.tsx) (Restaurant page), [`app/page.tsx`](https://github.com/tarick7/toom-website/blob/main/app/page.tsx) (Home), [`components/DevisForm.tsx`](https://github.com/tarick7/toom-website/blob/main/components/DevisForm.tsx) (Quote form), [`app/traiteur/page.tsx`](https://github.com/tarick7/toom-website/blob/main/app/traiteur/page.tsx) (Catering page)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_discovery["Site discovery"]
  node_home["Home<br/>[page.tsx]"]
  node_about["About<br/>[page.tsx]"]
  node_gallery["Event gallery<br/>[page.tsx]"]
  node_legal["Legal &amp; privacy<br/>[page.tsx]"]
end

subgraph group_restaurant["Restaurant"]
  node_restaurant_page["Restaurant page<br/>[page.tsx]"]
end

subgraph group_catering["Catering"]
  node_catering_page["Catering page<br/>[page.tsx]"]
  node_quote_page["Quote page<br/>[page.tsx]"]
  node_quote_form["Quote form<br/>[DevisForm.tsx]"]
  node_quote_api["Quote endpoint<br/>[route.ts]"]
  node_lead_store[("Local lead file")]
end

subgraph group_content["Managed content"]
  node_menu_data["Menu data<br/>[menu.ts]"]
  node_site_content["Site content<br/>[content.ts]"]
  node_event_data["Event types &amp; gallery data<br/>[event-types.ts]"]
end

node_visitor(("Visitor"))
node_delivery_services(("Delivery platforms"))

node_visitor -->|"opens site"| node_home
node_home -->|"links to"| node_restaurant_page
node_home -->|"links to"| node_catering_page
node_visitor -->|"opens page"| node_about
node_visitor -->|"opens page"| node_gallery
node_visitor -->|"opens page"| node_legal
node_visitor -->|"opens page"| node_restaurant_page
node_restaurant_page -->|"reads menu"| node_menu_data
node_restaurant_page -->|"reads details"| node_site_content
node_restaurant_page -->|"links out"| node_delivery_services
node_visitor -->|"opens page"| node_catering_page
node_catering_page -->|"links to"| node_quote_page
node_visitor -->|"opens page"| node_quote_page
node_quote_page -->|"renders form"| node_quote_form
node_quote_form -->|"reads event types"| node_event_data
node_quote_form -->|"posts form"| node_quote_api
node_quote_api -->|"reads and writes"| node_lead_store
node_gallery -->|"reads gallery data"| node_event_data

click node_home "https://github.com/tarick7/toom-website/blob/main/app/page.tsx"
click node_about "https://github.com/tarick7/toom-website/blob/main/app/a-propos/page.tsx"
click node_gallery "https://github.com/tarick7/toom-website/blob/main/app/realisations/page.tsx"
click node_legal "https://github.com/tarick7/toom-website/blob/main/app/mentions-legales/page.tsx"
click node_restaurant_page "https://github.com/tarick7/toom-website/blob/main/app/restaurant/page.tsx"
click node_menu_data "https://github.com/tarick7/toom-website/blob/main/lib/menu.ts"
click node_site_content "https://github.com/tarick7/toom-website/blob/main/lib/content.ts"
click node_catering_page "https://github.com/tarick7/toom-website/blob/main/app/traiteur/page.tsx"
click node_quote_page "https://github.com/tarick7/toom-website/blob/main/app/traiteur/devis/page.tsx"
click node_quote_form "https://github.com/tarick7/toom-website/blob/main/components/DevisForm.tsx"
click node_event_data "https://github.com/tarick7/toom-website/blob/main/lib/event-types.ts"
click node_quote_api "https://github.com/tarick7/toom-website/blob/main/app/api/devis/route.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_home,node_about,node_gallery,node_legal toneBlue
class node_restaurant_page toneAmber
class node_catering_page,node_quote_page,node_quote_form,node_quote_api,node_lead_store toneMint
class node_menu_data,node_site_content,node_event_data toneRose
class node_visitor,node_delivery_services toneIndigo
```

## Components

### Site discovery

- [Home](https://github.com/tarick7/toom-website/blob/main/app/page.tsx): `app/page.tsx`
- [About](https://github.com/tarick7/toom-website/blob/main/app/a-propos/page.tsx): `app/a-propos/page.tsx`
- [Event gallery](https://github.com/tarick7/toom-website/blob/main/app/realisations/page.tsx): `app/realisations/page.tsx`
- [Legal & privacy](https://github.com/tarick7/toom-website/blob/main/app/mentions-legales/page.tsx): `app/mentions-legales/page.tsx`

### Restaurant

- [Restaurant page](https://github.com/tarick7/toom-website/blob/main/app/restaurant/page.tsx): `app/restaurant/page.tsx`

### Catering

- [Catering page](https://github.com/tarick7/toom-website/blob/main/app/traiteur/page.tsx): `app/traiteur/page.tsx`
- [Quote page](https://github.com/tarick7/toom-website/blob/main/app/traiteur/devis/page.tsx): `app/traiteur/devis/page.tsx`
- [Quote form](https://github.com/tarick7/toom-website/blob/main/components/DevisForm.tsx): `components/DevisForm.tsx`
- [Quote endpoint](https://github.com/tarick7/toom-website/blob/main/app/api/devis/route.ts): `app/api/devis/route.ts`
- **Local lead file**

### Managed content

- [Menu data](https://github.com/tarick7/toom-website/blob/main/lib/menu.ts): `lib/menu.ts`
- [Site content](https://github.com/tarick7/toom-website/blob/main/lib/content.ts): `lib/content.ts`
- [Event types & gallery data](https://github.com/tarick7/toom-website/blob/main/lib/event-types.ts): `lib/event-types.ts`

### Other components

- **Visitor**
- **Delivery platforms**

## Connections

- Visitor → Home: opens site
- Home → Restaurant page: links to
- Home → Catering page: links to
- Visitor → About: opens page
- Visitor → Event gallery: opens page
- Visitor → Legal & privacy: opens page
- Visitor → Restaurant page: opens page
- Restaurant page → Menu data: reads menu
- Restaurant page → Site content: reads details
- Restaurant page → Delivery platforms: links out
- Visitor → Catering page: opens page
- Catering page → Quote page: links to
- Visitor → Quote page: opens page
- Quote page → Quote form: renders form
- Quote form → Event types & gallery data: reads event types
- Quote form → Quote endpoint: posts form
- Quote endpoint → Local lead file: reads and writes
- Event gallery → Event types & gallery data: reads gallery data
