# guirna-code/gestionrestauration architecture

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

- Interactive diagram: https://gitdiagram.com/guirna-code/gestionrestauration
- Repository: https://github.com/guirna-code/gestionrestauration

## Overview

This repository is a small Java domain model for restaurant management, not a complete application: there is no README or visible runtime entry point. The represented workflow centers on managing restaurant staff and menus, with client and kitchen roles alongside a manager and shared person model. Menu lifecycle and product associations are implemented, but order, product, stock, and notification types referenced by the sampled classes are absent from the supplied tree, so their behavior and connections cannot be mapped. Edges reflect explicit source references and calls only.

Main entry points: [`Gestion_Utilisateur/Personne.java`](https://github.com/guirna-code/gestionrestauration/blob/main/Gestion_Utilisateur/Personne.java) (Person), [`Gestion_Restaurant/Menu.java`](https://github.com/guirna-code/gestionrestauration/blob/main/Gestion_Restaurant/Menu.java) (Menu), [`Gestion_Restaurant/Restaurant.java`](https://github.com/guirna-code/gestionrestauration/blob/main/Gestion_Restaurant/Restaurant.java) (Restaurant), [`Gestion_Utilisateur/Client.java`](https://github.com/guirna-code/gestionrestauration/blob/main/Gestion_Utilisateur/Client.java) (Client)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_restaurant["Restaurant &amp; Menus"]
  node_restaurant_entity["Restaurant<br/>[Restaurant.java]"]
  node_menu["Menu<br/>[Menu.java]"]
end

subgraph group_users["People &amp; Roles"]
  node_person["Person<br/>[Personne.java]"]
  node_client["Client<br/>[Client.java]"]
  node_manager["Manager<br/>[Manager.java]"]
  node_chef["Chef<br/>[Chef.java]"]
  node_cook["Cook<br/>[Cuisinier.java]"]
end

subgraph group_menu_state["Menu Lifecycle"]
  node_status_menu["Menu Status<br/>[StatusMenu.java]"]
end

node_restaurant_entity -->|"registers staff"| node_person
node_restaurant_entity -->|"stores menus"| node_menu
node_manager -->|"extends"| node_person
node_manager -->|"manages"| node_menu
node_client -->|"extends"| node_person
node_client -->|"tracks available"| node_menu
node_chef -->|"extends"| node_person
node_cook -->|"extends"| node_person
node_menu -->|"uses states"| node_status_menu

click node_restaurant_entity "https://github.com/guirna-code/gestionrestauration/blob/main/Gestion_Restaurant/Restaurant.java"
click node_menu "https://github.com/guirna-code/gestionrestauration/blob/main/Gestion_Restaurant/Menu.java"
click node_status_menu "https://github.com/guirna-code/gestionrestauration/blob/main/Gestion_Restaurant/StatusMenu.java"
click node_person "https://github.com/guirna-code/gestionrestauration/blob/main/Gestion_Utilisateur/Personne.java"
click node_client "https://github.com/guirna-code/gestionrestauration/blob/main/Gestion_Utilisateur/Client.java"
click node_manager "https://github.com/guirna-code/gestionrestauration/blob/main/Gestion_Utilisateur/Manager.java"
click node_chef "https://github.com/guirna-code/gestionrestauration/blob/main/Gestion_Utilisateur/Chef.java"
click node_cook "https://github.com/guirna-code/gestionrestauration/blob/main/Gestion_Utilisateur/Cuisinier.java"

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_restaurant_entity,node_menu toneBlue
class node_person,node_client,node_manager,node_chef,node_cook toneAmber
class node_status_menu toneMint
```

## Components

### Restaurant & Menus

- [Restaurant](https://github.com/guirna-code/gestionrestauration/blob/main/Gestion_Restaurant/Restaurant.java): `Gestion_Restaurant/Restaurant.java`
- [Menu](https://github.com/guirna-code/gestionrestauration/blob/main/Gestion_Restaurant/Menu.java): `Gestion_Restaurant/Menu.java`

### People & Roles

- [Person](https://github.com/guirna-code/gestionrestauration/blob/main/Gestion_Utilisateur/Personne.java): `Gestion_Utilisateur/Personne.java`
- [Client](https://github.com/guirna-code/gestionrestauration/blob/main/Gestion_Utilisateur/Client.java): `Gestion_Utilisateur/Client.java`
- [Manager](https://github.com/guirna-code/gestionrestauration/blob/main/Gestion_Utilisateur/Manager.java): `Gestion_Utilisateur/Manager.java`
- [Chef](https://github.com/guirna-code/gestionrestauration/blob/main/Gestion_Utilisateur/Chef.java): `Gestion_Utilisateur/Chef.java`
- [Cook](https://github.com/guirna-code/gestionrestauration/blob/main/Gestion_Utilisateur/Cuisinier.java): `Gestion_Utilisateur/Cuisinier.java`

### Menu Lifecycle

- [Menu Status](https://github.com/guirna-code/gestionrestauration/blob/main/Gestion_Restaurant/StatusMenu.java): `Gestion_Restaurant/StatusMenu.java`

## Connections

- Restaurant → Person: registers staff (evidence: `Gestion_Restaurant/Restaurant.java`)
- Restaurant → Menu: stores menus (evidence: `Gestion_Restaurant/Restaurant.java`)
- Manager → Person: extends (evidence: `Gestion_Utilisateur/Manager.java`)
- Manager → Menu: manages (evidence: `Gestion_Utilisateur/Manager.java`)
- Client → Person: extends (evidence: `Gestion_Utilisateur/Client.java`)
- Client → Menu: tracks available (evidence: `Gestion_Utilisateur/Client.java`)
- Chef → Person: extends (evidence: `Gestion_Utilisateur/Chef.java`)
- Cook → Person: extends (evidence: `Gestion_Utilisateur/Cuisinier.java`)
- Menu → Menu Status: uses states (evidence: `Gestion_Restaurant/Menu.java`)
