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