# faieweldan/brachtia-faie architecture

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

- Interactive diagram: https://gitdiagram.com/faieweldan/brachtia-faie
- Repository: https://github.com/faieweldan/brachtia-faie

## Overview

Brachtia Homes is a student-residence discovery and property-operations application. The public journey is to explore residences, inspect room details, and make an enquiry or request a viewing; staff manage enquiries through reservation, viewing, fee, booking, and resident stages. The route tree and sampled booking rules support these product areas, but most route-to-function wiring was not sampled, so uncertain call relationships are omitted.

Main entry points: [`src/routes/admin.tsx`](https://github.com/faieweldan/brachtia-faie/blob/main/src/routes/admin.tsx) (Admin workspace), [`src/router.tsx`](https://github.com/faieweldan/brachtia-faie/blob/main/src/router.tsx) (Route application), [`src/integrations/supabase/client.server.ts`](https://github.com/faieweldan/brachtia-faie/blob/main/src/integrations/supabase/client.server.ts) (Privileged Supabase client), [`src/integrations/supabase/client.ts`](https://github.com/faieweldan/brachtia-faie/blob/main/src/integrations/supabase/client.ts) (Supabase clients)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Residence discovery"]
  node_home["Home page<br/>[index.tsx]"]
  node_residences["Residence listings"]
  node_residence["Residence details"]
  node_viewing["Viewing request<br/>[book-viewing.tsx]"]
  node_enquiry["Enquiry interface<br/>[EnquiryDialog.tsx]"]
end

subgraph group_ops["Property operations"]
  node_admin_ui["Admin workspace<br/>[admin.tsx]"]
  node_bookings["Booking pipeline"]
  node_appointments["Appointment management"]
  node_homes_admin["Home management<br/>[admin.homes.tsx]"]
  node_website_admin["Residence publishing<br/>[admin.website.tsx]"]
  node_residents["Resident management"]
  node_tasks["Operations tasks<br/>[admin.tasks.tsx]"]
end

subgraph group_backend["Application services"]
  node_public_data["Public data services"]
  node_site_data["Website content services"]
  node_admin_services["Admin data services<br/>[admin.functions.ts]"]
  node_residents_services["Resident data services"]
  node_viewing_services["Viewing services<br/>[viewings.server.ts]"]
  node_auth["Admin access control"]
end

subgraph group_platform["Runtime and data"]
  node_router["Route application<br/>[router.tsx]"]
  node_supabase_client["Supabase clients<br/>[client.ts]"]
  node_supabase_admin["Privileged Supabase client<br/>[client.server.ts]"]
  node_database[("Supabase database<br/>[types.ts]")]
end

node_visitor(("Prospective resident"))
node_staff(("Property staff"))

node_visitor -->|"navigates"| node_router
node_staff -->|"navigates"| node_router
node_router -->|"routes"| node_home
node_router -->|"routes"| node_residences
node_router -->|"routes"| node_residence
node_router -->|"routes"| node_viewing
node_router -->|"routes"| node_admin_ui
node_home -->|"explores"| node_residences
node_residence -->|"opens enquiry"| node_enquiry
node_visitor -->|"requests viewing"| node_viewing
node_bookings -.->|"models stages"| node_database
node_admin_ui -.->|"checks access"| node_auth
node_admin_ui -->|"routes"| node_appointments
node_admin_ui -->|"routes"| node_homes_admin
node_admin_ui -->|"routes"| node_website_admin
node_admin_ui -->|"routes"| node_residents
node_admin_ui -->|"routes"| node_tasks
node_public_data -.->|"queries"| node_supabase_client
node_site_data -.->|"queries"| node_supabase_client
node_admin_services -.->|"queries"| node_supabase_admin
node_residents_services -.->|"queries"| node_supabase_admin
node_viewing_services -.->|"queries"| node_supabase_admin
node_supabase_client -->|"accesses"| node_database
node_supabase_admin -->|"accesses"| node_database

click node_router "https://github.com/faieweldan/brachtia-faie/blob/main/src/router.tsx"
click node_home "https://github.com/faieweldan/brachtia-faie/blob/main/src/routes/index.tsx"
click node_residences "https://github.com/faieweldan/brachtia-faie/blob/main/src/routes/properties.index.tsx"
click node_residence "https://github.com/faieweldan/brachtia-faie/blob/main/src/routes/properties.%24slug.index.tsx"
click node_viewing "https://github.com/faieweldan/brachtia-faie/blob/main/src/routes/book-viewing.tsx"
click node_enquiry "https://github.com/faieweldan/brachtia-faie/blob/main/src/components/site/EnquiryDialog.tsx"
click node_public_data "https://github.com/faieweldan/brachtia-faie/blob/main/src/lib/public.functions.ts"
click node_site_data "https://github.com/faieweldan/brachtia-faie/blob/main/src/lib/site-data.functions.ts"
click node_admin_ui "https://github.com/faieweldan/brachtia-faie/blob/main/src/routes/admin.tsx"
click node_bookings "https://github.com/faieweldan/brachtia-faie/blob/main/src/lib/bookings-pipeline.ts"
click node_appointments "https://github.com/faieweldan/brachtia-faie/blob/main/src/routes/admin.appointments.tsx"
click node_homes_admin "https://github.com/faieweldan/brachtia-faie/blob/main/src/routes/admin.homes.tsx"
click node_website_admin "https://github.com/faieweldan/brachtia-faie/blob/main/src/routes/admin.website.tsx"
click node_residents "https://github.com/faieweldan/brachtia-faie/blob/main/src/routes/admin.residents.tsx"
click node_tasks "https://github.com/faieweldan/brachtia-faie/blob/main/src/routes/admin.tasks.tsx"
click node_admin_services "https://github.com/faieweldan/brachtia-faie/blob/main/src/lib/admin.functions.ts"
click node_residents_services "https://github.com/faieweldan/brachtia-faie/blob/main/src/lib/residents.functions.ts"
click node_viewing_services "https://github.com/faieweldan/brachtia-faie/blob/main/src/lib/viewings.server.ts"
click node_auth "https://github.com/faieweldan/brachtia-faie/blob/main/src/lib/admin-gate.functions.ts"
click node_supabase_client "https://github.com/faieweldan/brachtia-faie/blob/main/src/integrations/supabase/client.ts"
click node_supabase_admin "https://github.com/faieweldan/brachtia-faie/blob/main/src/integrations/supabase/client.server.ts"
click node_database "https://github.com/faieweldan/brachtia-faie/blob/main/src/integrations/supabase/types.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_residences,node_residence,node_viewing,node_enquiry toneBlue
class node_admin_ui,node_bookings,node_appointments,node_homes_admin,node_website_admin,node_residents,node_tasks toneAmber
class node_public_data,node_site_data,node_admin_services,node_residents_services,node_viewing_services,node_auth toneMint
class node_router,node_supabase_client,node_supabase_admin,node_database toneRose
class node_visitor,node_staff toneIndigo
```

## Components

### Residence discovery

- [Home page](https://github.com/faieweldan/brachtia-faie/blob/main/src/routes/index.tsx): `src/routes/index.tsx`
- [Residence listings](https://github.com/faieweldan/brachtia-faie/blob/main/src/routes/properties.index.tsx): `src/routes/properties.index.tsx`
- [Residence details](https://github.com/faieweldan/brachtia-faie/blob/main/src/routes/properties.%24slug.index.tsx): `src/routes/properties.$slug.index.tsx`
- [Viewing request](https://github.com/faieweldan/brachtia-faie/blob/main/src/routes/book-viewing.tsx): `src/routes/book-viewing.tsx`
- [Enquiry interface](https://github.com/faieweldan/brachtia-faie/blob/main/src/components/site/EnquiryDialog.tsx): `src/components/site/EnquiryDialog.tsx`

### Property operations

- [Admin workspace](https://github.com/faieweldan/brachtia-faie/blob/main/src/routes/admin.tsx): `src/routes/admin.tsx`
- [Booking pipeline](https://github.com/faieweldan/brachtia-faie/blob/main/src/lib/bookings-pipeline.ts): `src/lib/bookings-pipeline.ts`
- [Appointment management](https://github.com/faieweldan/brachtia-faie/blob/main/src/routes/admin.appointments.tsx): `src/routes/admin.appointments.tsx`
- [Home management](https://github.com/faieweldan/brachtia-faie/blob/main/src/routes/admin.homes.tsx): `src/routes/admin.homes.tsx`
- [Residence publishing](https://github.com/faieweldan/brachtia-faie/blob/main/src/routes/admin.website.tsx): `src/routes/admin.website.tsx`
- [Resident management](https://github.com/faieweldan/brachtia-faie/blob/main/src/routes/admin.residents.tsx): `src/routes/admin.residents.tsx`
- [Operations tasks](https://github.com/faieweldan/brachtia-faie/blob/main/src/routes/admin.tasks.tsx): `src/routes/admin.tasks.tsx`

### Application services

- [Public data services](https://github.com/faieweldan/brachtia-faie/blob/main/src/lib/public.functions.ts): `src/lib/public.functions.ts`
- [Website content services](https://github.com/faieweldan/brachtia-faie/blob/main/src/lib/site-data.functions.ts): `src/lib/site-data.functions.ts`
- [Admin data services](https://github.com/faieweldan/brachtia-faie/blob/main/src/lib/admin.functions.ts): `src/lib/admin.functions.ts`
- [Resident data services](https://github.com/faieweldan/brachtia-faie/blob/main/src/lib/residents.functions.ts): `src/lib/residents.functions.ts`
- [Viewing services](https://github.com/faieweldan/brachtia-faie/blob/main/src/lib/viewings.server.ts): `src/lib/viewings.server.ts`
- [Admin access control](https://github.com/faieweldan/brachtia-faie/blob/main/src/lib/admin-gate.functions.ts): `src/lib/admin-gate.functions.ts`

### Runtime and data

- [Route application](https://github.com/faieweldan/brachtia-faie/blob/main/src/router.tsx): `src/router.tsx`
- [Supabase clients](https://github.com/faieweldan/brachtia-faie/blob/main/src/integrations/supabase/client.ts): `src/integrations/supabase/client.ts`
- [Privileged Supabase client](https://github.com/faieweldan/brachtia-faie/blob/main/src/integrations/supabase/client.server.ts): `src/integrations/supabase/client.server.ts`
- [Supabase database](https://github.com/faieweldan/brachtia-faie/blob/main/src/integrations/supabase/types.ts): `src/integrations/supabase/types.ts`

### Other components

- **Prospective resident**
- **Property staff**

## Connections

- Prospective resident → Route application: navigates
- Property staff → Route application: navigates
- Route application → Home page: routes
- Route application → Residence listings: routes
- Route application → Residence details: routes
- Route application → Viewing request: routes
- Route application → Admin workspace: routes
- Home page → Residence listings: explores
- Residence details → Enquiry interface: opens enquiry
- Prospective resident → Viewing request: requests viewing
- Booking pipeline → Supabase database: models stages
- Admin workspace → Admin access control: checks access
- Admin workspace → Appointment management: routes
- Admin workspace → Home management: routes
- Admin workspace → Residence publishing: routes
- Admin workspace → Resident management: routes
- Admin workspace → Operations tasks: routes
- Public data services → Supabase clients: queries
- Website content services → Supabase clients: queries
- Admin data services → Privileged Supabase client: queries
- Resident data services → Privileged Supabase client: queries
- Viewing services → Privileged Supabase client: queries
- Supabase clients → Supabase database: accesses
- Privileged Supabase client → Supabase database: accesses
