Files
geo/app/lib/chat/TODO_CHAT.md
Pierre 5ab03751e1 feat: Release version 3.1.4 - Mode terrain et génération PDF
 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>
2025-08-19 19:38:03 +02:00

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