feat: add new initialisation db mode

This commit is contained in:
2025-08-07 14:31:31 +02:00
parent 8cee665f2b
commit dea30fb2a5
3 changed files with 547 additions and 20 deletions

View File

@@ -73,18 +73,54 @@ uv sync
cp .env.example .env
# Modifier .env avec SECRET_KEY (minimum 32 caractères obligatoire)
# 4. Initialiser la base de données avec données de démonstration
# 4. Initialiser la base de données (voir modes ci-dessous)
uv run flask --app app init-db
# 5. Lancer l'application en mode développement
uv run flask --app app run --debug
```
### 🎯 Modes d'Initialisation de la Base de Données
**Notytex** propose **3 modes d'initialisation** adaptés aux différents contextes d'usage :
#### 🌱 **Mode Minimal** (par défaut) - Début d'année scolaire
```bash
uv run flask --app app init-db --mode minimal
# ou simplement
uv run flask --app app init-db
```
- **Usage** : Début d'année scolaire, base vierge
- **Contenu** : Configuration de base uniquement
- **Idéal pour** : Démarrer une nouvelle année avec ses vraies classes et élèves
#### 📚 **Mode Milieu d'Année** - Données réalistes complètes
```bash
uv run flask --app app init-db --mode midyear
```
- **Usage** : Tester l'application avec des données représentatives
- **Contenu** :
- **5 classes** avec 142 élèves au total (25-32 élèves par classe)
- **30 évaluations** créées (6 par classe sur 2 trimestres)
- **4 évaluations entièrement corrigées** par classe (Trimestre 1)
- **2 évaluations partiellement corrigées** par classe (Trimestre 2)
- **Notes réalistes** générées automatiquement
- **Idéal pour** : Démonstrations, formations, tests de performance
- **Volumétrie** : Correspond aux spécifications du CLAUDE.md (milieu de 2ème trimestre)
#### 🧪 **Mode Démonstration** - Données minimales
```bash
uv run flask --app app init-db --mode demo
```
- **Usage** : Tests rapides et démonstrations simples
- **Contenu** : 2 classes, 5 élèves, 1 évaluation simple
- **Idéal pour** : Premiers pas avec l'application
### 🌐 Accès à l'Application
- **URL de développement** : http://localhost:5000
- **Interface** : Dashboard avec navigation intuitive
- **Données de test** : Exemples d'évaluations et élèves préchargés
- **Interface** : Dashboard avec navigation intuitive et indicateurs de progression
- **Données** : Variables selon le mode d'initialisation choisi
## 🏗️ Architecture Technique
@@ -225,15 +261,19 @@ uv run pytest tests/test_repositories.py -v
# 1. Configuration initiale
cp .env.example .env
# Éditer .env avec SECRET_KEY obligatoire
uv run flask --app app init-db
# 2. Développement avec rechargement automatique
# 2. Choisir le mode d'initialisation selon le contexte
uv run flask --app app init-db --mode minimal # Début d'année
uv run flask --app app init-db --mode midyear # Tests avec données complètes
uv run flask --app app init-db --mode demo # Démonstration rapide
# 3. Développement avec rechargement automatique
uv run flask --app app run --debug
# 3. Validation avant commit
# 4. Validation avant commit
uv run pytest
# 4. Analyse des logs en temps réel
# 5. Analyse des logs en temps réel
tail -f logs/notytex.log | jq '.' # Pour formater le JSON
```
@@ -286,9 +326,46 @@ tail -f logs/notytex.log | jq '.' # Pour formater le JSON
}
```
## 🎓 Exemple d'Utilisation Complète
## 🎓 Exemples d'Utilisation Complète
### 📝 Scénario : Création et Correction d'une Évaluation
### 🌱 **Scénario Début d'Année** - Mode Minimal
```bash
# Initialisation pour démarrer l'année scolaire
uv run flask --app app init-db --mode minimal
```
**Étapes typiques :**
1. **Configuration initiale** : Année scolaire 2025-2026 automatiquement définie
2. **Création des classes** : Ajouter manuellement 6ème A, 5ème B, etc.
3. **Import des élèves** : Saisir ou importer les listes d'élèves réelles
4. **Première évaluation** : Créer le premier contrôle de l'année
### 📚 **Scénario Milieu d'Année** - Mode Données Complètes
```bash
# Initialisation avec données réalistes de milieu d'année
uv run flask --app app init-db --mode midyear
```
**Contenu automatiquement généré :**
- **Classes** : 6ème A (28 élèves), 6ème B (25 élèves), 5ème A (30 élèves), 5ème B (27 élèves), 4ème A (32 élèves)
- **Évaluations Trimestre 1** (100% corrigées) :
- Contrôle Nombres entiers (coefficient 2.0)
- Évaluation Géométrie (coefficient 2.5)
- Contrôle Fractions (coefficient 3.0)
- Devoir Maison Recherche (coefficient 1.5)
- **Évaluations Trimestre 2** (partiellement corrigées) :
- Contrôle Proportionnalité (coefficient 2.5)
- Évaluation Statistiques (coefficient 2.0)
**Utilisation immédiate :**
1. **Dashboard** : Aperçu des 142 élèves, 30 évaluations, 5 classes
2. **Indicateurs de progression** : Visualisation des corrections en cours
3. **Analyse des résultats** : Statistiques et graphiques sur les évaluations terminées
4. **Saisie de notes** : Continuer la correction des évaluations partielles
### 📝 **Scénario Création d'Évaluation** - Workflow Standard
1. **🏗️ Création de l'évaluation**