feat: Implémentation des TODOs critiques et suppression données fictives

- Implémentation des 3 TODOs dans DemandesAideBean.java:
  * voirDetails(): Dialogue de détails avec gestion de l'état
  * getChartModelType/Statut(): Documentation sur l'utilisation de JS externe
  * initializeEtapesWorkflow(): Calcul dynamique depuis données backend

- Implémentation des 2 TODOs dans RapportDetailsBean.java:
  * telechargerRapport(): Validation statut + gestion téléchargement
  * regenererRapport(): Régénération avec mise à jour statut

- Implémentation du TODO dans ConfigurationBean.java:
  * chargerSauvegardes(): Préparé pour service backend (pas de données fictives)

- Suppression des données fictives:
  * ConfigurationBean: Sauvegardes ne sont plus générées fictivement
  * DemandesAideBean: Étapes workflow calculées depuis backend réel

Compilation réussie sans erreurs
This commit is contained in:
dahoud
2025-12-03 20:39:34 +00:00
parent e92acf44e6
commit 4b84ce3bc0
96 changed files with 4708 additions and 533 deletions

View File

@@ -0,0 +1,394 @@
# 🎯 ROADMAP DE FINALISATION - UNIONFLOW
**Date** : 2025-01-30
**Version** : 1.0
**Objectif** : Terminer intégralement le développement d'UnionFlow
---
## 📊 ÉTAT ACTUEL DU PROJET
### ✅ Modules Complétés
| Module | Fichiers | Statut | % |
|--------|----------|--------|---|
| **Server API** | DTOs, Enums | ✅ Complet | 100% |
| **Server Impl - Services** | 25 services | ✅ Complet | 100% |
| **Server Impl - Resources** | 18 resources | ✅ Complet | 100% |
| **Server Impl - Entities** | Toutes entités | ✅ Complet | 100% |
| **Server Impl - Repositories** | Tous repositories | ✅ Complet | 100% |
| **Client - Beans** | 36 beans | 🔄 Partiel | 70% |
| **Client - Pages XHTML** | 72 pages | 🔄 Partiel | 60% |
| **Client - Composants** | Composants réutilisables | ✅ Complet | 100% |
| **Configuration** | faces-config.xml, web.xml | ✅ Complet | 100% |
| **Tests** | Tests unitaires/intégration | ❌ Manquant | 5% |
| **Documentation** | Documentation technique | 🔄 Partiel | 40% |
---
## 🚨 PRIORITÉ 1 - CRITIQUE (À FAIRE IMMÉDIATEMENT)
### 1.1 Résolution des TODOs (215 occurrences)
#### TODOs dans Beans Client (8 fichiers)
- [ ] **MembreListeBean.java** (8 TODOs)
- [ ] Implémenter récupération des organisations
- [ ] Implémenter complétion des villes depuis serveur
- [ ] Implémenter complétion des professions depuis serveur
- [ ] Implémenter ouverture dialogue de contact
- [ ] Implémenter envoi de rappels groupés
- [ ] Implémenter export de la sélection
- [ ] Implémenter envoi de messages groupés
- [ ] Mettre à jour liste.xhtml pour utiliser organisationsDisponibles
- [ ] **MembreDTO.java** (4 TODOs)
- [ ] Intégrer avec module Cotisations (statut cotisation)
- [ ] Intégrer avec module Cotisations (montant dû)
- [ ] Intégrer avec module Événements (événements participés)
- [ ] Intégrer avec module Événements (événements organisés)
#### TODOs dans Mobile Apps (Flutter)
- [ ] **super_admin_dashboard.dart** (8 TODOs)
- [ ] **dashboard_offline_service.dart** (5 TODOs)
- [ ] **advanced_dashboard_page.dart** (3 TODOs)
- [ ] **Tests** (20+ TODOs)
**Action** : Créer un plan de résolution pour chaque TODO avec priorité
---
### 1.2 Pages XHTML Manquantes ou Incomplètes
#### Pages Référencées dans faces-config.xml mais Manquantes
- [ ] `/pages/secure/membre/modifier.xhtml` (supprimée, doit être recréée ou réutiliser inscription.xhtml)
- [ ] `/pages/secure/cotisations.xhtml` (référencée dans MembreListeBean)
- [ ] `/pages/secure/membre/cotisations.xhtml` (référencée dans MembreProfilBean)
- [ ] `/pages/secure/rapport/details.xhtml` (référencée dans RapportsBean)
#### Pages Existantes mais Potentiellement Incomplètes
- [ ] Vérifier toutes les pages `aide/*.xhtml` (15 pages)
- [ ] Vérifier toutes les pages `admin/*.xhtml` (5 pages)
- [ ] Vérifier toutes les pages `adhesion/*.xhtml` (8 pages)
- [ ] Vérifier toutes les pages `cotisation/*.xhtml` (7 pages)
- [ ] Vérifier toutes les pages `evenement/*.xhtml` (10 pages)
- [ ] Vérifier toutes les pages `personnel/*.xhtml` (8 pages)
- [ ] Vérifier toutes les pages `rapport/*.xhtml` (4 pages)
**Action** : Audit de chaque page pour vérifier :
- Bean associé existe et est injecté
- Composants réutilisables utilisés (DRY/WOU)
- Navigation outcomes utilisés au lieu de chemins directs
- Validation des formulaires
- Gestion des erreurs
---
### 1.3 Beans Manquants ou Incomplets
#### Beans Manquants pour Pages Existantes
- [ ] **MembreModifierBean** (si page modifier.xhtml recréée)
- [ ] **CotisationsBean** (pour page cotisations.xhtml)
- [ ] **RapportDetailsBean** (pour page rapport/details.xhtml)
- [ ] **AideTraitementBean** (pour aide/traitement.xhtml)
- [ ] **AideStatistiquesBean** (pour aide/statistiques.xhtml)
- [ ] **AideTicketsBean** (pour aide/tickets.xhtml)
- [ ] **AideSupportBean** (pour aide/support.xhtml)
- [ ] **AideRequestsBean** (pour aide/requests.xhtml)
- [ ] **AideNouveautesBean** (pour aide/nouveautes.xhtml)
- [ ] **AideApprovedBean** (pour aide/approved.xhtml)
- [ ] **AideAproposBean** (pour aide/apropos.xhtml)
- [ ] **AideSuggestionsBean** (pour aide/suggestions.xhtml)
- [ ] **AideHistoryBean** (pour aide/history.xhtml)
- [ ] **AideHistoriqueBean** (pour aide/historique.xhtml)
- [ ] **AdminSauvegardeBean** (pour admin/sauvegarde.xhtml)
- [ ] **AdhesionHistoryBean** (pour adhesion/history.xhtml)
- [ ] **CotisationRemindersBean** (pour cotisation/reminders.xhtml)
- [ ] **CotisationReportBean** (pour cotisation/report.xhtml)
- [ ] **EvenementCreateBean** (pour evenement/create.xhtml - différente de creation.xhtml?)
- [ ] **EvenementCalendarBean** (pour evenement/calendar.xhtml - différente de calendrier.xhtml?)
- [ ] **EvenementParticipationBean** (pour evenement/participation.xhtml)
- [ ] **EvenementParticipantsBean** (pour evenement/participants.xhtml)
#### Beans Existants à Compléter
- [ ] **MembreListeBean** : Compléter méthodes TODO
- [ ] **MembreInscriptionBean** : Vérifier validation complète
- [ ] **OrganisationsBean** : Vérifier toutes fonctionnalités
- [ ] **EvenementsBean** : Vérifier gestion complète événements
- [ ] **CotisationsGestionBean** : Vérifier toutes fonctionnalités
- [ ] **DashboardBean** : Vérifier toutes statistiques
- [ ] **RapportsBean** : Compléter génération rapports
**Action** : Créer les beans manquants et compléter les existants
---
### 1.4 Navigation Outcomes dans Beans
#### Migration des Chemins Directs vers Navigation Outcomes
**Problème** : Les beans retournent des chemins directs au lieu d'utiliser les navigation outcomes définis dans `faces-config.xml`
**Exemples à Corriger** :
- [ ] `MembreListeBean.modifierMembre()` : `return "/pages/secure/membre/modifier?id=..."``return "membreModifierPage?id=..."`
- [ ] `MembreListeBean.voirProfil()` : `return "/pages/secure/membre/profil?id=..."``return "membreProfilPage?id=..."`
- [ ] `MembreInscriptionBean.enregistrer()` : `return "/pages/secure/membre/liste?faces-redirect=true"``return "membreListPage?faces-redirect=true"`
- [ ] `DashboardBean.*()` : Tous les retours de navigation
- [ ] `MembreProfilBean.*()` : Tous les retours de navigation
- [ ] Tous les autres beans (36 beans à vérifier)
**Action** :
1. Ajouter constantes `OUTCOME` dans chaque bean (comme CEADP)
2. Modifier toutes les méthodes pour retourner ces constantes
3. Mettre à jour `faces-config.xml` si nécessaire
---
## ⚠️ PRIORITÉ 2 - IMPORTANT (À FAIRE AVANT PRODUCTION)
### 2.1 Tests
#### Tests Unitaires Manquants
- [ ] **Services** (25 services × ~5 tests = 125 tests)
- [ ] MembreServiceTest
- [ ] OrganisationServiceTest
- [ ] EvenementServiceTest
- [ ] CotisationServiceTest
- [ ] AdhesionServiceTest
- [ ] DemandeAideServiceTest
- [ ] PaiementServiceTest
- [ ] DocumentServiceTest
- [ ] NotificationServiceTest
- [ ] WaveServiceTest
- [ ] ComptabiliteServiceTest
- [ ] RoleServiceTest
- [ ] PermissionServiceTest
- [ ] AuditServiceTest
- [ ] ExportServiceTest
- [ ] AnalyticsServiceTest
- [ ] KPICalculatorServiceTest
- [ ] TrendAnalysisServiceTest
- [ ] MatchingServiceTest
- [ ] PreferencesNotificationServiceTest
- [ ] NotificationHistoryServiceTest
- [ ] KeycloakServiceTest
- [ ] AdresseServiceTest
- [ ] TypeOrganisationServiceTest
- [ ] PropositionAideServiceTest
- [ ] **Repositories** (Tous repositories)
- [ ] Tests de base CRUD
- [ ] Tests de recherche
- [ ] Tests de filtres
- [ ] **Mappers** (DTO ↔ Entity)
- [ ] Tests de conversion
- [ ] Tests de validation
#### Tests d'Intégration Manquants
- [ ] **Resources REST** (18 resources)
- [ ] Tests avec Testcontainers
- [ ] Tests de sécurité (@RolesAllowed)
- [ ] Tests de validation
- [ ] Tests de pagination
- [ ] Tests de recherche
- [ ] **Beans JSF** (36 beans)
- [ ] Tests de méthodes principales
- [ ] Tests de validation
- [ ] Tests de navigation
#### Tests End-to-End
- [ ] Scénarios complets utilisateur
- [ ] Tests de performance
- [ ] Tests de charge
**Objectif** : Couverture de code minimum 80%
---
### 2.2 Validation et Gestion d'Erreurs
#### Validation Côté Client
- [ ] Ajouter validation JSF sur tous les formulaires
- [ ] Messages d'erreur personnalisés
- [ ] Validation en temps réel (AJAX)
- [ ] Validation côté serveur (Bean Validation)
#### Gestion d'Erreurs
- [ ] Exception handlers globaux
- [ ] Messages d'erreur utilisateur-friendly
- [ ] Logging des erreurs
- [ ] Gestion des erreurs REST (RestClientExceptionMapper)
---
### 2.3 Sécurité
#### Authentification et Autorisation
- [ ] Vérifier tous les `@RolesAllowed` sur Resources
- [ ] Vérifier sécurité des Beans JSF
- [ ] Tests de sécurité
- [ ] Gestion des sessions
- [ ] Timeout de session
#### Protection des Données
- [ ] Chiffrement des données sensibles
- [ ] Validation des entrées (XSS, SQL Injection)
- [ ] CSRF protection
- [ ] Audit de sécurité
---
## 📋 PRIORITÉ 3 - AMÉLIORATION (OPTIMISATION)
### 3.1 Performance
#### Optimisations Base de Données
- [ ] Index sur colonnes fréquemment recherchées
- [ ] Requêtes optimisées (N+1 queries)
- [ ] Cache (Caffeine, Redis)
- [ ] Pagination efficace
#### Optimisations Frontend
- [ ] Lazy loading des composants
- [ ] Optimisation des requêtes AJAX
- [ ] Cache côté client
- [ ] Compression des ressources
---
### 3.2 Expérience Utilisateur
#### Améliorations UI/UX
- [ ] Feedback utilisateur (loading, success, error)
- [ ] Confirmations pour actions critiques
- [ ] Tooltips et help text
- [ ] Responsive design complet
- [ ] Accessibilité (WCAG)
#### Fonctionnalités Avancées
- [ ] Recherche avancée avec filtres
- [ ] Export Excel/PDF amélioré
- [ ] Import de données (Excel, CSV)
- [ ] Notifications en temps réel
- [ ] Dashboard personnalisable
---
### 3.3 Documentation
#### Documentation Technique
- [ ] Documentation API (OpenAPI/Swagger complète)
- [ ] Documentation des services
- [ ] Guide de développement
- [ ] Architecture documentation
- [ ] Guide de déploiement
#### Documentation Utilisateur
- [ ] Guide utilisateur
- [ ] Tutoriels vidéo
- [ ] FAQ
- [ ] Changelog
---
## 🔧 PRIORITÉ 4 - MAINTENANCE (POST-PRODUCTION)
### 4.1 Monitoring et Observabilité
- [ ] Métriques Prometheus
- [ ] Logs centralisés (ELK Stack)
- [ ] Alertes
- [ ] Health checks
- [ ] Performance monitoring
### 4.2 CI/CD
- [ ] Pipeline CI complet
- [ ] Tests automatiques
- [ ] Déploiement automatique
- [ ] Rollback automatique
- [ ] Environnements (dev, staging, prod)
### 4.3 Backup et Récupération
- [ ] Stratégie de backup
- [ ] Tests de restauration
- [ ] Plan de reprise d'activité
- [ ] Documentation de récupération
---
## 📊 ESTIMATION TEMPORELLE
| Priorité | Tâches | Estimation | Statut |
|----------|--------|------------|--------|
| **P1 - Critique** | TODOs, Pages, Beans, Navigation | 2-3 semaines | 🔴 Urgent |
| **P2 - Important** | Tests, Validation, Sécurité | 3-4 semaines | ⚠️ Important |
| **P3 - Amélioration** | Performance, UX, Documentation | 2-3 semaines | 🟡 Optionnel |
| **P4 - Maintenance** | Monitoring, CI/CD, Backup | 1-2 semaines | 🟢 Post-prod |
| **TOTAL** | | **8-12 semaines** | |
---
## 🎯 PLAN D'ACTION RECOMMANDÉ
### Semaine 1-2 : P1 - Critique
1. Résoudre tous les TODOs critiques
2. Créer les beans manquants
3. Vérifier/compléter toutes les pages XHTML
4. Migrer navigation vers outcomes
### Semaine 3-4 : P1 - Critique (suite)
1. Tests de base pour services critiques
2. Validation des formulaires
3. Gestion d'erreurs
### Semaine 5-7 : P2 - Important
1. Tests unitaires complets
2. Tests d'intégration
3. Sécurité
### Semaine 8-9 : P2 - Important (suite)
1. Tests E2E
2. Performance
3. Documentation technique
### Semaine 10-12 : P3 - Amélioration
1. Optimisations
2. UX improvements
3. Documentation utilisateur
---
## ✅ CHECKLIST DE FINALISATION
### Avant Production
- [ ] Tous les TODOs résolus
- [ ] Toutes les pages fonctionnelles
- [ ] Tous les beans créés et testés
- [ ] Navigation outcomes utilisés partout
- [ ] Tests unitaires > 80% couverture
- [ ] Tests d'intégration complets
- [ ] Sécurité validée
- [ ] Performance acceptable
- [ ] Documentation complète
- [ ] CI/CD configuré
- [ ] Monitoring en place
- [ ] Backup configuré
---
## 📝 NOTES
- **DRY/WOU** : Continuer à respecter strictement ces principes
- **Composants réutilisables** : Vérifier que tous les composants sont bien réutilisés
- **Navigation** : Aligner sur le pattern CEADP (outcomes dans faces-config.xml)
- **Tests** : Prioriser les tests critiques (services métier, sécurité)
- **Documentation** : Maintenir à jour au fur et à mesure
---
**Dernière mise à jour** : 2025-01-30
**Prochaine révision** : Après chaque sprint