- 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
395 lines
13 KiB
Markdown
395 lines
13 KiB
Markdown
# 🎯 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
|
||
|