# nutala/lagence-de-scott architecture

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

- Interactive diagram: https://gitdiagram.com/nutala/lagence-de-scott
- Repository: https://github.com/nutala/lagence-de-scott

## Overview

This repository combines a public digital-agency website with a staff-facing operations dashboard. Prospective clients browse service packages and business information, then reach the agency through the contact section; staff sign in to manage clients, projects, tasks, quotes, invoices, planning, and settings. The sampled admin data context confirms Supabase-backed records and refreshes, while the tree identifies additional dashboard modules. Some subsystem links are omitted where the available excerpts do not establish their wiring.

Main entry points: [`src/admin/AdminShell.tsx`](https://github.com/nutala/lagence-de-scott/blob/main/src/admin/AdminShell.tsx) (Dashboard shell), [`src/App.tsx`](https://github.com/nutala/lagence-de-scott/blob/main/src/App.tsx) (Agency website), [`src/admin/AdminApp.tsx`](https://github.com/nutala/lagence-de-scott/blob/main/src/admin/AdminApp.tsx) (Admin application), [`src/admin/AdminDataContext.tsx`](https://github.com/nutala/lagence-de-scott/blob/main/src/admin/AdminDataContext.tsx) (Admin data context)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Public website"]
  node_site["Agency website<br/>[App.tsx]"]
  node_packages["Service packages<br/>[Packs.tsx]"]
  node_contact["Contact options<br/>[App.tsx]"]
end

subgraph group_admin["Staff dashboard"]
  node_adminapp["Admin application<br/>[AdminApp.tsx]"]
  node_login["Staff login<br/>[Login.tsx]"]
  node_mfa["MFA challenge<br/>[MfaChallenge.tsx]"]
  node_shell["Dashboard shell<br/>[AdminShell.tsx]"]
  node_overview["Dashboard overview<br/>[Dashboard.tsx]"]
  node_clients["Client records<br/>[Clients.tsx]"]
  node_projects["Project records<br/>[Projets.tsx]"]
  node_tasks["Task management<br/>[Taches.tsx]"]
  node_quotes["Quote management<br/>[Devis.tsx]"]
  node_invoices["Invoice management<br/>[Factures.tsx]"]
  node_planning["Planning<br/>[Planning.tsx]"]
  node_settings["Settings<br/>[Settings.tsx]"]
  node_pdf["Document export<br/>[pdf.ts]"]
end

subgraph group_data["Data and services"]
  node_context["Admin data context"]
  node_clientlib["Supabase client<br/>[supabaseClient.ts]"]
  node_database[("Supabase database<br/>[schema.sql]")]
end

subgraph group_legal["Legal information"]
  node_terms["Terms of sale<br/>[CGV.tsx]"]
  node_legalnotice["Legal notice"]
end

node_visitor(("Prospective client"))
node_staff(("Agency staff"))

node_visitor -->|"browses"| node_site
node_site -->|"shows offers"| node_packages
node_site -->|"presents contact"| node_contact
node_site -->|"opens terms"| node_terms
node_site -->|"opens notice"| node_legalnotice
node_staff -->|"opens dashboard"| node_adminapp
node_adminapp -->|"shows login"| node_login
node_adminapp -->|"requests MFA"| node_mfa
node_adminapp -->|"shows workspace"| node_shell
node_shell -->|"shows overview"| node_overview
node_shell -->|"dispatches page"| node_clients
node_shell -->|"dispatches page"| node_projects
node_shell -->|"dispatches page"| node_tasks
node_shell -->|"dispatches page"| node_quotes
node_shell -->|"dispatches page"| node_invoices
node_shell -->|"dispatches page"| node_planning
node_shell -->|"dispatches page"| node_settings
node_quotes -->|"prints document"| node_pdf
node_invoices -->|"prints document"| node_pdf
node_adminapp -->|"provides data"| node_context
node_clients -->|"reads and updates"| node_context
node_quotes -->|"reads and updates"| node_context
node_invoices -->|"reads and updates"| node_context
node_context -->|"uses client"| node_clientlib
node_clientlib -->|"connects to"| node_database

click node_site "https://github.com/nutala/lagence-de-scott/blob/main/src/App.tsx"
click node_packages "https://github.com/nutala/lagence-de-scott/blob/main/src/Packs.tsx"
click node_contact "https://github.com/nutala/lagence-de-scott/blob/main/src/App.tsx"
click node_terms "https://github.com/nutala/lagence-de-scott/blob/main/src/CGV.tsx"
click node_legalnotice "https://github.com/nutala/lagence-de-scott/blob/main/src/MentionsLegales.tsx"
click node_adminapp "https://github.com/nutala/lagence-de-scott/blob/main/src/admin/AdminApp.tsx"
click node_login "https://github.com/nutala/lagence-de-scott/blob/main/src/admin/Login.tsx"
click node_mfa "https://github.com/nutala/lagence-de-scott/blob/main/src/admin/MfaChallenge.tsx"
click node_shell "https://github.com/nutala/lagence-de-scott/blob/main/src/admin/AdminShell.tsx"
click node_overview "https://github.com/nutala/lagence-de-scott/blob/main/src/admin/pages/Dashboard.tsx"
click node_clients "https://github.com/nutala/lagence-de-scott/blob/main/src/admin/pages/Clients.tsx"
click node_projects "https://github.com/nutala/lagence-de-scott/blob/main/src/admin/pages/Projets.tsx"
click node_tasks "https://github.com/nutala/lagence-de-scott/blob/main/src/admin/pages/Taches.tsx"
click node_quotes "https://github.com/nutala/lagence-de-scott/blob/main/src/admin/pages/Devis.tsx"
click node_invoices "https://github.com/nutala/lagence-de-scott/blob/main/src/admin/pages/Factures.tsx"
click node_planning "https://github.com/nutala/lagence-de-scott/blob/main/src/admin/pages/Planning.tsx"
click node_settings "https://github.com/nutala/lagence-de-scott/blob/main/src/admin/pages/Settings.tsx"
click node_pdf "https://github.com/nutala/lagence-de-scott/blob/main/src/admin/pdf.ts"
click node_context "https://github.com/nutala/lagence-de-scott/blob/main/src/admin/AdminDataContext.tsx"
click node_clientlib "https://github.com/nutala/lagence-de-scott/blob/main/src/admin/supabaseClient.ts"
click node_database "https://github.com/nutala/lagence-de-scott/blob/main/supabase/schema.sql"

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_site,node_packages,node_contact,node_visitor toneBlue
class node_adminapp,node_login,node_mfa,node_shell,node_overview,node_clients,node_projects,node_tasks,node_quotes,node_invoices,node_planning,node_settings,node_pdf toneAmber
class node_context,node_clientlib,node_database toneMint
class node_terms,node_legalnotice toneRose
class node_staff toneIndigo
```

## Components

### Public website

- [Agency website](https://github.com/nutala/lagence-de-scott/blob/main/src/App.tsx): `src/App.tsx`
- [Service packages](https://github.com/nutala/lagence-de-scott/blob/main/src/Packs.tsx): `src/Packs.tsx`
- [Contact options](https://github.com/nutala/lagence-de-scott/blob/main/src/App.tsx): `src/App.tsx`

### Staff dashboard

- [Admin application](https://github.com/nutala/lagence-de-scott/blob/main/src/admin/AdminApp.tsx): `src/admin/AdminApp.tsx`
- [Staff login](https://github.com/nutala/lagence-de-scott/blob/main/src/admin/Login.tsx): `src/admin/Login.tsx`
- [MFA challenge](https://github.com/nutala/lagence-de-scott/blob/main/src/admin/MfaChallenge.tsx): `src/admin/MfaChallenge.tsx`
- [Dashboard shell](https://github.com/nutala/lagence-de-scott/blob/main/src/admin/AdminShell.tsx): `src/admin/AdminShell.tsx`
- [Dashboard overview](https://github.com/nutala/lagence-de-scott/blob/main/src/admin/pages/Dashboard.tsx): `src/admin/pages/Dashboard.tsx`
- [Client records](https://github.com/nutala/lagence-de-scott/blob/main/src/admin/pages/Clients.tsx): `src/admin/pages/Clients.tsx`
- [Project records](https://github.com/nutala/lagence-de-scott/blob/main/src/admin/pages/Projets.tsx): `src/admin/pages/Projets.tsx`
- [Task management](https://github.com/nutala/lagence-de-scott/blob/main/src/admin/pages/Taches.tsx): `src/admin/pages/Taches.tsx`
- [Quote management](https://github.com/nutala/lagence-de-scott/blob/main/src/admin/pages/Devis.tsx): `src/admin/pages/Devis.tsx`
- [Invoice management](https://github.com/nutala/lagence-de-scott/blob/main/src/admin/pages/Factures.tsx): `src/admin/pages/Factures.tsx`
- [Planning](https://github.com/nutala/lagence-de-scott/blob/main/src/admin/pages/Planning.tsx): `src/admin/pages/Planning.tsx`
- [Settings](https://github.com/nutala/lagence-de-scott/blob/main/src/admin/pages/Settings.tsx): `src/admin/pages/Settings.tsx`
- [Document export](https://github.com/nutala/lagence-de-scott/blob/main/src/admin/pdf.ts): `src/admin/pdf.ts`

### Data and services

- [Admin data context](https://github.com/nutala/lagence-de-scott/blob/main/src/admin/AdminDataContext.tsx): `src/admin/AdminDataContext.tsx`
- [Supabase client](https://github.com/nutala/lagence-de-scott/blob/main/src/admin/supabaseClient.ts): `src/admin/supabaseClient.ts`
- [Supabase database](https://github.com/nutala/lagence-de-scott/blob/main/supabase/schema.sql): `supabase/schema.sql`

### Legal information

- [Terms of sale](https://github.com/nutala/lagence-de-scott/blob/main/src/CGV.tsx): `src/CGV.tsx`
- [Legal notice](https://github.com/nutala/lagence-de-scott/blob/main/src/MentionsLegales.tsx): `src/MentionsLegales.tsx`

### Other components

- **Prospective client**
- **Agency staff**

## Connections

- Prospective client → Agency website: browses
- Agency website → Service packages: shows offers
- Agency website → Contact options: presents contact
- Agency website → Terms of sale: opens terms
- Agency website → Legal notice: opens notice
- Agency staff → Admin application: opens dashboard
- Admin application → Staff login: shows login
- Admin application → MFA challenge: requests MFA
- Admin application → Dashboard shell: shows workspace
- Dashboard shell → Dashboard overview: shows overview
- Dashboard shell → Client records: dispatches page
- Dashboard shell → Project records: dispatches page
- Dashboard shell → Task management: dispatches page
- Dashboard shell → Quote management: dispatches page
- Dashboard shell → Invoice management: dispatches page
- Dashboard shell → Planning: dispatches page
- Dashboard shell → Settings: dispatches page
- Quote management → Document export: prints document
- Invoice management → Document export: prints document
- Admin application → Admin data context: provides data
- Client records → Admin data context: reads and updates
- Quote management → Admin data context: reads and updates
- Invoice management → Admin data context: reads and updates
- Admin data context → Supabase client: uses client
- Supabase client → Supabase database: connects to
