Files
notytex/backend/docs/PARITY_CHECKLIST.md
Bertrand Benjamin 2b08eb534a Migration v1 (Flask) -> v2 (FastAPI + Vue.js) complétée
 Changements majeurs:
- Suppression complète du code Flask legacy
- Migration backend FastAPI vers racine /backend
- Migration frontend Vue.js vers racine /frontend
- Suppression de notytex-v2/ (code monté à la racine)

 Validations:
- Backend démarre correctement (port 8000)
- API /api/v2/health répond healthy
- 99/99 tests unitaires passent
- Frontend configuré avec proxy Vite

📝 Documentation:
- README.md réécrit pour v2
- Instructions de démarrage mises à jour
- .gitignore adapté pour backend/frontend/

🎯 Architecture finale:
notytex/
├── backend/     # FastAPI + SQLAlchemy + Pydantic
├── frontend/    # Vue 3 + Vite + TailwindCSS
├── docs/        # Documentation
└── school_management.db  # Base de données (inchangée)

Jalon 6 complété: Application v2 prête pour utilisation!
2025-11-25 21:09:47 +01:00

5.1 KiB
Raw Permalink Blame History

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