Ajout de deux versions d'icônes SVG pour l'application :
- icon.svg : Icône standard de l'application
- icon_improved.svg : Version améliorée de l'icône
Ces icônes seront utilisées pour le branding de l'application
et les différentes tailles d'affichage.
Refactorisation complète du parcours d'inscription des parents pour utiliser
Provider au lieu du passage de données par paramètres de navigation.
Modifications principales :
- Utilisation de Provider pour partager UserRegistrationData entre les étapes
- Simplification du routeur (suppression des paramètres)
- Amélioration de la persistance des données entre les étapes
- Meilleure expérience utilisateur lors de la navigation
Fichiers modifiés :
- models/user_registration_data.dart : Modèle avec ChangeNotifier
- screens/auth/parent_register_step1-5_screen.dart : Intégration Provider
- navigation/app_router.dart : Simplification du routing
- main.dart : Configuration du Provider
- login_screen.dart : Ajout navigation vers inscription
- register_choice_screen.dart : Navigation vers parcours parent/AM
- utils/data_generator.dart : Génération de données de test
Refs: #38 (Étape 3 Enfants), #39 (Étapes 4-6 Finalisation)
Frontend Step2:
- Suppression des champs mot de passe et confirmation
- Correction de l'indicateur d'étape: 2/5 → 2/6
- Améliorations visuelles (mêmes que Step1):
* Taille des labels: 18 → 22px
* Taille de police des champs: 18 → 20px
* Espacement entre champs: 20 → 32px
* Meilleure répartition verticale avec spaceEvenly
Note: Le champ password est conservé dans le modèle ParentData pour compatibilité
Backend:
- Retrait des champs non-CDC: profession, situation_familiale, date_naissance
- Nettoyage des DTOs RegisterParentCompletDto et RegisterParentDto
- Mise à jour de la logique dans auth.service.ts (inscrireParentComplet et legacy)
Frontend Step1:
- Suppression des champs mot de passe et confirmation
- Correction de l'indicateur d'étape: 1/5 → 1/6
- Améliorations visuelles:
* Taille des labels: 18 → 22px
* Taille de police des champs: 18 → 20px
* Espacement entre champs: 20 → 32px
* Meilleure répartition verticale avec spaceEvenly
Note: Le champ password est conservé dans le modèle ParentData pour compatibilité avec Step2
- Création DTOs (UploadDocumentDto, DocumentsActifsResponseDto, DocumentVersionDto)
- Création DocumentsLegauxController avec 6 endpoints:
* GET /documents-legaux/actifs (public)
* GET /documents-legaux/:type/versions (admin)
* POST /documents-legaux (upload, admin)
* PATCH /documents-legaux/:id/activer (admin)
* GET /documents-legaux/:id/download (public)
* GET /documents-legaux/:id/verifier-integrite (admin)
- Support upload multipart/form-data avec FileInterceptor
- Validation des types (cgu/privacy)
- Stream PDF pour téléchargement
- Intégration dans DocumentsLegauxModule
- Compilation OK
TODO: Ajouter guards auth (JwtAuthGuard, RolesGuard)
Réf: docs/22_DOCUMENTS-LEGAUX.md
Merge pull request #67: [Backend] API admin configuration avec test SMTP
Implémentation de l'API REST pour la gestion de la configuration système avec test SMTP intégré.
Closes#6
Implémentation de l'API REST pour la gestion de la configuration
système par les administrateurs.
Nouveaux fichiers :
- modules/config/config.controller.ts : Controller REST
- modules/config/dto/update-config.dto.ts : DTO mise à jour
- modules/config/dto/test-smtp.dto.ts : DTO test SMTP
Endpoints créés :
✅ GET /api/v1/configuration/setup/status
→ Vérifier si la configuration initiale est terminée
✅ POST /api/v1/configuration/setup/complete
→ Marquer la configuration comme terminée
✅ POST /api/v1/configuration/test-smtp
→ Tester la connexion SMTP + envoi email de test
✅ PATCH /api/v1/configuration/bulk
→ Mise à jour multiple des configurations
✅ GET /api/v1/configuration
→ Récupérer toutes les configurations (admin)
✅ GET /api/v1/configuration/:category
→ Récupérer par catégorie (email/app/security)
Fonctionnalités :
- Validation des données avec class-validator
- Test SMTP avec Nodemailer
- Envoi d'email de test HTML
- Gestion d'erreurs complète
- Rechargement automatique du cache
- Traçabilité des modifications
Sécurité :
- Guards commentés (à activer avec JWT)
- Validation des catégories
- Mots de passe masqués dans les réponses
Dépendances ajoutées :
- nodemailer ^6.9.16
- @types/nodemailer ^6.4.16
Tests effectués :
✅ GET /setup/status → {setupCompleted: false}
✅ GET /email → 8 configurations email
✅ Build Docker réussi
✅ Toutes les routes mappées correctement
Ref: #6
Merge pull request #66: [Backend] Service de configuration avec cache et encryption
Implémentation du service de configuration dynamique avec cache en mémoire et chiffrement AES-256-CBC.
Closes#5
Implémentation du service de configuration dynamique pour
le déploiement on-premise de l'application.
Nouveaux fichiers :
- entities/configuration.entity.ts : Entité TypeORM
- modules/config/config.service.ts : Service avec cache et encryption
- modules/config/config.module.ts : Module NestJS
- modules/config/index.ts : Export centralisé
Fonctionnalités :
✅ Cache en mémoire au démarrage (16 configurations)
✅ Chiffrement AES-256-CBC pour valeurs sensibles
✅ Conversion automatique de types (string/number/boolean/json)
✅ Méthodes get/set avec traçabilité
✅ Récupération par catégorie (email/app/security)
✅ Masquage automatique des mots de passe
✅ Support setup wizard (isSetupCompleted)
Sécurité :
- Clé de chiffrement depuis CONFIG_ENCRYPTION_KEY
- Format iv:encrypted pour AES-256-CBC
- Mots de passe masqués dans les API
Intégration :
- AppConfigModule ajouté à app.module.ts
- Service global exporté pour utilisation dans toute l'app
- Chargement automatique au démarrage (OnModuleInit)
Tests :
✅ Build Docker réussi
✅ 16 configurations chargées en cache
✅ Service démarré sans erreur
Ref: #5
Merge pull request #65: [BDD] Ajout table configuration système
Ajout de la table configuration pour la gestion dynamique de la configuration on-premise.
Closes#4
Modifications du schéma BDD.sql :
Table utilisateurs :
- password devient NULLABLE (créé après validation via token)
- Ajout token_creation_mdp + token_creation_mdp_expire_le
- telephone unifié (suppression mobile/telephone_fixe)
- Ajout index sur token_creation_mdp
Table assistantes_maternelles :
- date_agrement devient NOT NULL (obligatoire)
- Suppression annee_experience
- Suppression specialite
Table enfants :
- genre devient NOT NULL (obligatoire H/F)
Autres modifications :
- docker-compose.yml : pointage vers BDD.sql unifié
- Suppression des anciens fichiers de migration (01-07)
- Base de données recréée et testée ✅
Ref: #3
- Ajout Cahier des Charges v1.3
- Ajout Workflow technique création de compte (v1.0)
- Réorganisation docs avec préfixes numériques (00_, 01_, etc.)
- Ajout données de test CSV
- Modifications principales :
* Champ téléphone unique (suppression mobile/fixe)
* Inscription sans mot de passe (Parents + AM)
* Création MDP par email après validation (7j)
* Genre enfant obligatoire (H/F)
* Date agrément obligatoire pour AM
- Création du dossier docs/ pour centraliser la documentation
- Ajout de API.md : documentation complète de tous les endpoints
- Ajout de DATABASE.md : schéma complet de la base de données
- Ajout de AUDIT.md : audit du projet YNOV
- Déplacement des README-ARCHITECTURE.md et README-DEPLOYMENT.md vers docs/
- Ajout d'un README.md index dans docs/