batchCooking/specs/batch-cooking-architecture.md
Nicolas c66fe09843 Add project specs, gitignore the source PDF
specs/batch-cooking-architecture.md and specs/batch-cooking-modele.md
are the clean markdown transcription of "Projet batch cooking.pdf"
(a scanned/image-only PDF, no extractable text). The PDF itself is
gitignored — source working document, not meant to be committed.
2026-08-16 12:08:54 +02:00

2 KiB

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
flowchart TB
  subgraph SERVER["Server"]
    WS["Web socket"]
    API["API"]
    CALC["Calcul batch-cooking<br/><i>(TODO)</i>"]
    IMPORT["Import d'une recette"]
    IMP1["Import depuis source"]
    IMP2["Traduction en étapes"]
    IMP3["Sauvegarde"]
    DB[("Database<br/>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.