Files
afterwork/PLAN_AMELIORATION_COMPLETE.md
dahoud 92612abbd7 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
2026-01-10 10:43:17 +00:00

4.9 KiB

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