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:
149
PLAN_AMELIORATION_COMPLETE.md
Normal file
149
PLAN_AMELIORATION_COMPLETE.md
Normal file
@@ -0,0 +1,149 @@
|
||||
# Plan d'Amélioration Complète - AfterWork
|
||||
|
||||
## 🎯 Objectifs
|
||||
|
||||
1. ✅ Supprimer toutes les données en dur/fictives
|
||||
2. ✅ Supprimer tous les TODOs du code source
|
||||
3. ✅ Améliorer le design pour qu'il soit moderne et compétitif (style Instagram)
|
||||
4. ✅ Implémenter toutes les fonctionnalités manquantes
|
||||
5. ✅ Créer les endpoints backend manquants
|
||||
6. ✅ Connecter proprement tout à l'API
|
||||
|
||||
---
|
||||
|
||||
## 📋 Structure du Projet
|
||||
|
||||
### Organisation actuelle de `lib/`
|
||||
```
|
||||
lib/
|
||||
├── assets/ # Ressources statiques
|
||||
├── config/ # Configuration (injection, router)
|
||||
├── core/ # Utilitaires, erreurs, thème, constantes
|
||||
├── data/ # Datasources, models, repositories, services, providers
|
||||
├── domain/ # Entities, repositories, usecases
|
||||
├── main.dart # Point d'entrée
|
||||
└── presentation/ # Screens, widgets, state_management
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔍 Données Mock/Fictives à Supprimer
|
||||
|
||||
### 1. **Social Posts** (`lib/presentation/screens/social/social_content.dart`)
|
||||
- ❌ Liste de posts hardcodés avec données fictives
|
||||
- ✅ Remplacer par chargement depuis l'API
|
||||
|
||||
### 2. **Notifications** (`lib/presentation/screens/notifications/notifications_screen.dart`)
|
||||
- ❌ Données mock utilisées quand la liste est vide
|
||||
- ✅ Supprimer et gérer l'état vide proprement
|
||||
|
||||
### 3. **Placeholders**
|
||||
- ❌ Images placeholder hardcodées dans plusieurs widgets
|
||||
- ✅ Utiliser des widgets de placeholder génériques
|
||||
|
||||
---
|
||||
|
||||
## 🗑️ TODOs à Supprimer
|
||||
|
||||
### 1. **NotificationRemoteDataSource**
|
||||
- `TODO: Remplacer par l'endpoint réel quand il sera disponible` (4 occurrences)
|
||||
|
||||
### 2. **SocialRemoteDataSource**
|
||||
- `TODO: Remplacer par l'endpoint réel quand il sera disponible` (3 occurrences)
|
||||
|
||||
### 3. **UserRemoteDataSource**
|
||||
- `TODO: Implémenter quand l'endpoint sera disponible dans le backend`
|
||||
|
||||
---
|
||||
|
||||
## 🎨 Amélioration du Design (Style Instagram)
|
||||
|
||||
### Principes de Design Moderne
|
||||
1. **Cards avec ombres douces** - Élévation subtile
|
||||
2. **Espacement généreux** - Padding et margins confortables
|
||||
3. **Typographie hiérarchique** - Tailles et poids variés
|
||||
4. **Animations fluides** - Transitions douces
|
||||
5. **Couleurs modernes** - Palette Instagram-like
|
||||
6. **Images en plein écran** - Ratio 1:1 ou 4:5
|
||||
7. **Interactions tactiles** - Feedback visuel immédiat
|
||||
|
||||
### Fichiers à Améliorer
|
||||
1. `lib/core/theme/app_theme.dart` - Palette de couleurs moderne
|
||||
2. `lib/presentation/screens/social/social_card.dart` - Design Instagram-like
|
||||
3. `lib/presentation/screens/event/event_card.dart` - Cards modernes
|
||||
4. `lib/presentation/widgets/custom_button.dart` - Boutons avec animations
|
||||
5. Tous les écrans principaux - Espacement et typographie
|
||||
|
||||
---
|
||||
|
||||
## 🔌 Endpoints Backend à Créer
|
||||
|
||||
### 1. **Notifications** (`/notifications`)
|
||||
- `GET /notifications/user/{userId}` - Récupérer les notifications
|
||||
- `PUT /notifications/{id}/read` - Marquer comme lue
|
||||
- `PUT /notifications/user/{userId}/mark-all-read` - Marquer toutes comme lues
|
||||
- `DELETE /notifications/{id}` - Supprimer une notification
|
||||
- `POST /notifications` - Créer une notification
|
||||
|
||||
### 2. **Posts Sociaux** (`/posts`)
|
||||
- `GET /posts` - Récupérer tous les posts (avec pagination)
|
||||
- `POST /posts` - Créer un post
|
||||
- `GET /posts/{id}` - Récupérer un post par ID
|
||||
- `PUT /posts/{id}` - Mettre à jour un post
|
||||
- `DELETE /posts/{id}` - Supprimer un post
|
||||
- `GET /posts/search?q={query}` - Rechercher des posts
|
||||
- `POST /posts/{id}/like` - Liker un post
|
||||
- `POST /posts/{id}/comment` - Commenter un post
|
||||
- `POST /posts/{id}/share` - Partager un post
|
||||
|
||||
---
|
||||
|
||||
## 📝 Plan d'Implémentation
|
||||
|
||||
### Phase 1: Backend - Endpoints Manquants
|
||||
1. ✅ Créer `NotificationResource.java`
|
||||
2. ✅ Créer `SocialPostResource.java`
|
||||
3. ✅ Créer les entités correspondantes
|
||||
4. ✅ Créer les DTOs
|
||||
5. ✅ Créer les services
|
||||
|
||||
### Phase 2: Frontend - Suppression des Mocks
|
||||
1. ✅ Supprimer les données mock de `social_content.dart`
|
||||
2. ✅ Supprimer les données mock de `notifications_screen.dart`
|
||||
3. ✅ Connecter à l'API réelle
|
||||
|
||||
### Phase 3: Frontend - Suppression des TODOs
|
||||
1. ✅ Implémenter tous les endpoints dans les datasources
|
||||
2. ✅ Supprimer tous les commentaires TODO
|
||||
|
||||
### Phase 4: Design - Modernisation
|
||||
1. ✅ Améliorer la palette de couleurs
|
||||
2. ✅ Moderniser les cards
|
||||
3. ✅ Améliorer les animations
|
||||
4. ✅ Optimiser l'espacement
|
||||
|
||||
### Phase 5: Tests et Validation
|
||||
1. ✅ Tester tous les endpoints
|
||||
2. ✅ Valider le design
|
||||
3. ✅ Vérifier qu'il n'y a plus de données mock
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Ordre d'Exécution
|
||||
|
||||
1. **Backend d'abord** - Créer les endpoints manquants
|
||||
2. **Frontend ensuite** - Connecter et supprimer les mocks
|
||||
3. **Design en dernier** - Améliorer l'UI/UX
|
||||
|
||||
---
|
||||
|
||||
## ✅ Checklist Finale
|
||||
|
||||
- [ ] Tous les endpoints backend créés et testés
|
||||
- [ ] Toutes les données mock supprimées
|
||||
- [ ] Tous les TODOs supprimés
|
||||
- [ ] Design moderne et compétitif
|
||||
- [ ] Toutes les fonctionnalités implémentées
|
||||
- [ ] Code propre et organisé
|
||||
- [ ] Tests passants
|
||||
|
||||
Reference in New Issue
Block a user