feat: Calculer automatiquement les moyennes après chaque saisie de notes
Some checks failed
CI / Backend Tests (push) Has been cancelled
CI / Frontend Tests (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
CI / Naming Conventions (push) Has been cancelled
CI / Build Check (push) Has been cancelled

Les enseignants ont besoin de moyennes à jour immédiatement après la
publication ou modification des notes, sans attendre un batch nocturne.

Le système recalcule via Domain Events synchrones : statistiques
d'évaluation (min/max/moyenne/médiane), moyennes matières pondérées
(normalisation /20), et moyenne générale par élève. Les résultats sont
stockés dans des tables dénormalisées avec cache Redis (TTL 5 min).

Trois endpoints API exposent les données avec contrôle d'accès par rôle.
Une commande console permet le backfill des données historiques au
déploiement.
This commit is contained in:
2026-03-30 06:22:03 +02:00
parent b70d5ec2ad
commit e745cf326a
733 changed files with 113156 additions and 286 deletions

View File

@@ -0,0 +1,166 @@
# generated: 2026-01-29
# project: classeo
# project_key: classeo
# tracking_system: file-system
# story_location: _bmad-output/implementation-artifacts
# STATUS DEFINITIONS:
# ==================
# Epic Status:
# - backlog: Epic not yet started
# - in-progress: Epic actively being worked on
# - done: All stories in epic completed
#
# Epic Status Transitions:
# - backlog → in-progress: Automatically when first story is created (via create-story)
# - in-progress → done: Manually when all stories reach 'done' status
#
# Story Status:
# - backlog: Story only exists in epic file
# - ready-for-dev: Story file created in stories folder
# - in-progress: Developer actively working on implementation
# - review: Ready for code review (via Dev's code-review workflow)
# - done: Story completed
#
# Retrospective Status:
# - optional: Can be completed but not required
# - done: Retrospective has been completed
#
# WORKFLOW NOTES:
# ===============
# - Epic transitions to 'in-progress' automatically when first story is created
# - Stories can be worked in parallel if team capacity allows
# - SM typically creates next story after previous one is 'done' to incorporate learnings
# - Dev moves story to 'review', then runs code-review (fresh context, different LLM recommended)
generated: 2026-01-29
project: classeo
project_key: classeo
tracking_system: file-system
story_location: _bmad-output/implementation-artifacts
development_status:
# Epic 1: Fondations, Auth & Observabilité (9 stories)
epic-1: done
1-1-setup-projet-infrastructure: done
1-2-foundation-multi-tenant: done
1-3-inscription-et-activation-compte: done
1-4-connexion-utilisateur: done
1-5-reinitialisation-mot-de-passe: done
1-6-gestion-sessions: done
1-7-audit-trail-actions-sensibles: done
1-8-observabilite-monitoring: done
1-9-dashboard-placeholder-avec-preview-score-serenite: done
epic-1-retrospective: optional
# Epic 2: Configuration Établissement (13 stories)
epic-2: done
2-1-creation-et-gestion-des-classes: done
2-2-creation-et-gestion-des-matieres: done
2-3-gestion-des-periodes-scolaires: done
2-4-configuration-mode-de-notation: done
2-5-creation-comptes-utilisateurs: done
2-5b-messaging-asynchrone-fiable: done
2-6-attribution-des-roles: done
2-7-liaison-parents-enfants: done
2-7b-conversion-mobile-first: done
2-8-affectation-enseignants-aux-classes-et-matieres: done
2-8b-pagination-et-recherche-sections-admin: done
2-8c-migration-utilisateurs-postgresql: done
2-9-designation-remplacants-temporaires: done
2-10-gestion-multi-etablissements-super-admin: done
2-11-configuration-calendrier-scolaire: done
2-12-consultation-liste-droit-a-limage: done
2-12b-optimistic-update-pages-admin: done
2-13-personnalisation-visuelle-etablissement: done
2-15-organisation-sections-dashboard-admin: done
epic-2-retrospective: done
# Epic 3: Import & Onboarding (5 stories)
epic-3: done
3-0-creation-manuelle-eleves: done
3-1-import-eleves-via-csv: done
3-2-import-enseignants-via-csv: done
3-3-generation-et-envoi-codes-invitation-parents: done
3-4-optimisation-pagination-et-cache-requetes: done
epic-3-retrospective: optional
# Epic 4: Emploi du Temps (5 stories)
epic-4: done
4-1-creation-et-modification-de-lemploi-du-temps: done
4-2-recurrences-hebdomadaires: done
4-3-consultation-edt-par-leleve: done
4-4-consultation-edt-par-le-parent: done
4-6-recherche-parent-liaison-eleve: done
epic-4-retrospective: optional
# Epic 5: Devoirs & Règles (8 stories)
epic-5: done
5-1-creation-de-devoirs: done
5-2-duplication-de-devoirs-multi-classes: done
5-2b-optimisation-chargement-page-devoirs: done
5-3-configuration-des-regles-de-devoirs: done
5-4-application-des-regles-mode-soft-warning: done
5-5-application-des-regles-mode-hard-blocage: done
5-6-contournement-des-regles-avec-notification: done
5-7-consultation-des-devoirs-par-leleve: done
5-8-consultation-des-devoirs-par-le-parent: done
5-9-description-enrichie-et-pieces-jointes-enseignant: done
5-10-rendu-de-devoir-par-leleve: done
epic-5-retrospective: optional
# Epic 6: Notes & Évaluations (8 stories)
epic-6: in-progress
6-1-creation-devaluation: done
6-2-saisie-notes-grille-inline: done
6-3-calcul-automatique-des-moyennes: in-progress
6-4-saisie-des-appreciations: in-progress
6-5-mode-competences: ready-for-dev
6-6-consultation-notes-par-leleve: ready-for-dev
6-7-consultation-notes-par-le-parent: ready-for-dev
6-8-statistiques-enseignant: ready-for-dev
epic-6-retrospective: optional
# Epic 7: Vie Scolaire (8 stories)
epic-7: in-progress
7-1-appel-en-un-ecran: ready-for-dev
7-2-signalement-absences: ready-for-dev
7-3-signalement-retards: ready-for-dev
7-4-justification-absence-par-le-parent: ready-for-dev
7-5-historique-absences-et-retards: ready-for-dev
7-6-gestion-dispenses-et-amenagements: ready-for-dev
7-7-saisie-sanctions-et-recompenses: ready-for-dev
7-8-consultation-vie-scolaire-par-le-parent: ready-for-dev
epic-7-retrospective: optional
# Epic 8: Dashboard Sérénité & Recherche (5 stories)
epic-8: in-progress
8-1-dashboard-parent-avec-score-serenite: ready-for-dev
8-2-configuration-et-opt-out-score-serenite: ready-for-dev
8-3-dashboard-enseignant: ready-for-dev
8-4-dashboard-direction: ready-for-dev
8-5-recherche-globale: ready-for-dev
epic-8-retrospective: optional
# Epic 9: Communication & Notifications (7 stories)
epic-9: in-progress
9-1-messagerie-enseignant-parents-eleves: ready-for-dev
9-2-messagerie-direction-etablissement: ready-for-dev
9-3-accuses-de-lecture-et-statistiques: ready-for-dev
9-4-notifications-push-pwa: ready-for-dev
9-5-notifications-email: ready-for-dev
9-6-preferences-de-notification: ready-for-dev
4-5-notifications-de-modification-edt: ready-for-dev # Déplacée : dépend de 9.4 et 9.6
9-7-digest-hebdomadaire-serenite: ready-for-dev
epic-9-retrospective: optional
# Epic 10: Documents & Conformité (7 stories)
epic-10: in-progress
10-1-generation-bulletins-pdf: ready-for-dev
10-2-telechargement-bulletins: ready-for-dev
10-3-verrouillage-et-deverrouillage-des-notes: ready-for-dev
10-4-certificat-de-scolarite: ready-for-dev
10-5-gestion-cycle-de-vie-des-donnees: ready-for-dev
10-6-droits-rgpd-utilisateurs: ready-for-dev
10-7-passage-de-classe-et-cloture-annee: ready-for-dev
epic-10-retrospective: optional