# floops10/reskope architecture

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

## Overview

Reskope is a bilingual French/English consultancy showcase site for digital audits, methods, offers, and responsible digital services. A visitor enters through the shared site shell, explores service and case-study pages, then can contact the consultancy or request a booking. The graph follows routes and shared components visible in the sampled application entry point; page-level wiring and most component internals were not sampled, so those links are omitted. Legal-page text documents FormSubmit and Cal.com as optional external services.

Main entry points: [`src/App.jsx`](https://github.com/floops10/reskope/blob/main/src/App.jsx) (App router), [`src/pages/Contact.jsx`](https://github.com/floops10/reskope/blob/main/src/pages/Contact.jsx) (Contact), [`src/components/Booking.jsx`](https://github.com/floops10/reskope/blob/main/src/components/Booking.jsx) (Booking section), [`src/i18n.jsx`](https://github.com/floops10/reskope/blob/main/src/i18n.jsx) (Language context)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_shell["Site shell"]
  node_app["App router<br/>[App.jsx]"]
  node_language["Language context<br/>[i18n.jsx]"]
end

subgraph group_services["Service discovery"]
  node_home["Home<br/>[Home.jsx]"]
  node_why["Why Reskope<br/>[Pourquoi.jsx]"]
  node_method["Method<br/>[Methode.jsx]"]
  node_offers["Offers<br/>[Offres.jsx]"]
  node_case["Case study<br/>[Exemple.jsx]"]
  node_ecology["Responsible digital<br/>[Ecologie.jsx]"]
  node_about["About<br/>[APropos.jsx]"]
end

subgraph group_conversion["Contact and conversion"]
  node_contact["Contact<br/>[Contact.jsx]"]
  node_booking["Booking section<br/>[Booking.jsx]"]
  node_quiz["Interactive quiz<br/>[Quiz.jsx]"]
end

subgraph group_shared["Shared presentation"]
  node_navigation["Navigation<br/>[Nav.jsx]"]
  node_footer["Footer<br/>[Footer.jsx]"]
  node_transitions["Page transitions<br/>[PageTransition.jsx]"]
  node_motion["Motion utilities<br/>[gsap.js]"]
  node_content["Content guard<br/>[contentGuard.js]"]
end

node_visitor(("Site visitor"))
node_formsubmit["FormSubmit"]
node_cal["Cal.com"]

node_visitor -->|"opens site"| node_app
node_app -->|"routes to"| node_home
node_app -->|"routes to"| node_why
node_app -->|"routes to"| node_method
node_app -->|"routes to"| node_offers
node_app -->|"routes to"| node_case
node_app -->|"routes to"| node_ecology
node_app -->|"routes to"| node_about
node_app -->|"routes to"| node_contact
node_app -->|"wraps routes"| node_language
node_app -->|"renders"| node_navigation
node_app -->|"renders"| node_footer
node_app -->|"renders"| node_transitions
node_app -->|"initializes"| node_content
node_app -->|"refreshes triggers"| node_motion
node_contact -.->|"sends messages"| node_formsubmit
node_booking -.->|"loads on request"| node_cal

click node_app "https://github.com/floops10/reskope/blob/main/src/App.jsx"
click node_language "https://github.com/floops10/reskope/blob/main/src/i18n.jsx"
click node_home "https://github.com/floops10/reskope/blob/main/src/pages/Home.jsx"
click node_why "https://github.com/floops10/reskope/blob/main/src/pages/Pourquoi.jsx"
click node_method "https://github.com/floops10/reskope/blob/main/src/pages/Methode.jsx"
click node_offers "https://github.com/floops10/reskope/blob/main/src/pages/Offres.jsx"
click node_case "https://github.com/floops10/reskope/blob/main/src/pages/Exemple.jsx"
click node_ecology "https://github.com/floops10/reskope/blob/main/src/pages/Ecologie.jsx"
click node_about "https://github.com/floops10/reskope/blob/main/src/pages/APropos.jsx"
click node_contact "https://github.com/floops10/reskope/blob/main/src/pages/Contact.jsx"
click node_booking "https://github.com/floops10/reskope/blob/main/src/components/Booking.jsx"
click node_quiz "https://github.com/floops10/reskope/blob/main/src/components/Quiz.jsx"
click node_navigation "https://github.com/floops10/reskope/blob/main/src/components/Nav.jsx"
click node_footer "https://github.com/floops10/reskope/blob/main/src/components/Footer.jsx"
click node_transitions "https://github.com/floops10/reskope/blob/main/src/components/PageTransition.jsx"
click node_motion "https://github.com/floops10/reskope/blob/main/src/lib/gsap.js"
click node_content "https://github.com/floops10/reskope/blob/main/src/lib/contentGuard.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_app,node_language toneBlue
class node_home,node_why,node_method,node_offers,node_case,node_ecology,node_about toneAmber
class node_contact,node_booking,node_quiz toneMint
class node_navigation,node_footer,node_transitions,node_motion,node_content toneRose
class node_visitor,node_formsubmit,node_cal toneIndigo
```

## Components

### Site shell

- [App router](https://github.com/floops10/reskope/blob/main/src/App.jsx): `src/App.jsx`
- [Language context](https://github.com/floops10/reskope/blob/main/src/i18n.jsx): `src/i18n.jsx`

### Service discovery

- [Home](https://github.com/floops10/reskope/blob/main/src/pages/Home.jsx): `src/pages/Home.jsx`
- [Why Reskope](https://github.com/floops10/reskope/blob/main/src/pages/Pourquoi.jsx): `src/pages/Pourquoi.jsx`
- [Method](https://github.com/floops10/reskope/blob/main/src/pages/Methode.jsx): `src/pages/Methode.jsx`
- [Offers](https://github.com/floops10/reskope/blob/main/src/pages/Offres.jsx): `src/pages/Offres.jsx`
- [Case study](https://github.com/floops10/reskope/blob/main/src/pages/Exemple.jsx): `src/pages/Exemple.jsx`
- [Responsible digital](https://github.com/floops10/reskope/blob/main/src/pages/Ecologie.jsx): `src/pages/Ecologie.jsx`
- [About](https://github.com/floops10/reskope/blob/main/src/pages/APropos.jsx): `src/pages/APropos.jsx`

### Contact and conversion

- [Contact](https://github.com/floops10/reskope/blob/main/src/pages/Contact.jsx): `src/pages/Contact.jsx`
- [Booking section](https://github.com/floops10/reskope/blob/main/src/components/Booking.jsx): `src/components/Booking.jsx`
- [Interactive quiz](https://github.com/floops10/reskope/blob/main/src/components/Quiz.jsx): `src/components/Quiz.jsx`

### Shared presentation

- [Navigation](https://github.com/floops10/reskope/blob/main/src/components/Nav.jsx): `src/components/Nav.jsx`
- [Footer](https://github.com/floops10/reskope/blob/main/src/components/Footer.jsx): `src/components/Footer.jsx`
- [Page transitions](https://github.com/floops10/reskope/blob/main/src/components/PageTransition.jsx): `src/components/PageTransition.jsx`
- [Motion utilities](https://github.com/floops10/reskope/blob/main/src/lib/gsap.js): `src/lib/gsap.js`
- [Content guard](https://github.com/floops10/reskope/blob/main/src/lib/contentGuard.js): `src/lib/contentGuard.js`

### Other components

- **Site visitor**
- **FormSubmit**
- **Cal.com**

## Connections

- Site visitor → App router: opens site
- App router → Home: routes to
- App router → Why Reskope: routes to
- App router → Method: routes to
- App router → Offers: routes to
- App router → Case study: routes to
- App router → Responsible digital: routes to
- App router → About: routes to
- App router → Contact: routes to
- App router → Language context: wraps routes
- App router → Navigation: renders
- App router → Footer: renders
- App router → Page transitions: renders
- App router → Content guard: initializes
- App router → Motion utilities: refreshes triggers
- Contact → FormSubmit: sends messages
- Booking section → Cal.com: loads on request
