# Architecture technique — Projet Batch-cooking > Documentation de l'architecture serveur/client de l'application. --- ## Vue d'ensemble L'application repose sur une architecture **client-serveur** classique : - Un **serveur** exposant une **API** (échanges standards) et un canal **websocket** (communication temps réel) - Plusieurs **clients** (Client 1, Client 2, Client 3...) connectés simultanément au serveur - Une base de données **PostgreSQL** ```mermaid flowchart TB subgraph SERVER["Server"] WS["Web socket"] API["API"] CALC["Calcul batch-cooking
(TODO)"] IMPORT["Import d'une recette"] IMP1["Import depuis source"] IMP2["Traduction en étapes"] IMP3["Sauvegarde"] DB[("Database
PostgreSQL")] IMPORT --> IMP1 --> IMP2 --> IMP3 --> DB CALC --> WS end C1["Client 1"] C2["Client 2"] C3["Client 3"] API <--> C1 API <--> C2 API <--> C3 WS --> C1 WS --> C2 WS --> C3 style SERVER fill:none,stroke:#888,stroke-width:1px ``` --- ## Composants ### API Point d'entrée principal pour les échanges entre les clients et le serveur (requêtes classiques). ### Web socket Canal de communication temps réel entre le serveur et les clients connectés. ### Module « Calcul batch-cooking » Logique de calcul du batch-cooking (optimisation du planning/des recettes selon le planning). **Statut : TODO — reste à développer.** ### Module « Import d'une recette » Pipeline d'ajout d'une recette, en trois étapes : 1. **Import depuis source** — récupération de la recette (via `sources`) 2. **Traduction en étapes** — découpage en `step` / `tech_step` 3. **Sauvegarde** — persistance en base de données ### Database (PostgreSQL) Stockage de l'ensemble des données de l'application (voir le modèle de données pour le détail des tables). --- ## Notes - Le module de calcul batch-cooking est le principal chantier restant côté serveur (TODO). - Le websocket est utilisé pour la communication temps réel, en complément de l'API. --- ## Documents liés Documentation d'implémentation (ajoutée au fil des features, complète ce document conceptuel sans le remplacer) : - [error-handling.md](./error-handling.md) — contrat d'erreurs partagé entre l'API et le client - [frontend-architecture.md](./frontend-architecture.md) — organisation d'`apps/web`