# Évolution LMS EFEKTIVACADEMIE — Plan d'action, chantiers et sprints (05/08/2026)

Découle de `01_ANALYSE_FEATURES_UX.md`. Sprints de 2 semaines. Les phases de conception
précèdent ou accompagnent les développements (le socle technique n'attend pas les maquettes).

---

## Phase 0 — Cadrage ✅ **CLOSE le 05/08/2026**

Décisions consignées dans **`06_DECISIONS_ATELIER_P0.md`** — elles prévalent sur les
recommandations par défaut du support d'atelier. Seuls points encore ouverts : l'audit du schéma
de production (**bloqué sur un accès en lecture à la base**), l'usage réel de `sub_manager` (que
cet audit tranchera), le périmètre fonctionnel du chatbot chatnode, et la rédaction de la mention
d'information RGPD.

Objectif initial : trancher les zones d'ombre structurantes et sécuriser le chiffrage.

| Livrable | Contenu | Résout |
|---|---|---|
| **P0.1 Décisions de modèle** | Atelier : modèle Formation>Leçon>Support (renommage + typage), liste des types de supports, définition du % d'avancement et des durées | Z1, Z5, Z6, C9 |
| **P0.2 Matrice rôles & périmètres** | Tableau rôles (dont création Manager RH) × écrans × données visibles × actions ; règle d'affichage par profondeur hiérarchique ; sort de `teacher` | Z2, Z10, Z13, C3, C6 |
| **P0.3 Décisions périmètre** | Société (référentiel simple recommandé), SCORM (manifeste d'abord), visio (retrait recommandé), tickets vs support, badge/certificat, statut urgent, Tuto | Z3, Z4, Z8, Z9, Z12, Z15, Z17 |
| **P0.4 Audit schéma prod** | Diff migrations ↔ base de production (colonnes hors migrations) ; migrations de rattrapage ; référence = `EFEKTIVACADEMIE-*` branche `development` (acté 05/08) — reste à définir la stratégie de branches/PR par sprint et le staging | Z21, Z22 |

## Phase 1 — Conception (3 semaines, chevauche les sprints 1-2)

### Volet design (maquettes avant dev des écrans concernés)
| Livrable | Contenu | Alimente |
|---|---|---|
| **P1.1 Système de navigation** | Sidebar/layout par rôle : admin 3 menus, pilotage manager 4 menus, arborescence écran Cours (Parcours/Cours/Tuto/Cat/Sous-cat/Balises) | Sprints 5-7 |
| **P1.2 Page cours apprenant** | Maquette 3 onglets (Menu/Ressources/Chat), rangement de « À propos » et du quiz, lignes de supports (statut, durée, lancement, téléchargement, deeplink), badges/certificats | Sprints 3-4 |
| **P1.3 Studio création de cours** | Accordéons, DnD direct, édition inline, boutons + confirmations, éditeur quiz (banque, politique, nouveaux types) | Sprints 7-8 |
| **P1.4 Pilotage** | « Mes collaborateurs / Mes équipes / Tous les collaborateurs », cockpit apprenant×formation, dashboard refondu. **Revue des indicateurs : partiellement couverte par `05_SPEC_PILOTAGE_ANALYTICS.md`** (Démarré, Récurrence, Taux de complétion, profils d'usage figés) — la revue ne porte plus que sur les KPI restants (durées de connexion/session, définitions cockpit) et les maquettes | Sprints 5-6 |
| **P1.5 Communication** | Chat refondu (onglets, PJ, groupes), annonces épinglées, tickets (cycle de vie, numéro, chat interne) | Sprint 9 |

### Volet spécifications techniques
| Livrable | Contenu | Alimente |
|---|---|---|
| **P1.6 Schéma de tracking** | ✅ **COUVERT par `05_SPEC_PILOTAGE_ANALYTICS.md`** (05/08) : schémas de tables, endpoints, méthode de mesure, RGPD figés — ne restent que 5 paramètres [crochets] à valider (rattachés à la fiche F11 de l'atelier) | Sprints 1-2 |
| **P1.7 Contrat pipeline↔LMS v2** | Transcripts PDF par média, quiz générés (format d'import), mise en situation, mapping question→notion→(support, timestamp) pour la remédiation, manifeste/SCORM — côté pipeline : registre `SUPPORT_GENERATORS` + grounding + jury obligatoires | Sprint 10 |
| **P1.8 Matrice notifications** | Événements × canaux (in-app/email/push) × rôles + préférences user + templates email (refonte des Mail::raw) | Sprints 2, 9 |
| **P1.9 Spéc datatable & préférences** | Contrat API générique (tri/filtres/recherche/pagination/export), table `user_preferences` (colonnes, ordre, visibilité) | Sprint 2 |

---

## Chantiers

| Chantier | Contenu | Sprints |
|---|---|---|
| **CH0 — Assainissement & sécurité** | Bugs et failles connus : IDOR certificats, liste blanche rôles, routes création users, fichiers publics→route authentifiée, MIME, secret ZegoCloud, gardes front par rôle, bugs reporting, migrations de rattrapage, pagination, unicité completed_courses | S1 |
| **CH1 — Socle données & tracking** | Journal d'événements, historisation quiz, position de lecture, % d'avancement, exposition API + RGPD | S1-S2 |
| **CH2 — Socle UX transverse** | Datatable générique (tri/filtres/recherche/export Excel/colonnes DnD+show-hide par user), navigation retour, notifications (socle back + cloche front) | S2 (déploiement continu ensuite) |
| **CH3 — Contenu & page cours** | Supports typés, refonte page cours (onglets, statuts, lancement en ligne, durées), players unifiés + reprise, téléchargements + transcripts, deeplinks, Mes cours, certificats | S3-S4 |
| **CH4 — Organisation & pilotage** | Sociétés/profils, rattachement inversé, invitation refondue (1 mail/user + onboarding), Mes collaborateurs/équipes/RH, formateur, cockpit, dashboard refondu | S5-S6 |
| **CH5 — Studio admin** | Navigation admin 3 menus, écran Cours (menu, vignettes, DnD, brouillon/publié), création de cours refondue, quiz avancé (types, politique, pondération, banque, import/export, journal), analyse des items | S7-S8 |
| **CH6 — Communication** | Chat refondu, annonces, tickets, intégration notifications | S9 |
| **CH7 — Intégration pipeline & évals avancées** | Transcripts auto, import quiz générés, mise en situation, remédiation minutée, ingestion manifeste/SCORM | S10 |

**Règle de dépendance clé : CH1 d'abord.** Chaque semaine sans tracking est une semaine de
données perdues pour le cockpit et l'analyse d'items. CH0 s'exécute en parallèle (petits lots).

---

## Séquencement des sprints

```
Cadrage   P0 ─┐
Conception P1 ─┼──────────────┐ (chevauche S1-S2)
S1  CH0 + CH1 (socle events) ─┤
S2  CH1 fin + CH2 (datatable, notifs socle) ─┤
S3  CH3 (modèle supports + page cours v1) ───┤   ← attend P0.1, P1.2
S4  CH3 (players, reprise, transcripts, deeplinks, certificats) ─┤
S5  CH4 (organisation : sociétés, hiérarchie, invitation) ───────┤   ← attend P0.2
S6  CH4 (équipes, cockpit, dashboard) ───────────────────────────┤   ← consomme les données CH1
S7  CH5 (navigation admin + écran cours + studio création) ──────┤   ← attend P1.1, P1.3
S8  CH5 (quiz avancé + banque + analyse items) ──────────────────┤
S9  CH6 (chat, annonces, tickets) ───────────────────────────────┤   ← attend P1.5, P1.8
S10 CH7 (intégration pipeline) + durcissement/recette ───────────┘   ← attend P1.7
```

### Calendrier proposé (à caler sur la disponibilité de l'équipe)

Sprints de 2 semaines, une équipe. Hypothèse de démarrage : **lundi 1er septembre 2026** (août
étant peu praticable), avec une coupure de fin d'année.

| Sprint | Dates | Contenu | Issues |
|---|---|---|---|
| S1 | 01/09 → 12/09 | CH0 assainissement + socle tracking | 14 |
| S2 | 15/09 → 26/09 | Fin tracking + datatable + notifications | 11 |
| S3 | 29/09 → 10/10 | Supports typés + page cours v1 | 7 |
| S4 | 13/10 → 24/10 | Players, reprise, transcripts, deeplinks | 7 |
| S5 | 27/10 → 07/11 | Sociétés, hiérarchie, invitations | 7 |
| S6 | 10/11 → 21/11 | Équipes, cockpit, dashboard | 11 |
| S7 | 24/11 → 05/12 | Navigation admin, écran cours, studio, tutos | 8 |
| S8 | 08/12 → 19/12 | Quiz avancé, banque, analyse des items | 7 |
| — | 22/12 → 02/01 | Coupure de fin d'année | — |
| S9 | 05/01 → 16/01/27 | Chat, annonces, tickets | 3 |
| S10 | 19/01 → 30/01/27 | Intégration pipeline + durcissement | 8 |

**Fin de parcours : fin janvier 2027**, soit 20 semaines de développement effectif.
Décalage direct si le démarrage glisse : chaque semaine de retard au départ décale d'autant.

Deux remarques sur la charge : le sprint 9 est volontairement léger (3 issues, mais ce sont les
plus grosses du backlog — chat refondu, annonces, tickets) ; les sprints 1, 2 et 6 sont les plus
chargés en nombre et concentrent le socle technique. Si l'équipe est réduite, c'est là qu'il faut
prévoir du renfort ou étaler.

Jalons de valeur intermédiaires :
- **Fin S2** : le LMS trace tout (même si rien n'est encore affiché) + notifications de base.
- **Fin S4** : expérience apprenant cible complète.
- **Fin S6** : pilotage managérial cible (le cockpit a alors ~2 mois de données trackées).
- **Fin S8** : studio admin cible.
- **Fin S10** : périmètre complet.

Volume indicatif : 85 issues (cf. `03_BACKLOG_ISSUES.md`) — ordre de grandeur 90-110 j-dev
hors cadrage/conception/recette. À affiner après P0.4 (audit schéma prod).

---

## Hors sprints (études parallèles) — cadrées le 05/08

- **E1 Chatbot** — **étude finalisée : chatnode retenu** (F17). Reste à cadrer : périmètre
  fonctionnel (FAQ support ? contenu des formations ?), base de connaissance, moment d'intégration.
- **E2 Player SCORM générique** — **instruction lancée en parallèle** de l'ingestion du manifeste
  (F12 : « A + étude B »). Aucun besoin de contenus tiers identifié à ce jour.
- **E3 Contests thématiques** (ex-« hall of fame », F18) — cible précisée : contests construits
  sur **l'ensemble des données d'une thématique** (toutes formations **et tutos** confondus),
  **ouverts y compris à qui n'a pas suivi les cours en ligne**, avec un scoring combinant
  **bonnes réponses et délai de réponse** (délai paramétrable). Prérequis : banque de questions
  taguée par thème (EA-067).
