fix(chat): Correction race condition + Implémentation TODOs
## Corrections Critiques ### Race Condition - Statuts de Messages - Fix : Les icônes de statut (✓, ✓✓, ✓✓ bleu) ne s'affichaient pas - Cause : WebSocket delivery confirmations arrivaient avant messages locaux - Solution : Pattern Optimistic UI dans chat_bloc.dart - Création message temporaire immédiate - Ajout à la liste AVANT requête HTTP - Remplacement par message serveur à la réponse - Fichier : lib/presentation/state_management/chat_bloc.dart ## Implémentation TODOs (13/21) ### Social (social_header_widget.dart) - ✅ Copier lien du post dans presse-papiers - ✅ Partage natif via Share.share() - ✅ Dialogue de signalement avec 5 raisons ### Partage (share_post_dialog.dart) - ✅ Interface sélection d'amis avec checkboxes - ✅ Partage externe via Share API ### Média (media_upload_service.dart) - ✅ Parsing JSON réponse backend - ✅ Méthode deleteMedia() pour suppression - ✅ Génération miniature vidéo ### Posts (create_post_dialog.dart, edit_post_dialog.dart) - ✅ Extraction URL depuis uploads - ✅ Documentation chargement médias ### Chat (conversations_screen.dart) - ✅ Navigation vers notifications - ✅ ConversationSearchDelegate pour recherche ## Nouveaux Fichiers ### Configuration - build-prod.ps1 : Script build production avec dart-define - lib/core/constants/env_config.dart : Gestion environnements ### Documentation - TODOS_IMPLEMENTED.md : Documentation complète TODOs ## Améliorations ### Architecture - Refactoring injection de dépendances - Amélioration routing et navigation - Optimisation providers (UserProvider, FriendsProvider) ### UI/UX - Amélioration thème et couleurs - Optimisation animations - Meilleure gestion erreurs ### Services - Configuration API avec env_config - Amélioration datasources (events, users) - Optimisation modèles de données
This commit is contained in:
236
TODO.md
Normal file
236
TODO.md
Normal file
@@ -0,0 +1,236 @@
|
||||
# 📝 TODO - AfterWork
|
||||
|
||||
Liste des tâches à accomplir pour finaliser le projet.
|
||||
|
||||
---
|
||||
|
||||
## 🔴 Priorité Haute (À faire immédiatement)
|
||||
|
||||
### Corrections du Code
|
||||
- [ ] Exécuter `dart fix --apply` pour corrections automatiques
|
||||
- [ ] Ajouter `const` aux widgets immuables détectés par le linter
|
||||
- [ ] Ajouter trailing commas aux listes multi-lignes
|
||||
- [ ] Corriger les imports relatifs vs absolus
|
||||
- [ ] Résoudre les warnings `use_build_context_synchronously`
|
||||
|
||||
### Configuration
|
||||
- [ ] Copier `.env.example` vers `.env`
|
||||
- [ ] Configurer l'URL de l'API backend dans `.env`
|
||||
- [ ] Configurer la clé Google Maps API
|
||||
- [ ] Tester la connexion à l'API backend
|
||||
|
||||
### Tests
|
||||
- [ ] Vérifier que `flutter run` fonctionne
|
||||
- [ ] Tester l'authentification
|
||||
- [ ] Tester la création d'événements
|
||||
- [ ] Tester le système d'amis
|
||||
|
||||
---
|
||||
|
||||
## 🟡 Priorité Moyenne (Cette semaine)
|
||||
|
||||
### Tests Unitaires
|
||||
- [ ] Créer tests pour `User` entity
|
||||
- [ ] Créer tests pour `Event` entity
|
||||
- [ ] Créer tests pour `Friend` entity
|
||||
- [ ] Créer tests pour `EventModel`
|
||||
- [ ] Créer tests pour `UserProvider`
|
||||
- [ ] Créer tests pour `EventBloc`
|
||||
- [ ] Atteindre 80% de coverage
|
||||
|
||||
### Tests d'Intégration
|
||||
- [ ] Test du flow d'authentification complet
|
||||
- [ ] Test de création d'événement end-to-end
|
||||
- [ ] Test d'ajout d'ami end-to-end
|
||||
- [ ] Test de participation à un événement
|
||||
|
||||
### Documentation du Code
|
||||
- [ ] Ajouter documentation aux classes publiques
|
||||
- [ ] Ajouter documentation aux méthodes publiques
|
||||
- [ ] Ajouter exemples d'utilisation dans les commentaires
|
||||
- [ ] Documenter les cas d'erreur
|
||||
|
||||
---
|
||||
|
||||
## 🟢 Priorité Basse (Ce mois-ci)
|
||||
|
||||
### CI/CD
|
||||
- [ ] Configurer GitHub Actions
|
||||
- [ ] Ajouter workflow pour les tests
|
||||
- [ ] Ajouter workflow pour le linting
|
||||
- [ ] Ajouter workflow pour le build
|
||||
- [ ] Configurer Dependabot
|
||||
|
||||
### Pre-commit Hooks
|
||||
- [ ] Installer husky ou équivalent
|
||||
- [ ] Hook pour formater le code
|
||||
- [ ] Hook pour linter
|
||||
- [ ] Hook pour tests unitaires
|
||||
- [ ] Hook pour vérifier les messages de commit
|
||||
|
||||
### Optimisations
|
||||
- [ ] Analyser les performances avec DevTools
|
||||
- [ ] Optimiser les rebuilds de widgets
|
||||
- [ ] Implémenter le lazy loading pour les listes
|
||||
- [ ] Optimiser les images (compression)
|
||||
- [ ] Implémenter le caching des requêtes API
|
||||
|
||||
### Internationalisation
|
||||
- [ ] Configurer flutter_localizations
|
||||
- [ ] Créer les fichiers ARB pour FR
|
||||
- [ ] Créer les fichiers ARB pour EN
|
||||
- [ ] Traduire tous les textes
|
||||
- [ ] Tester le changement de langue
|
||||
|
||||
---
|
||||
|
||||
## 🔵 Améliorations Futures
|
||||
|
||||
### Fonctionnalités
|
||||
- [ ] Mode hors-ligne avec cache local
|
||||
- [ ] Notifications push
|
||||
- [ ] Chat en temps réel
|
||||
- [ ] Partage sur réseaux sociaux
|
||||
- [ ] Import/Export de calendrier
|
||||
- [ ] Recherche avancée d'événements
|
||||
- [ ] Filtres personnalisés
|
||||
- [ ] Recommandations d'événements (IA)
|
||||
|
||||
### UI/UX
|
||||
- [ ] Animations de transition
|
||||
- [ ] Skeleton loaders
|
||||
- [ ] Pull-to-refresh
|
||||
- [ ] Infinite scroll
|
||||
- [ ] Gestures avancés
|
||||
- [ ] Mode sombre amélioré
|
||||
- [ ] Thèmes personnalisables
|
||||
|
||||
### Backend
|
||||
- [ ] Implémenter WebSockets pour temps réel
|
||||
- [ ] Ajouter rate limiting
|
||||
- [ ] Implémenter le caching côté serveur
|
||||
- [ ] Ajouter monitoring (Sentry, DataDog)
|
||||
- [ ] Implémenter les logs structurés
|
||||
- [ ] Ajouter healthcheck endpoint
|
||||
|
||||
### Sécurité
|
||||
- [ ] Implémenter refresh tokens
|
||||
- [ ] Ajouter 2FA
|
||||
- [ ] Implémenter CORS strict
|
||||
- [ ] Ajouter rate limiting
|
||||
- [ ] Audit de sécurité complet
|
||||
- [ ] Penetration testing
|
||||
|
||||
### DevOps
|
||||
- [ ] Configurer Docker
|
||||
- [ ] Configurer Kubernetes
|
||||
- [ ] Mettre en place staging environment
|
||||
- [ ] Configurer monitoring (Prometheus/Grafana)
|
||||
- [ ] Mettre en place backup automatique
|
||||
- [ ] Configurer CDN pour les assets
|
||||
|
||||
---
|
||||
|
||||
## 📊 Métriques à Atteindre
|
||||
|
||||
### Code Quality
|
||||
- [ ] Coverage > 80%
|
||||
- [ ] 0 erreurs de linting
|
||||
- [ ] 0 warnings critiques
|
||||
- [ ] Complexité cyclomatique < 10
|
||||
- [ ] Duplications < 3%
|
||||
|
||||
### Performance
|
||||
- [ ] Temps de démarrage < 2s
|
||||
- [ ] Frame rate > 55 FPS
|
||||
- [ ] Taille de l'APK < 50 MB
|
||||
- [ ] Temps de chargement API < 500ms
|
||||
- [ ] Memory usage < 200 MB
|
||||
|
||||
### Documentation
|
||||
- [ ] README complet ✅
|
||||
- [ ] CONTRIBUTING complet ✅
|
||||
- [ ] API documentation complète
|
||||
- [ ] Architecture documentation complète
|
||||
- [ ] User guide complet
|
||||
|
||||
---
|
||||
|
||||
## 🐛 Bugs Connus
|
||||
|
||||
### À Corriger
|
||||
- [ ] Vérifier le crash JVM Android (log supprimé)
|
||||
- [ ] Tester sur iOS (simulateur + device)
|
||||
- [ ] Tester sur Web (Chrome, Firefox, Safari)
|
||||
- [ ] Tester sur Windows Desktop
|
||||
- [ ] Vérifier les fuites de mémoire
|
||||
|
||||
---
|
||||
|
||||
## 📱 Déploiement
|
||||
|
||||
### Android
|
||||
- [ ] Configurer signing key
|
||||
- [ ] Créer compte Play Store
|
||||
- [ ] Préparer les screenshots
|
||||
- [ ] Rédiger la description
|
||||
- [ ] Soumettre pour review
|
||||
|
||||
### iOS
|
||||
- [ ] Configurer certificates
|
||||
- [ ] Créer compte App Store
|
||||
- [ ] Préparer les screenshots
|
||||
- [ ] Rédiger la description
|
||||
- [ ] Soumettre pour review
|
||||
|
||||
### Web
|
||||
- [ ] Configurer hosting (Firebase/Netlify)
|
||||
- [ ] Configurer domaine
|
||||
- [ ] Configurer SSL
|
||||
- [ ] Optimiser pour SEO
|
||||
- [ ] Déployer en production
|
||||
|
||||
---
|
||||
|
||||
## 📚 Apprentissage et Formation
|
||||
|
||||
### Équipe
|
||||
- [ ] Session sur Clean Architecture
|
||||
- [ ] Session sur BLoC pattern
|
||||
- [ ] Session sur les tests
|
||||
- [ ] Session sur Git workflow
|
||||
- [ ] Session sur CI/CD
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Objectifs Trimestriels
|
||||
|
||||
### Q1 2026
|
||||
- [ ] Version 1.0.0 en production
|
||||
- [ ] 1000+ utilisateurs actifs
|
||||
- [ ] 5000+ événements créés
|
||||
- [ ] Note > 4.5 sur les stores
|
||||
|
||||
### Q2 2026
|
||||
- [ ] Version 1.1.0 avec nouvelles features
|
||||
- [ ] 10000+ utilisateurs actifs
|
||||
- [ ] Expansion internationale (3 pays)
|
||||
- [ ] Partenariats avec établissements
|
||||
|
||||
---
|
||||
|
||||
## 📞 Support
|
||||
|
||||
Pour toute question sur ces tâches :
|
||||
- Consulter la documentation
|
||||
- Ouvrir une issue
|
||||
- Contacter l'équipe
|
||||
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
|
||||
**Dernière mise à jour : 4 Janvier 2026**
|
||||
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user