# 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 1. **v1** : Flask avec templates Jinja2 (monolithique) 2. **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*