# Changelog Tous les changements notables de ce projet seront documentés dans ce fichier. Le format est basé sur [Keep a Changelog](https://keepachangelog.com/fr/1.0.0/), et ce projet adhère au [Semantic Versioning](https://semver.org/lang/fr/). ## [Non publié] ### À venir - Intégration biométrique (Touch ID / Face ID) - Mode hors ligne complet - Synchronisation background - Notifications push Firebase - Export multi-format (PDF, Excel, CSV) --- ## [1.0.0] - 2026-03-15 ### 🎉 Release Initiale - Production Ready #### Ajouté ##### Fonctionnalités Principales - **Dashboard Temps Réel** avec WebSocket pour mises à jour instantanées - **Gestion Membres** avec KYC/LCB-FT complet - **Mutuelles Épargne & Crédit** conformes à la réglementation anti-blanchiment - **Gestion Événements** avec inscriptions et paiements en ligne - **Système de Solidarité** avec demandes et propositions d'aide - **Gestion Organisations** multi-niveaux (clubs, unions, district) - **Notifications** en temps réel via WebSocket - **Rapports & Export** PDF/Excel/CSV - **Administration** pour super admins et admins organisation ##### Authentification & Sécurité - Authentification OAuth 2.0 / OIDC avec Keycloak - JWT validation avec auto-refresh token - Stockage sécurisé (FlutterSecureStorage) avec encryption AES-256 (Android) et Keychain (iOS) - Verrouillage global pour refresh token (évite appels concurrents) - HTTPS/WSS obligatoire en production - ProGuard/R8 obfuscation activée - Network security config (cleartext désactivé) - Logging conditionnel par environnement (désactivé en prod) - Conforme OWASP Mobile Top 10 ##### Performance - Cache multi-niveaux (L1: mémoire, L2: disque) - TTL configurables par type de données (1min - 1h) - Cache-aside pattern avec `CachedDatasourceDecorator` - Pagination backend + mobile (20 items/page) - Debounce recherche (300ms) - Lazy loading avec `ListView.builder` - Cached network images - Const constructors partout - Chargement parallèle avec `Future.wait` - **Résultat**: <1s chargement (avec cache), 60fps scroll 1000+ items ##### WebSocket & Temps Réel - WebSocket service avec reconnexion automatique (exponentielle 2^n, max 60s) - Heartbeat 30s pour détecter connexions mortes - Events typés: `DashboardStatsEvent`, `NotificationEvent`, `MemberEvent`, etc. - Intégration BLoC avec auto-refresh depuis WebSocket events - Cleanup automatique des subscriptions dans `BLoC.close()` ##### LCB-FT (Anti-Blanchiment) - Validation seuils automatique (≤500k FCFA sans justificatif) - Upload pièces justificatives (JPEG, PNG, PDF < 5MB) - Hash MD5 + SHA256 pour intégrité fichiers - Validation origine fonds obligatoire - KYC membre: niveau vigilance, statut, date vérification - Alertes LCB-FT automatiques (backend) - Génération rapports pour conformité ##### Architecture - Clean Architecture (Domain, Data, Presentation) - BLoC pattern pour gestion d'état - Injection de dépendances (get_it + injectable) - Repository pattern - Use Cases isolés - Separation of Concerns strict - 100% testable ##### Documentation - README.md complet avec installation, build, déploiement - ARCHITECTURE.md détaillé (Clean + BLoC) - SECURITE_PRODUCTION.md (mesures de sécurité complètes) - OPTIMISATIONS_PERFORMANCE.md (cache, optimisations) - CONTRIBUTING.md (guide de contribution) - CHANGELOG.md (ce fichier) ##### DevOps - Scripts de build Android (APK, AAB) - Scripts de build iOS (IPA) - Configuration environnements (dev, staging, prod) - Gestion environment variables via `--dart-define` - CI/CD ready (configurations pour GitHub Actions / GitLab CI) #### Modifié - Mise à niveau Flutter de 3.0.0 vers 3.5.3 - Migration vers null-safety complete - Refactoring complet injection de dépendances (get_it) - Amélioration gestion erreurs réseau - Optimisation rebuild widgets (const, keys, builders) #### Corrigé - Fuite mémoire dans `DashboardBloc` (subscription WebSocket non annulée) - Crash lors du scroll rapide dans liste membres (lazy loading) - Bug refresh token concurrent (ajout verrouillage global) - Problème de navigation après logout (clear stack) - Erreur parsing JSON pour dates nullable - Timeout HTTP lors de gros uploads (augmentation à 15s) - Cache expiré non nettoyé automatiquement (ajout `cleanupExpired()`) #### Sécurité - **CRITICAL**: Fix injection potentielle dans recherche membres (paramètres échappés) - **HIGH**: Désactivation logs en production (fuite d'informations) - **HIGH**: Activation obfuscation ProGuard (reverse engineering) - **MEDIUM**: Ajout timeouts HTTP (DoS protection) - **MEDIUM**: Validation MIME type upload fichiers (malware upload) - **LOW**: Désactivation backup Android (extraction données) #### Dépendances - **Ajouté**: `cached_network_image: ^3.4.1` (cache images) - **Ajouté**: `web_socket_channel: ^3.0.1` (WebSocket) - **Ajouté**: `flutter_secure_storage: ^9.2.2` (stockage sécurisé) - **Ajouté**: `jwt_decoder: ^2.0.1` (validation JWT) - **Ajouté**: `injectable: ^2.4.4` (code generation DI) - **Ajouté**: `shimmer: ^3.0.0` (loading placeholders) - **Mis à jour**: `flutter_bloc: 7.0.0 → 8.1.6` - **Mis à jour**: `dio: 4.0.0 → 5.7.0` - **Mis à jour**: `get_it: 7.2.0 → 7.7.0` - **Supprimé**: `provider` (migration complète vers BLoC) #### Performance - Réduction temps chargement dashboard: **4s → <1s** (avec cache) - Amélioration scroll: **30-40fps → 60fps** (1000+ items) - Réduction taille APK release: **25MB → 18MB** (shrink resources) - Réduction consommation RAM: **250MB → 180MB** (cache optimisé) #### Tests - Ajout tests unitaires Domain layer (80% coverage) - Ajout tests BLoC (70% coverage) - Ajout tests intégration API (mocks) - Ajout tests widgets critiques - **Total coverage**: 75% --- ## [0.5.0] - 2025-12-20 (Beta) ### Ajouté - Feature Mutuelles Épargne & Crédit - Feature Solidarité (demandes aide) - Feature Rapports avec export PDF - Dashboard avec graphiques (fl_chart) ### Modifié - Refactoring architecture vers Clean Architecture - Migration BLoC depuis Provider - Amélioration UI/UX ### Corrigé - Divers bugs de stabilité - Problèmes de performance --- ## [0.3.0] - 2025-10-15 (Alpha) ### Ajouté - Feature Gestion Membres (CRUD) - Feature Gestion Événements - Feature Notifications basiques - Authentification Keycloak ### Connu - Performance dégradée avec >500 membres - Pas de gestion hors ligne - WebSocket non implémenté --- ## [0.1.0] - 2025-08-01 (POC) ### Ajouté - Proof of Concept initial - Login/Logout basique - Liste membres simple - Architecture initiale --- ## Types de Changements - `Ajouté` - Pour les nouvelles fonctionnalités - `Modifié` - Pour les changements dans les fonctionnalités existantes - `Déprécié` - Pour les fonctionnalités bientôt supprimées - `Supprimé` - Pour les fonctionnalités supprimées - `Corrigé` - Pour les corrections de bugs - `Sécurité` - Pour les vulnérabilités corrigées --- ## Versioning Nous suivons [Semantic Versioning](https://semver.org/): - **MAJOR** (X.0.0): Changements incompatibles avec versions précédentes - **MINOR** (0.X.0): Nouvelles fonctionnalités rétrocompatibles - **PATCH** (0.0.X): Corrections de bugs rétrocompatibles --- ## Liens - [Repository Git](https://git.lions.dev/lionsdev/unionflow-mobile-apps) - [Documentation](https://git.lions.dev/lionsdev/unionflow-mobile-apps/docs) - [Issues](https://git.lions.dev/lionsdev/unionflow-mobile-apps/issues) --- *Maintenu par l'équipe UnionFlow Development Team - Lions Club Côte d'Ivoire*