✨ Nouvelles fonctionnalités: - Ajout du mode terrain pour utilisation mobile hors connexion - Génération automatique de reçus PDF avec template personnalisé - Révision complète du système de cartes avec amélioration des performances 🔧 Améliorations techniques: - Refactoring du module chat avec architecture simplifiée - Optimisation du système de sécurité NIST SP 800-63B - Amélioration de la gestion des secteurs géographiques - Support UTF-8 étendu pour les noms d'utilisateurs 📱 Application mobile: - Nouveau mode terrain dans user_field_mode_page - Interface utilisateur adaptative pour conditions difficiles - Synchronisation offline améliorée 🗺️ Cartographie: - Optimisation des performances MapBox - Meilleure gestion des tuiles hors ligne - Amélioration de l'affichage des secteurs 📄 Documentation: - Ajout guide Android (ANDROID-GUIDE.md) - Documentation sécurité API (API-SECURITY.md) - Guide module chat (CHAT_MODULE.md) 🐛 Corrections: - Résolution des erreurs 400 lors de la création d'utilisateurs - Correction de la validation des noms d'utilisateurs - Fix des problèmes de synchronisation chat 🤖 Generated with Claude Code (https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
170 lines
5.5 KiB
Markdown
170 lines
5.5 KiB
Markdown
# 📋 TODO List - Module Chat v1.0.0
|
|
|
|
## 🎯 Objectif
|
|
Aligner le module chat avec l'API backend et optimiser l'expérience utilisateur.
|
|
|
|
## 📊 État d'avancement global : 8/13 (62%)
|
|
|
|
---
|
|
|
|
## 🔴 PRIORITÉ HAUTE - Fonctionnalités essentielles
|
|
|
|
### 1. ✅ Pagination des messages
|
|
- **Description** : Implémenter la pagination avec limit=50 et paramètre `before`
|
|
- **Endpoint** : `GET /api/chat/rooms/{id}/messages?limit=50&before={message_id}`
|
|
- **Fichiers** : `chat_service.dart`, `chat_page.dart`
|
|
- **Statut** : ✅ COMPLÉTÉ
|
|
|
|
### 2. ✅ Chargement progressif
|
|
- **Description** : Ajouter bouton "Charger plus" en haut de la conversation
|
|
- **UI** : Bouton ou indicateur en haut de la liste des messages
|
|
- **Fichiers** : `chat_page.dart`
|
|
- **Statut** : ✅ COMPLÉTÉ
|
|
|
|
### 3. ✅ Gestion du flag has_more
|
|
- **Description** : Gérer la réponse API pour savoir s'il reste des messages
|
|
- **Logique** : Désactiver "Charger plus" si `has_more: false`
|
|
- **Fichiers** : `message.dart`, `chat_service.dart`
|
|
- **Statut** : ✅ COMPLÉTÉ
|
|
|
|
---
|
|
|
|
## 🟠 PRIORITÉ MOYENNE - Amélioration UX
|
|
|
|
### 4. ✅ Message initial à la création
|
|
- **Description** : Ajouter `initial_message` lors de la création d'une room
|
|
- **Endpoint** : `POST /api/chat/rooms` avec body `{..., "initial_message": "..."}`
|
|
- **Fichiers** : `chat_service.dart`, `recipient_selector.dart`
|
|
- **Statut** : ✅ COMPLÉTÉ
|
|
|
|
### 5. ⬜ Extraction infos chat du login
|
|
- **Description** : Récupérer `total_rooms`, `unread_messages` depuis la réponse login
|
|
- **Intégration** : Stocker dans Hive ou service global
|
|
- **Fichiers** : `user_repository.dart`, `chat_service.dart`
|
|
- **Temps estimé** : 20 min
|
|
|
|
### 6. ⬜ Badge messages non lus
|
|
- **Description** : Afficher un badge rouge avec le nombre sur l'icône chat
|
|
- **UI** : Badge sur NavigationDestination et dans la sidebar
|
|
- **Fichiers** : `responsive_navigation.dart`, `admin_dashboard_page.dart`
|
|
- **Temps estimé** : 15 min
|
|
|
|
### 7. ✅ Pull-to-refresh RoomsPage
|
|
- **Description** : Ajouter RefreshIndicator pour rafraîchir la liste des rooms
|
|
- **Geste** : Tirer vers le bas pour recharger
|
|
- **Fichiers** : `rooms_page.dart`
|
|
- **Statut** : ✅ COMPLÉTÉ (déjà implémenté)
|
|
|
|
### 8. ✅ Pull-to-refresh ChatPage
|
|
- **Description** : Ajouter RefreshIndicator pour rafraîchir les messages
|
|
- **Geste** : Tirer vers le bas pour recharger les derniers messages
|
|
- **Fichiers** : `chat_page.dart`
|
|
- **Statut** : ✅ COMPLÉTÉ
|
|
|
|
---
|
|
|
|
## 🟡 PRIORITÉ BASSE - Optimisations
|
|
|
|
### 9. ✅ Optimiser cache Hive
|
|
- **Description** : Limiter à 100 messages max par room dans le cache
|
|
- **Logique** : Supprimer les plus anciens si > 100
|
|
- **Fichiers** : `chat_service.dart`
|
|
- **Statut** : ✅ COMPLÉTÉ
|
|
|
|
### 10. ⬜ Optimiser le polling
|
|
- **Description** : Polling actif seulement si la page chat est visible
|
|
- **Optimisation** : Pause/reprise selon WidgetsBindingObserver
|
|
- **Fichiers** : `chat_service.dart`, `rooms_page.dart`
|
|
- **Temps estimé** : 15 min
|
|
|
|
### 11. ✅ Indicateurs de chargement
|
|
- **Description** : Ajouter spinners lors du chargement de la pagination
|
|
- **UI** : CircularProgressIndicator pendant les requêtes
|
|
- **Fichiers** : `chat_page.dart`
|
|
- **Statut** : ✅ COMPLÉTÉ
|
|
|
|
### 12. ⬜ Auto-refresh au retour
|
|
- **Description** : Rafraîchir quand l'app revient au premier plan
|
|
- **Implémentation** : WidgetsBindingObserver avec AppLifecycleState
|
|
- **Fichiers** : `chat_module.dart`, `rooms_page.dart`
|
|
- **Temps estimé** : 10 min
|
|
|
|
---
|
|
|
|
## 📚 DOCUMENTATION
|
|
|
|
### 13. ⬜ Mettre à jour README.md
|
|
- **Description** : Documenter toutes les nouvelles fonctionnalités
|
|
- **Sections** : Pagination, pull-to-refresh, badges, optimisations
|
|
- **Fichiers** : `README.md`
|
|
- **Temps estimé** : 15 min
|
|
|
|
---
|
|
|
|
## ⏱️ Temps total restant : ~1h
|
|
|
|
## 🚀 Ordre de développement recommandé
|
|
|
|
### Phase 1 : Core ✅ COMPLÉTÉ
|
|
1. Pagination des messages ✅
|
|
2. Chargement progressif ✅
|
|
3. Gestion has_more ✅
|
|
|
|
### Phase 2 : Intégration (En cours)
|
|
4. Message initial ✅
|
|
5. Infos chat login ⬜
|
|
6. Badge non lus ⬜
|
|
7. Pull-to-refresh rooms ✅
|
|
8. Pull-to-refresh chat ✅
|
|
|
|
### Phase 3 : Polish (Partiellement complété)
|
|
9. Optimiser cache ✅
|
|
10. Optimiser polling ⬜
|
|
11. Indicateurs chargement ✅
|
|
12. Auto-refresh ⬜
|
|
|
|
### Phase 4 : Documentation
|
|
13. README.md ⬜
|
|
|
|
---
|
|
|
|
## 📝 Notes
|
|
|
|
- **Version actuelle** : 1.0.0
|
|
- **Date de création** : 2025-01-17
|
|
- **Dernière mise à jour** : 2025-01-17
|
|
- **Développeur** : Module Chat Team
|
|
|
|
## 🔗 Références
|
|
|
|
- [API Documentation](../../../docs/API_CHAT.md)
|
|
- [Architecture Flutter](../README.md)
|
|
- [Permissions YAML](../chat_config.yaml)
|
|
|
|
## ✨ Améliorations implémentées
|
|
|
|
### Pagination
|
|
- Limite de 50 messages par requête
|
|
- Paramètre `before` pour charger les messages plus anciens
|
|
- Gestion du flag `has_more` pour indiquer s'il reste des messages
|
|
- Bouton "Charger plus" en haut de la conversation
|
|
|
|
### Optimisations cache
|
|
- Limitation à 100 messages maximum par room dans Hive
|
|
- Suppression automatique des messages les plus anciens
|
|
- Méthode `_saveMessagesToCache` dédiée
|
|
|
|
### Message initial
|
|
- Champ de texte ajouté dans le dialog de sélection des destinataires
|
|
- Paramètre `initial_message` dans les méthodes de création de room
|
|
- Support dans l'API pour envoyer le message initial
|
|
|
|
### Pull-to-refresh
|
|
- RefreshIndicator dans RoomsPage (déjà existant)
|
|
- RefreshIndicator dans ChatPage pour rafraîchir les messages
|
|
- Rechargement complet des messages récents
|
|
|
|
### Indicateurs de chargement
|
|
- Spinner pendant le chargement de la pagination
|
|
- État `_isLoadingMore` pour gérer l'affichage
|
|
- CircularProgressIndicator de taille réduite |