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

5.5 KiB

📋 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)

  1. Message initial
  2. Infos chat login
  3. Badge non lus
  4. Pull-to-refresh rooms
  5. Pull-to-refresh chat

Phase 3 : Polish (Partiellement complété)

  1. Optimiser cache
  2. Optimiser polling
  3. Indicateurs chargement
  4. Auto-refresh

Phase 4 : Documentation

  1. 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

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