- Split monolithic app.py (400+ lines) into organized modules - Extract models, forms, and commands into separate files - Implement Flask blueprints for route organization - Maintain full functionality with cleaner architecture - Update all templates to use new blueprint URLs - Enhance README with technical documentation Structure: ├── app.py (50 lines) - Flask app factory ├── models.py (62 lines) - SQLAlchemy models ├── forms.py (43 lines) - WTForms definitions ├── commands.py (74 lines) - CLI commands └── routes/ - Blueprint modules for each feature 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2.1 KiB
2.1 KiB
Gestion Scolaire
Application web Flask pour gérer les élèves, évaluations et notes dans un contexte scolaire.
Fonctionnalités
✅ Gestion complète des évaluations
- Groupes classes : Organisation des élèves par classe
- Évaluations : Création et gestion des contrôles/devoirs
- Exercices : Structure hiérarchique des évaluations
- Éléments de notation : Configuration fine des critères
- Saisie des notes : Interface intuitive pour la notation
🎯 Types de notation supportés
- Points : Notation classique (ex: 2.5/4 points)
- Score : Évaluation par compétences (0=non acquis, 1=en cours, 2=acquis, 3=expert, .=non évalué)
Installation et lancement
Avec uv (recommandé) :
# Installer les dépendances
uv sync
# Initialiser la base de données avec des données de démonstration
uv run flask --app app init-db
# Lancer en mode développement
uv run flask --app app run --debug
# Ou lancer sans mode debug
uv run flask --app app run
Architecture technique
Structure du code
├── app.py # Application Flask principale
├── models.py # Modèles SQLAlchemy
├── forms.py # Formulaires WTForms
├── commands.py # Commandes CLI Flask
├── routes/
│ ├── assessments.py # Routes pour les évaluations
│ ├── exercises.py # Routes pour les exercices
│ └── grading.py # Routes pour la saisie des notes
└── templates/ # Templates Jinja2 avec TailwindCSS
Modèles de données
- ClassGroup : Groupes de classes (ex: 6ème A, 5ème B)
- Student : Élèves assignés à un groupe classe
- Assessment : Évaluations liées à un groupe classe
- Exercise : Exercices composant une évaluation
- GradingElement : Éléments de notation avec barème et type
- Grade : Notes attribuées aux éléments de notation
Technologies utilisées
- Backend : Flask, SQLAlchemy, WTForms
- Frontend : TailwindCSS, Jinja2
- Base de données : SQLite
- Gestionnaire de paquets : uv