# 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é) : ```bash # 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