refactor: restructure codebase into modular architecture

- 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>
This commit is contained in:
2025-08-03 20:59:10 +02:00
parent 7afe54d877
commit 3e49bd467c
18 changed files with 562 additions and 495 deletions

View File

@@ -1,6 +1,19 @@
# Gestion Scolaire
Application web pour gérer les élèves, évaluations et notes.
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
@@ -20,19 +33,31 @@ uv run flask --app app run --debug
uv run flask --app app run
```
## Fonctionnalités
## Architecture technique
- Gestion des groupes classes
- Gestion des élèves
- Création d'évaluations avec exercices
- Éléments de notation configurables (score ou points)
- Saisie et suivi des notes
## Architecture
### 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
- **Grade** : Notes attribuées aux éléments de notation
- **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