Conception complete (Phase 0) pour formation-hub Acadenice : - 19 docs Merise Agile + UML + GitOps + plans (tests/deploy/ops/api) cf docs/00-readme.md pour l'index complet - Stack Docker compose (Docmost + Baserow + Postgres + Redis + MinIO local FS) compose.yml + compose.staging.yml + compose.prod.yml - CI/CD GitHub Actions skeleton (ci, deploy-staging, deploy-prod) - Bridge service skeleton (Hono + TS + Biome + Vitest + zod + pino) - Templates GitHub : PR + 3 issue types + CODEOWNERS + dependabot.yml - Scripts ops : healthcheck, backup quotidien, smoke-test post-deploy - LICENSE AGPL-3.0 + SECURITY.md + CONTRIBUTING.md + CHANGELOG.md - Diagramme drawIO archi infra (XML importable dans diagrams.net) Decisions structurelles enregistrees : - Scope CFA + Agence avec entite PERSONNE pivot multi-roles (ADR-001) - Stack composite Docmost AGPL + Baserow MIT + bridge custom (ADR-001) - Path B : UX quasi-unified via Tiptap node-views custom (ADR-002) - Monorepo trunk-based development (ADR-003) - Postgres separe Docmost/Baserow (ADR-004) - Bridge stack Node 22 + Hono (ADR-005) - Repo neuf prefere a fork Docmost - Prod-like des le jour 1 (pas MVP)
86 lines
4.1 KiB
Markdown
86 lines
4.1 KiB
Markdown
# Discovery — Recap
|
|
|
|
> Synthese de la phase de recherche, projets evalues, blocages identifies, decision finale.
|
|
> Date : 2026-05-07
|
|
|
|
## Contexte metier
|
|
|
|
- Centre de formation, ~20 employes (admin + formateurs)
|
|
- Acces clients ponctuel par lien partage
|
|
- Etudiants avec espaces personnels libres
|
|
- Cible : 90-100 utilisateurs total, ~30 simultanes peak
|
|
|
|
## Besoin fonctionnel
|
|
|
|
1. Wiki collaboratif (SOPs, supports formation, doc interne)
|
|
2. Bases structurees liees pour le suivi des heures de formation :
|
|
- Formations (programmes complets)
|
|
- Blocs (blocs de competences)
|
|
- Modules (lecons individuelles)
|
|
- Formateurs (avec capacite annuelle)
|
|
3. Calculs automatiques d'heures attribuees / restantes par formation, par bloc, par module, par formateur
|
|
4. Bidirec backlinks dans le wiki
|
|
5. Editeur dual-mode (WYSIWYG + raw markdown a la Alexandrie Hub)
|
|
6. Self-host obligatoire, illimite users, AGPL/MIT acceptable
|
|
|
|
## Projets OSS evalues
|
|
|
|
### Elimines
|
|
|
|
| Projet | Raison |
|
|
|--------|--------|
|
|
| Notion (cloud) | Pas self-host, prix au seat |
|
|
| AFFiNE | Self-host limite a 10 seats, Team License $10/seat/mois = ~2200€/an pour 20 users |
|
|
| AppFlowy | Self-host limite a 1 user + 3 guests free |
|
|
| Outline (getoutline) | Pas de bidirec backlinks reel + license BSL (restrictions commerciales) |
|
|
| SiYuan | Excellent dual-mode + bidirec mais conçu single-user, refactor team trop lourd |
|
|
| TriliumNext | Single-user origine |
|
|
| Logseq | Outliner Roam-like, stack Clojure rare, DB version en beta |
|
|
| Anytype | License "Any Source Available" non-OSI, fork commercial = zone grise |
|
|
| HedgeDoc / BookStack | Pas de bidirec, pas de DBs |
|
|
| Alexandrie Hub | Dev solo, bus factor de 1, pas viable pour boite. Sert de **reference UX** dual-mode. |
|
|
|
|
Sources verifiees :
|
|
- [AFFiNE 10-seat limit](https://docs.affine.pro/self-host-affine/features/basic-user-quota)
|
|
- [AppFlowy 1-user limit](https://github.com/AppFlowy-IO/AppFlowy-Cloud/issues/1570)
|
|
- [Docmost AGPL pricing](https://docmost.com/pricing)
|
|
- [Outline backlinks doc](https://docs.getoutline.com/s/guide/doc/backlinks-f9YSmlNSkr)
|
|
|
|
### Retenus
|
|
|
|
| Projet | Role | Pourquoi |
|
|
|--------|------|----------|
|
|
| **Docmost** | Wiki collaboratif | AGPL, users illimites self-host, team workspaces + spaces + share links natifs, stack TS/NestJS/React/Tiptap mainstream, ultra-actif (release fin avril 2026) |
|
|
| **Baserow** | DBs structurees | MIT core, users illimites self-host, multi-vues (table/kanban/calendar/timeline/gallery), formules, rollups, relations, real-time collab |
|
|
|
|
## Path retenu — Path B
|
|
|
|
Le user a confirme le 2026-05-07 : **on ne reinvente pas la roue**, on utilise Docmost + Baserow tels quels et on construit un **bridge custom** (Node TS) qui :
|
|
|
|
- Expose l'API Baserow comme nodes Tiptap inline dans Docmost
|
|
- Fournit des routes de rendering `/formateur/:id` et similaires comme pages Docmost-style
|
|
- Cache Redis pour eviter de spam Baserow API
|
|
|
|
L'utilisateur final ne doit pas voir l'UI Baserow. Cliquer sur un formateur depuis le wiki = arriver sur une page Docmost qui contient les proprietes (capacite, heures restantes) en haut + zone wiki rich content en bas.
|
|
|
|
## Profil dev
|
|
|
|
- AdminSys + DevOps solo (Docker + Traefik + scripts ops)
|
|
- Apprend React + Tiptap au besoin (courbe d'apprentissage acceptee)
|
|
- Possibilite freelance ponctuel pour Tiptap node-views (~2 jours pair-programming)
|
|
|
|
## Manques connus de Docmost
|
|
|
|
| Manque | Source | Cout dev estime |
|
|
|--------|--------|-----------------|
|
|
| Bidirec backlinks | [issue #1122](https://github.com/docmost/docmost/issues/1122) | 2-4 semaines |
|
|
| Dual-mode editor (WYSIWYG ↔ raw MD) | aucune doc | 2-3 semaines |
|
|
| Guest sharing fin (Notion-style) | [discussion #1586](https://github.com/docmost/docmost/discussions/1586) | 1-2 semaines |
|
|
| DBs Notion-style integrees | non roadmap | **delegue a Baserow + bridge** |
|
|
|
|
## Ordre d'attaque
|
|
|
|
1. Phase 1 — Stack vanilla locale, schema Baserow, MCD/MCT documentes
|
|
2. Phase 1 bis — Deploiement staging avec Traefik, CI/CD GitHub Actions
|
|
3. Phase 2 — Bridge Node TS, premier Tiptap node-view custom, route `/formateur/:id`
|
|
4. Phase 3 — Bidirec backlinks Docmost, dual-mode editor (selon douleur reelle)
|