# gallhort/maison architecture

> Architecture diagram of the GitHub repository gallhort/maison, 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/gallhort/maison
- Repository: https://github.com/gallhort/maison

## Overview

Maison Orée is a French luxury real-estate frontend, with public property discovery and lead-generation flows plus two browser-based agency back-office editions. Visitors browse and filter listings, inspect property pages, and submit appointment or valuation details; the shared JavaScript supplies the documented interactions, which currently use simulated or in-memory data rather than a connected CRM. The back offices manage listings and enquiries, with the full edition adding agency operations and reporting. The README documents public features beyond the sampled source; their links are shown at the documented module level.

Main entry points: [`assets/js/main.js`](https://github.com/gallhort/maison/blob/main/assets/js/main.js) (Public interactions), [`acheter.html`](https://github.com/gallhort/maison/blob/main/acheter.html) (Property catalogue), [`dashboard-light/app.js`](https://github.com/gallhort/maison/blob/main/dashboard-light/app.js) (Essential back office), [`dashboard/app.js`](https://github.com/gallhort/maison/blob/main/dashboard/app.js) (Prestige back office)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Public experience"]
  node_home["Home and search<br/>[index.html]"]
  node_catalog["Property catalogue<br/>[acheter.html]"]
  node_standard["Standard property<br/>[bien-standard.html]"]
  node_prestige["Prestige collection<br/>[bien-prestige.html]"]
  node_fengshui["Feng Shui<br/>[feng-shui.html]"]
  node_editorial["Journal and news<br/>[actualites.html]"]
  node_house["Maison and offices<br/>[maison.html]"]
end

subgraph group_lead["Client journeys"]
  node_valuation["Valuation journey<br/>[estimer.html]"]
  node_booking["Appointment booking<br/>[rendez-vous.html]"]
  node_contact["Contact enquiries<br/>[contact.html]"]
end

subgraph group_office["Agency back office"]
  node_lightapp["Essential back office<br/>[app.js]"]
  node_lightdata["Essential demo data<br/>[data.js]"]
  node_fullapp["Prestige back office<br/>[app.js]"]
  node_fulldata["Full demo data<br/>[data.js]"]
end

subgraph group_runtime["Shared runtime"]
  node_mainjs["Public interactions<br/>[main.js]"]
end

node_visitor(("Property seeker"))
node_agencyuser(("Agency staff"))
node_crm(("CRM or CMS"))

node_visitor -->|"visits"| node_home
node_home -->|"searches listings"| node_catalog
node_visitor -->|"browses"| node_catalog
node_catalog -->|"opens property"| node_standard
node_catalog -->|"opens collection"| node_prestige
node_visitor -->|"requests estimate"| node_valuation
node_visitor -->|"books meeting"| node_booking
node_visitor -->|"sends enquiry"| node_contact
node_visitor -->|"explores advice"| node_fengshui
node_visitor -->|"reads articles"| node_editorial
node_visitor -->|"learns about agency"| node_house
node_mainjs -->|"powers interactions"| node_home
node_mainjs -->|"filters and sorts"| node_catalog
node_mainjs -->|"calculates estimate"| node_valuation
node_mainjs -->|"simulates availability"| node_booking
node_mainjs -->|"enables gallery"| node_standard
node_agencyuser -->|"manages essentials"| node_lightapp
node_lightapp -->|"reads and updates"| node_lightdata
node_lightapp -.->|"calls configured API"| node_crm
node_agencyuser -->|"manages agency"| node_fullapp
node_fullapp -->|"reads demo data"| node_fulldata
node_fullapp -.->|"shares edition concept"| node_lightapp
node_visitor -.->|"submits lead"| node_crm

click node_home "https://github.com/gallhort/maison/blob/main/index.html"
click node_catalog "https://github.com/gallhort/maison/blob/main/acheter.html"
click node_standard "https://github.com/gallhort/maison/blob/main/bien-standard.html"
click node_prestige "https://github.com/gallhort/maison/blob/main/bien-prestige.html"
click node_fengshui "https://github.com/gallhort/maison/blob/main/feng-shui.html"
click node_editorial "https://github.com/gallhort/maison/blob/main/actualites.html"
click node_house "https://github.com/gallhort/maison/blob/main/maison.html"
click node_valuation "https://github.com/gallhort/maison/blob/main/estimer.html"
click node_booking "https://github.com/gallhort/maison/blob/main/rendez-vous.html"
click node_contact "https://github.com/gallhort/maison/blob/main/contact.html"
click node_mainjs "https://github.com/gallhort/maison/blob/main/assets/js/main.js"
click node_lightapp "https://github.com/gallhort/maison/blob/main/dashboard-light/app.js"
click node_lightdata "https://github.com/gallhort/maison/blob/main/dashboard-light/data.js"
click node_fullapp "https://github.com/gallhort/maison/blob/main/dashboard/app.js"
click node_fulldata "https://github.com/gallhort/maison/blob/main/dashboard/data.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_home,node_catalog,node_standard,node_prestige,node_fengshui,node_editorial,node_house toneBlue
class node_valuation,node_booking,node_contact toneAmber
class node_lightapp,node_lightdata,node_fullapp,node_fulldata toneMint
class node_mainjs toneRose
class node_visitor,node_agencyuser,node_crm toneIndigo
```

## Components

### Public experience

- [Home and search](https://github.com/gallhort/maison/blob/main/index.html): `index.html`
- [Property catalogue](https://github.com/gallhort/maison/blob/main/acheter.html): `acheter.html`
- [Standard property](https://github.com/gallhort/maison/blob/main/bien-standard.html): `bien-standard.html`
- [Prestige collection](https://github.com/gallhort/maison/blob/main/bien-prestige.html): `bien-prestige.html`
- [Feng Shui](https://github.com/gallhort/maison/blob/main/feng-shui.html): `feng-shui.html`
- [Journal and news](https://github.com/gallhort/maison/blob/main/actualites.html): `actualites.html`
- [Maison and offices](https://github.com/gallhort/maison/blob/main/maison.html): `maison.html`

### Client journeys

- [Valuation journey](https://github.com/gallhort/maison/blob/main/estimer.html): `estimer.html`
- [Appointment booking](https://github.com/gallhort/maison/blob/main/rendez-vous.html): `rendez-vous.html`
- [Contact enquiries](https://github.com/gallhort/maison/blob/main/contact.html): `contact.html`

### Agency back office

- [Essential back office](https://github.com/gallhort/maison/blob/main/dashboard-light/app.js): `dashboard-light/app.js`
- [Essential demo data](https://github.com/gallhort/maison/blob/main/dashboard-light/data.js): `dashboard-light/data.js`
- [Prestige back office](https://github.com/gallhort/maison/blob/main/dashboard/app.js): `dashboard/app.js`
- [Full demo data](https://github.com/gallhort/maison/blob/main/dashboard/data.js): `dashboard/data.js`

### Shared runtime

- [Public interactions](https://github.com/gallhort/maison/blob/main/assets/js/main.js): `assets/js/main.js`

### Other components

- **Property seeker**
- **Agency staff**
- **CRM or CMS**

## Connections

- Property seeker → Home and search: visits
- Home and search → Property catalogue: searches listings
- Property seeker → Property catalogue: browses
- Property catalogue → Standard property: opens property
- Property catalogue → Prestige collection: opens collection
- Property seeker → Valuation journey: requests estimate
- Property seeker → Appointment booking: books meeting
- Property seeker → Contact enquiries: sends enquiry
- Property seeker → Feng Shui: explores advice
- Property seeker → Journal and news: reads articles
- Property seeker → Maison and offices: learns about agency
- Public interactions → Home and search: powers interactions
- Public interactions → Property catalogue: filters and sorts
- Public interactions → Valuation journey: calculates estimate
- Public interactions → Appointment booking: simulates availability
- Public interactions → Standard property: enables gallery
- Agency staff → Essential back office: manages essentials
- Essential back office → Essential demo data: reads and updates
- Essential back office → CRM or CMS: calls configured API
- Agency staff → Prestige back office: manages agency
- Prestige back office → Full demo data: reads demo data
- Prestige back office → Essential back office: shares edition concept
- Property seeker → CRM or CMS: submits lead
