Files
unionflow-server-api/ROADMAP_FINALISATION_UNIONFLOW.md
dahoud 4b84ce3bc0 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
2025-12-03 20:39:34 +00:00

395 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🎯 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