# adamdkr/projet-2-edl architecture

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

- Interactive diagram: https://gitdiagram.com/adamdkr/projet-2-edl
- Repository: https://github.com/adamdkr/projet-2-edl

## Overview

Le dépôt propose une application de réservation de salles, avec deux interfaces alternatives : Flask, plus complète dans les extraits, et un exemple Streamlit. Le parcours principal passe par l’interface pour gérer salles, réservations et planning, avec validation métier et persistance SQLite. Les règles et l’adaptateur de base sont séparés du code web. Les fonctionnalités bonus du README (recherche de salles libres, occupation, export) ne sont pas représentées comme implémentées ; les liens reposent sur les extraits et les relations indiquées par l’index des sources.

Main entry points: [`code-flask/app.py`](https://github.com/adamdkr/projet-2-edl/blob/main/code-flask/app.py) (Application Flask), [`code-flask/base.py`](https://github.com/adamdkr/projet-2-edl/blob/main/code-flask/base.py) (Accès SQLite Flask), [`code-streamlit/base.py`](https://github.com/adamdkr/projet-2-edl/blob/main/code-streamlit/base.py) (Accès SQLite Streamlit), [`code-streamlit/app.py`](https://github.com/adamdkr/projet-2-edl/blob/main/code-streamlit/app.py) (Exemple Streamlit)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interfaces["Interfaces utilisateur"]
  node_flask_app["Application Flask<br/>[app.py]"]
  node_streamlit_app["Exemple Streamlit<br/>[app.py]"]
  node_gestion_salles["Gestion des salles<br/>[app.py]"]
  node_reservations["Réservations<br/>[app.py]"]
  node_planning["Planning hebdomadaire<br/>[app.py]"]
end

subgraph group_metier["Règles métier"]
  node_regles["Validation métier<br/>[regles.py]"]
end

subgraph group_stockage["Persistance"]
  node_base_flask["Accès SQLite Flask<br/>[base.py]"]
  node_base_streamlit["Accès SQLite Streamlit<br/>[base.py]"]
  node_schema["Schéma et exemples<br/>[base.sql]"]
  node_sqlite[("Base de données")]
end

node_usager(("Usager"))

node_usager -->|"utilise"| node_flask_app
node_usager -->|"utilise"| node_streamlit_app
node_flask_app -->|"ouvre la base"| node_base_flask
node_flask_app -->|"valide avec"| node_regles
node_flask_app -->|"gère"| node_gestion_salles
node_flask_app -->|"gère"| node_reservations
node_flask_app -->|"affiche"| node_planning
node_streamlit_app -->|"ouvre la base"| node_base_streamlit
node_base_flask -->|"ouvre"| node_sqlite
node_base_streamlit -->|"ouvre"| node_sqlite
node_base_flask -->|"initialise depuis"| node_schema
node_base_streamlit -->|"initialise depuis"| node_schema

click node_flask_app "https://github.com/adamdkr/projet-2-edl/blob/main/code-flask/app.py"
click node_streamlit_app "https://github.com/adamdkr/projet-2-edl/blob/main/code-streamlit/app.py"
click node_gestion_salles "https://github.com/adamdkr/projet-2-edl/blob/main/code-flask/app.py"
click node_reservations "https://github.com/adamdkr/projet-2-edl/blob/main/code-flask/app.py"
click node_planning "https://github.com/adamdkr/projet-2-edl/blob/main/code-flask/app.py"
click node_regles "https://github.com/adamdkr/projet-2-edl/blob/main/code-flask/regles.py"
click node_base_flask "https://github.com/adamdkr/projet-2-edl/blob/main/code-flask/base.py"
click node_base_streamlit "https://github.com/adamdkr/projet-2-edl/blob/main/code-streamlit/base.py"
click node_schema "https://github.com/adamdkr/projet-2-edl/blob/main/base.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_flask_app,node_streamlit_app,node_gestion_salles,node_reservations,node_planning toneBlue
class node_regles toneAmber
class node_base_flask,node_base_streamlit,node_schema,node_sqlite toneMint
class node_usager toneIndigo
```

## Components

### Interfaces utilisateur

- [Application Flask](https://github.com/adamdkr/projet-2-edl/blob/main/code-flask/app.py): `code-flask/app.py`
- [Exemple Streamlit](https://github.com/adamdkr/projet-2-edl/blob/main/code-streamlit/app.py): `code-streamlit/app.py`
- [Gestion des salles](https://github.com/adamdkr/projet-2-edl/blob/main/code-flask/app.py): `code-flask/app.py`
- [Réservations](https://github.com/adamdkr/projet-2-edl/blob/main/code-flask/app.py): `code-flask/app.py`
- [Planning hebdomadaire](https://github.com/adamdkr/projet-2-edl/blob/main/code-flask/app.py): `code-flask/app.py`

### Règles métier

- [Validation métier](https://github.com/adamdkr/projet-2-edl/blob/main/code-flask/regles.py): `code-flask/regles.py`

### Persistance

- [Accès SQLite Flask](https://github.com/adamdkr/projet-2-edl/blob/main/code-flask/base.py): `code-flask/base.py`
- [Accès SQLite Streamlit](https://github.com/adamdkr/projet-2-edl/blob/main/code-streamlit/base.py): `code-streamlit/base.py`
- [Schéma et exemples](https://github.com/adamdkr/projet-2-edl/blob/main/base.sql): `base.sql`
- **Base de données**

### Other components

- **Usager**

## Connections

- Usager → Application Flask: utilise (evidence: `README.md`)
- Usager → Exemple Streamlit: utilise (evidence: `README.md`)
- Application Flask → Accès SQLite Flask: ouvre la base (evidence: `code-flask/app.py`)
- Application Flask → Validation métier: valide avec (evidence: `code-flask/app.py`)
- Application Flask → Gestion des salles: gère (evidence: `README.md`)
- Application Flask → Réservations: gère (evidence: `README.md`)
- Application Flask → Planning hebdomadaire: affiche (evidence: `code-flask/app.py`)
- Exemple Streamlit → Accès SQLite Streamlit: ouvre la base (evidence: `code-streamlit/app.py`)
- Accès SQLite Flask → Base de données: ouvre (evidence: `code-flask/base.py`)
- Accès SQLite Streamlit → Base de données: ouvre (evidence: `code-streamlit/base.py`)
- Accès SQLite Flask → Schéma et exemples: initialise depuis (evidence: `code-flask/base.py`)
- Accès SQLite Streamlit → Schéma et exemples: initialise depuis (evidence: `code-streamlit/base.py`)
