# ouchamdinemoussa-gif/piroooo architecture

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

## Overview

La Pirogue is a restaurant and seafood-market promotional website. A visitor enters the home page, explores a staged story from the sea and daily catch through menu and dining experience, then finds location details or starts a booking; a separate group form prepares a WhatsApp inquiry. The page component composes the visible sections and shared layout. The README provides no useful capability details, and source excerpts cover only selected components, so section-level connections beyond the sampled code are shown only where the page composition or source supports them.

Main entry points: [`src/app/page.tsx`](https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/app/page.tsx) (Home page), [`src/components/layout/Navbar.tsx`](https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/layout/Navbar.tsx) (Navigation), [`src/components/sections/GroupsSection.tsx`](https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/sections/GroupsSection.tsx) (Group inquiry), [`src/lib/constants.ts`](https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/lib/constants.ts) (Site content constants)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_site["Site composition"]
  node_home["Home page<br/>[page.tsx]"]
  node_navbar["Navigation<br/>[Navbar.tsx]"]
  node_footer["Footer<br/>[Footer.tsx]"]
  node_constants["Site content constants<br/>[constants.ts]"]
end

subgraph group_story["Restaurant story"]
  node_hero["Sea hero<br/>[HeroScene.tsx]"]
  node_tension["Story transition<br/>[TensionSection.tsx]"]
  node_arrival["Daily arrival<br/>[ArrivalSection.tsx]"]
  node_process["Selection process<br/>[ProcessSection.tsx]"]
  node_fishmarket["Fish market"]
  node_fire["Fire cooking<br/>[FireScene.tsx]"]
  node_menu["Editorial menu<br/>[MenuEditorial.tsx]"]
  node_experience["Dining experience"]
end

subgraph group_conversion["Visit and booking"]
  node_groups["Group inquiry<br/>[GroupsSection.tsx]"]
  node_social["Social proof<br/>[SocialProof.tsx]"]
  node_location["Location details"]
  node_finalcta["Final booking CTA<br/>[FinalCTA.tsx]"]
end

subgraph group_interaction["Shared interactions"]
  node_preloader["Preloader<br/>[Preloader.tsx]"]
  node_cursor["Cursor follower<br/>[CursorFollower.tsx]"]
  node_scroll["Scroll progress<br/>[ScrollProgress.tsx]"]
end

node_visitor(("Site visitor"))
node_whatsapp["WhatsApp"]

node_visitor -->|"opens"| node_home
node_home -->|"renders"| node_preloader
node_home -->|"renders"| node_navbar
node_home -->|"loads"| node_cursor
node_home -->|"renders"| node_scroll
node_home -->|"renders"| node_hero
node_home -->|"renders"| node_tension
node_home -->|"renders"| node_arrival
node_home -->|"renders"| node_process
node_home -->|"renders"| node_fishmarket
node_home -->|"renders"| node_fire
node_home -->|"renders"| node_menu
node_home -->|"renders"| node_experience
node_home -->|"renders"| node_groups
node_home -->|"renders"| node_social
node_home -->|"renders"| node_location
node_home -->|"renders"| node_finalcta
node_home -->|"renders"| node_footer
node_navbar -->|"reads links"| node_constants
node_footer -->|"reads details"| node_constants
node_menu -->|"reads menu"| node_constants
node_groups -->|"reads booking config"| node_constants
node_navbar -->|"opens booking"| node_whatsapp
node_groups -->|"opens inquiry"| node_whatsapp
node_footer -->|"opens booking"| node_whatsapp
node_visitor -->|"navigates"| node_navbar
node_visitor -->|"submits details"| node_groups

click node_home "https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/app/page.tsx"
click node_navbar "https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/layout/Navbar.tsx"
click node_footer "https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/layout/Footer.tsx"
click node_preloader "https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/layout/Preloader.tsx"
click node_hero "https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/sections/HeroScene.tsx"
click node_tension "https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/sections/TensionSection.tsx"
click node_arrival "https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/sections/ArrivalSection.tsx"
click node_process "https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/sections/ProcessSection.tsx"
click node_fishmarket "https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/sections/FishMarketStatement.tsx"
click node_fire "https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/sections/FireScene.tsx"
click node_menu "https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/sections/MenuEditorial.tsx"
click node_experience "https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/sections/ExperienceSection.tsx"
click node_groups "https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/sections/GroupsSection.tsx"
click node_social "https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/sections/SocialProof.tsx"
click node_location "https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/sections/LocationSection.tsx"
click node_finalcta "https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/sections/FinalCTA.tsx"
click node_constants "https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/lib/constants.ts"
click node_cursor "https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/ui/CursorFollower.tsx"
click node_scroll "https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/ui/ScrollProgress.tsx"

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_navbar,node_footer,node_constants toneBlue
class node_hero,node_tension,node_arrival,node_process,node_fishmarket,node_fire,node_menu,node_experience toneAmber
class node_groups,node_social,node_location,node_finalcta toneMint
class node_preloader,node_cursor,node_scroll toneRose
class node_visitor,node_whatsapp toneIndigo
```

## Components

### Site composition

- [Home page](https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/app/page.tsx): `src/app/page.tsx`
- [Navigation](https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/layout/Navbar.tsx): `src/components/layout/Navbar.tsx`
- [Footer](https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/layout/Footer.tsx): `src/components/layout/Footer.tsx`
- [Site content constants](https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/lib/constants.ts): `src/lib/constants.ts`

### Restaurant story

- [Sea hero](https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/sections/HeroScene.tsx): `src/components/sections/HeroScene.tsx`
- [Story transition](https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/sections/TensionSection.tsx): `src/components/sections/TensionSection.tsx`
- [Daily arrival](https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/sections/ArrivalSection.tsx): `src/components/sections/ArrivalSection.tsx`
- [Selection process](https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/sections/ProcessSection.tsx): `src/components/sections/ProcessSection.tsx`
- [Fish market](https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/sections/FishMarketStatement.tsx): `src/components/sections/FishMarketStatement.tsx`
- [Fire cooking](https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/sections/FireScene.tsx): `src/components/sections/FireScene.tsx`
- [Editorial menu](https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/sections/MenuEditorial.tsx): `src/components/sections/MenuEditorial.tsx`
- [Dining experience](https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/sections/ExperienceSection.tsx): `src/components/sections/ExperienceSection.tsx`

### Visit and booking

- [Group inquiry](https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/sections/GroupsSection.tsx): `src/components/sections/GroupsSection.tsx`
- [Social proof](https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/sections/SocialProof.tsx): `src/components/sections/SocialProof.tsx`
- [Location details](https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/sections/LocationSection.tsx): `src/components/sections/LocationSection.tsx`
- [Final booking CTA](https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/sections/FinalCTA.tsx): `src/components/sections/FinalCTA.tsx`

### Shared interactions

- [Preloader](https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/layout/Preloader.tsx): `src/components/layout/Preloader.tsx`
- [Cursor follower](https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/ui/CursorFollower.tsx): `src/components/ui/CursorFollower.tsx`
- [Scroll progress](https://github.com/ouchamdinemoussa-gif/piroooo/blob/main/src/components/ui/ScrollProgress.tsx): `src/components/ui/ScrollProgress.tsx`

### Other components

- **Site visitor**
- **WhatsApp**

## Connections

- Site visitor → Home page: opens
- Home page → Preloader: renders
- Home page → Navigation: renders
- Home page → Cursor follower: loads
- Home page → Scroll progress: renders
- Home page → Sea hero: renders
- Home page → Story transition: renders
- Home page → Daily arrival: renders
- Home page → Selection process: renders
- Home page → Fish market: renders
- Home page → Fire cooking: renders
- Home page → Editorial menu: renders
- Home page → Dining experience: renders
- Home page → Group inquiry: renders
- Home page → Social proof: renders
- Home page → Location details: renders
- Home page → Final booking CTA: renders
- Home page → Footer: renders
- Navigation → Site content constants: reads links
- Footer → Site content constants: reads details
- Editorial menu → Site content constants: reads menu
- Group inquiry → Site content constants: reads booking config
- Navigation → WhatsApp: opens booking
- Group inquiry → WhatsApp: opens inquiry
- Footer → WhatsApp: opens booking
- Site visitor → Navigation: navigates
- Site visitor → Group inquiry: submits details
