Checklist de Parité Fonctionnelle v1 ↔ v2
Statut Global
| Catégorie |
v1 |
v2 API |
Statut |
| Classes |
✅ |
✅ |
Parité complète |
| Élèves |
✅ |
✅ |
Parité complète |
| Évaluations |
✅ |
✅ |
Parité complète |
| Conseil de classe |
✅ |
✅ |
Parité complète |
| Configuration |
✅ |
✅ |
Parité complète |
Gestion des Classes
| Fonctionnalité |
v1 |
v2 API |
Notes |
| Liste des classes |
✅ |
GET /classes |
✅ |
| Création d'une classe |
✅ |
POST /classes |
✅ |
| Modification d'une classe |
✅ |
PUT /classes/{id} |
✅ |
| Suppression d'une classe |
✅ |
DELETE /classes/{id} |
✅ |
| Dashboard avec stats trimestre |
✅ |
GET /classes/{id}/stats?trimester= |
✅ |
| Histogramme des moyennes |
✅ |
Inclus dans stats |
✅ |
| Analyse par domaines |
✅ |
Inclus dans stats |
✅ |
| Analyse par compétences |
✅ |
Inclus dans stats |
✅ |
Gestion des Élèves
| Fonctionnalité |
v1 |
v2 API |
Notes |
| Liste globale |
✅ |
GET /students |
✅ |
| Liste par classe |
✅ |
GET /classes/{id}/students |
✅ |
| Détail élève |
✅ |
GET /students/{id} |
✅ Avec historique inscriptions |
| Création d'un élève |
✅ |
POST /students |
✅ |
| Modification d'un élève |
✅ |
PUT /students/{id} |
✅ |
| Inscription dans une classe |
✅ |
POST /students/enroll |
✅ |
| Transfert entre classes |
✅ |
POST /students/transfer |
✅ |
| Départ d'une classe |
✅ |
POST /students/departure |
✅ |
| Import CSV |
✅ |
POST /classes/{id}/import-csv |
✅ |
| Historique des mouvements |
✅ |
Inclus dans détail élève |
✅ |
Évaluations
| Fonctionnalité |
v1 |
v2 API |
Notes |
| Liste avec filtres |
✅ |
GET /assessments?class_id=&trimester= |
✅ |
| Tri par date/titre |
✅ |
Paramètre sort |
✅ |
| Création unifiée |
✅ |
POST /assessments |
✅ Avec exercices et éléments |
| Modification |
✅ |
PUT /assessments/{id} |
✅ |
| Suppression cascade |
✅ |
DELETE /assessments/{id} |
✅ |
| Indicateur progression |
✅ |
Inclus dans liste |
✅ |
| Détail évaluation |
✅ |
GET /assessments/{id} |
✅ |
| Saisie des notes |
✅ |
POST /assessments/{id}/grades |
✅ Bulk save |
| Résultats statistiques |
✅ |
GET /assessments/{id}/results |
✅ |
| Histogramme distribution |
✅ |
Inclus dans results |
✅ |
| Tableau scores élèves |
✅ |
Inclus dans results |
✅ |
| Heatmap compétences |
✅ |
Inclus dans results |
✅ |
| Heatmap domaines |
✅ |
Inclus dans results |
✅ |
| Envoi bilans email |
✅ |
POST /assessments/{id}/send-reports |
✅ |
Conseil de Classe
| Fonctionnalité |
v1 |
v2 API |
Notes |
| Vue préparation |
✅ |
GET /council/classes/{id} |
✅ |
| Stats par élève |
✅ |
Inclus dans préparation |
✅ |
| Saisie appréciations |
✅ |
POST /council/.../appreciations/{student} |
✅ |
| Finalisation |
✅ |
PUT /council/.../finalize |
✅ |
| Lecture appréciation |
✅ |
GET /council/.../appreciations/{student} |
✅ |
Configuration
| Fonctionnalité |
v1 |
v2 API |
Notes |
| Config complète |
✅ |
GET /config |
✅ |
| Modification année scolaire |
✅ |
PUT /config |
✅ |
| Liste compétences |
✅ |
GET /config/competences |
✅ |
| CRUD compétences |
✅ |
POST/PUT/DELETE /config/competences/{id} |
✅ |
| Liste domaines |
✅ |
GET /config/domains |
✅ |
| CRUD domaines |
✅ |
POST/PUT/DELETE /config/domains/{id} |
✅ |
| Échelle de notation |
✅ |
GET /config/scale |
✅ |
| CRUD valeurs échelle |
✅ |
POST/PUT/DELETE /config/scale/{value} |
✅ |
| Config SMTP |
✅ |
GET/PUT /config/smtp |
✅ |
| Test SMTP |
✅ |
POST /config/smtp/test |
✅ |
Fonctionnalités Frontend (à implémenter en Vue.js)
| Fonctionnalité |
Notes |
| Navigation clavier dans grille |
JavaScript frontend |
| Drag & drop import CSV |
JavaScript frontend |
| Animations et transitions |
CSS/Vue.js |
| Mode sombre |
CSS/Vue.js |
Résumé API v2
- Total routes : 45
- Tests unitaires : 99
- Services domain : 5 (GradingCalculator, StatisticsService, ConfigService, EmailService, StudentReportService)
Routes par catégorie
| Module |
Routes |
| Classes |
5 |
| Students |
7 |
| Assessments |
7 |
| Council |
4 |
| Config |
22 |
| Total |
45 |
Notes d'implémentation
Différences architecturales
- v1 : Flask avec templates Jinja2 (monolithique)
- v2 : FastAPI avec API REST (découplé)
Calculs métier
Tous les calculs (scores, statistiques, progression) utilisent les mêmes formules :
- Type "notes" : valeur directe
- Type "score" : (score/3) × max_points
- Valeurs spéciales :
. = 0, d = dispensé, a = absent
Migration de données
La structure de la base de données est identique entre v1 et v2.
Une migration directe des données est possible.
Document généré le 2025-11-21