No description
Find a file
Corentin JOGUET 2c5665bc44
Some checks are pending
CI / Lint bridge (Biome) (push) Waiting to run
CI / Type-check bridge (push) Blocked by required conditions
CI / Tests unit bridge (push) Blocked by required conditions
CI / Tests integration bridge (push) Blocked by required conditions
CI / Security scan (push) Waiting to run
CI / Docker build + healthcheck (push) Blocked by required conditions
feat(bridge/domain): bloc 2 — domain models + tests Vitest (coverage 97.86%)
Modele OO complet (cf docs/12-uml-class-diagram.md) en TypeScript strict :
- Personne (pivot multi-roles, splits formation/agence, heuresRestantes*)
- Formation -> Bloc -> Module composition + heuresRestantes rollup
- Module.creerAttribution avec validation RG-01 (capacite) + role formateur
- Attribution lifecycle : demarrer/saisirHeuresRealisees/cloturer/annuler
- Client -> Projet -> Tache composition + lierFormationPedagogique
- Tache.creerIntervention avec validation role developpeur + heures > 0 + actif
- Schemas zod pour runtime validation (z.infer types exposes)
- Decimal.js partout pour les heures (zero erreur flottante)

Patterns appliques :
- Statuts comme discriminated unions ('actif' | 'inactif' | ...)
- Statuts annules exclus des rollups (annulation libere capacite)
- _appliquerHeures* en pseudo-private (convention underscore, pas de friend en TS)
- Warn surcharge Personne non bloquant (overbooking volontaire possible) — RG-01 Module reste bloquante

Tests : 111 pass / 0 fail. Coverage domain : 97.86% lines, 98.57% funcs.
tsc strict EXIT 0, biome ci EXIT 0.

Hors scope (a venir) :
- Repository pattern (Bloc 3 avec routes Hono)
- rapportPDF (Phase 2.4)
- Tests adapters Bloc 1 (Bloc 6 via bridge-tester)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 19:48:22 +02:00
.claude feat(workflows): create 5 BYAN workflows for agent collaboration 2026-05-07 19:30:48 +02:00
.github ops(ci): fix docker-build job — setup .env BEFORE compose build 2026-05-07 12:29:35 +02:00
_byan-output/fast-app/formation-hub feat(agents): complete BYAN INT for 3 more agents + session resume MD 2026-05-07 19:26:17 +02:00
baserow/seed feat(seed): add I4 forms publics + space etudiant + I5 healthcheck etendu 2026-05-07 18:49:00 +02:00
bridge feat(bridge/domain): bloc 2 — domain models + tests Vitest (coverage 97.86%) 2026-05-07 19:48:22 +02:00
docmost/setup feat(seed): add I4 forms publics + space etudiant + I5 healthcheck etendu 2026-05-07 18:49:00 +02:00
docs ops: fix CI run — generate package-lock + bump testcontainers + doc 19 sync bidirec 2026-05-07 12:20:44 +02:00
infra ops(infra): add Forgejo Actions Runner skeleton 2026-05-07 13:49:19 +02:00
scripts feat(seed): add I4 forms publics + space etudiant + I5 healthcheck etendu 2026-05-07 18:49:00 +02:00
.editorconfig chore: initial commit — formation-hub conception phase 2026-05-07 12:16:19 +02:00
.env.example chore: initial commit — formation-hub conception phase 2026-05-07 12:16:19 +02:00
.gitignore feat(seed): add I4 forms publics + space etudiant + I5 healthcheck etendu 2026-05-07 18:49:00 +02:00
CHANGELOG.md chore: initial commit — formation-hub conception phase 2026-05-07 12:16:19 +02:00
compose.prod.yml chore: initial commit — formation-hub conception phase 2026-05-07 12:16:19 +02:00
compose.staging.yml chore: initial commit — formation-hub conception phase 2026-05-07 12:16:19 +02:00
compose.yml chore: initial commit — formation-hub conception phase 2026-05-07 12:16:19 +02:00
CONTRIBUTING.md chore: initial commit — formation-hub conception phase 2026-05-07 12:16:19 +02:00
LICENSE chore: initial commit — formation-hub conception phase 2026-05-07 12:16:19 +02:00
Makefile feat(seed): add I4 forms publics + space etudiant + I5 healthcheck etendu 2026-05-07 18:49:00 +02:00
README.md chore: initial commit — formation-hub conception phase 2026-05-07 12:16:19 +02:00
SECURITY.md chore: initial commit — formation-hub conception phase 2026-05-07 12:16:19 +02:00

formation-hub

Notion-like self-host pour Acadenice (CFA + Agence dev + Operations) : wiki collaboratif + bases de donnees structurees (suivi heures formation + projets clients agence + capacite par personne).

Stack

Composant Role License
Docmost Wiki collaboratif, spaces, share links, diagrammes natifs (Mermaid + Draw.io + Excalidraw depuis v0.3.0) AGPL-3.0
Baserow Bases de donnees typees (relations, rollups, formules, multi-vues) MIT (core)
bridge (Phase 2) Service Node TS qui expose Baserow comme nodes Tiptap dans Docmost MIT

Diagrammes

Docmost embarque nativement trois moteurs de diagrammes — zero config, zero dev :

  • Mermaid : diagrammes en syntaxe markdown (flowchart, sequence, ER, gantt, classe, state, journey...). Versionnable comme du code.
  • Draw.io : editeur visuel complet pour archi technique, BPMN, infra. Stocke en SVG attachment.
  • Excalidraw : whiteboard hand-drawn pour brainstorming, schemas pedagogiques, sketches. Stocke en SVG attachment.

Le MCD du projet (docs/06-merise-mcd.md) utilise un diagramme Mermaid ER. Ouvre-le dans Docmost ou Outline pour le rendu visuel.

Etat actuel (au 2026-05-07)

Phase 0 — Conception :

  • Discovery + scope etendu CFA + Agence approuve
  • ADR + CDC technique
  • Data dictionary, MCD, MLD, MCT, MOT, state diagrams, use cases, class diagram, activity diagrams
  • Repo structure & GitOps (CI/CD, SecOps, environnements)
  • Stack Docker compose locale (vanilla, sans bridge)
  • MPD Baserow (table-par-table)
  • Plan de tests
  • Plan de deployment + CI/CD prets
  • Plan d'operations

Phase 1+ : voir docs/04-cahier-des-charges-techniques.md section roadmap.

Demarrage local

cp .env.example .env
# editer .env avec des secrets reels
make up

Premier lancement : creer un compte admin Docmost et Baserow via l'UI.

Documentation

Numerotation logique : pourquoi → quoi → comment (concept) → comment (logique) → comment (physique) → comment (ops).

# Doc Theme
01 docs/01-discovery-recap.md Pourquoi (vision/contexte)
02 docs/02-scope-etendu-cfa-agence.md Quoi (perimetre approuve)
03 docs/03-decision-record.md Choix structurels (ADR)
04 docs/04-cahier-des-charges-techniques.md CDC technique (stack, NFR, roadmap)
05 docs/05-data-dictionary.md Donnees — vocabulaire
06 docs/06-merise-mcd.md Donnees — concept (ER, cardinalites)
07 docs/07-merise-mld.md Donnees — logique (schema relationnel)
08 docs/08-merise-mct.md Traitements — concept
09 docs/09-merise-mot.md Traitements — organisation (qui/quand/outil)
10 docs/10-state-diagrams.md Comportement — cycle de vie
11 docs/11-uml-use-cases.md Comportement — interactions
12 docs/12-uml-class-diagram.md Comportement — code OO
13 docs/13-uml-activity-diagrams.md Comportement — workflows complets
14 docs/14-repo-structure-gitops.md Code — arborescence + CI/CD + SecOps
15 docs/15-baserow-mpd.md Implementation — Baserow concret (table par table, formules, vues)
16 docs/16-plan-tests.md Qualite — pyramide tests, outils, coverage, acceptance
17 docs/17-plan-deployment.md Ops — provisionnement, CI/CD detaille, releases, migrations, rollback
18 docs/18-plan-operations.md Ops — monitoring, alerting, backups DR, runbooks, capacity
19 docs/19-bridge-api-design.md Bridge API — endpoints, auth, webhooks, cache, integration Tiptap

Methodologie

Merise Agile + 64 mantras BYAN. Data Dictionary First, MCD/MCT cross-validation, Ockham razor sur le scope, zero emoji dans le code et les commits.