Plan d'Améliorations - Système d'Invitations et d'Amis
Statut actuel : ✅ Backend + Frontend + Notifications (in-app + email) complétés (2026-02-26)
Référence :
- Invitations Module (documentation technique backend)
- Friends Module (documentation technique backend)
- PRIORITES.md - Section "Système d'invitations et d'amis"
✅ Fonctionnalités Implémentées
Backend
- ✅ Système d'invitations avec solde (5 invitations de base)
- ✅ Création d'invitations par email avec token et code
- ✅ Acceptation d'invitations via token ou code
- ✅ Gestion du solde (balance, total_earned, total_used)
- ✅ Système d'amis avec demandes mutuelles
- ✅ Amitié automatique lors de l'acceptation d'invitation
- ✅ Récompenses pour le référent (XP, coins, invitations)
- ✅ Intégration avec organisations (limitation aux amis)
- ✅ Visibilité utilisateur (paramètre
is_visible) - ✅ Localisation approximative (hubs) :
GET /friends/with-location— amis avec zone (ville, pays) et coordonnées hub (hub_lat,hub_lon) pour la carte ; jamais d’adresse précise (rue, code postal) exposée - ✅ Notifications in-app (NotificationsService) : invitation acceptée (parrain), demande d'ami reçue, demande d'ami acceptée
- ✅ Notifications email (EmailService) : invitation acceptée (parrain), demande d'ami reçue (destinataire), demande d'ami acceptée (expéditeur) — FR/EN selon locale du destinataire
Frontend
- ✅ RightSidebar avec onglets Chat/Amis
- ✅ FriendsList avec recherche
- ✅ InvitationsPage complète
- ✅ FriendsPage complète (onglets Amis, Carte, Invitations)
- ✅ Onglet Carte : carte des amis par zone (hubs) — localisation approximative uniquement (ville/pays), jamais d’adresse précise ; pastilles/marqueurs avec popup (profil, message)
- ✅ « Voir sur la carte » depuis le profil utilisateur (ami avec zone) et depuis la liste d’amis ; lien vers
/friends?tab=carte&highlight=userId - ✅ Hooks React Query (
useInvitations,useFriends,useFriendsWithLocation) - ✅ Modification MembersTab pour filtrer par amis
- ✅ Navigation unifiée : une entrée « Amis » (page Friends avec onglet Carte) ; plus d’entrée séparée « Carte utilisateurs » dans la sidebar
🚀 Améliorations Futures (Priorité Moyenne)
1. Email de rappel pour invitations en attente (optionnel)
Impact : Améliore le taux d'acceptation Effort : Faible
- Email de rappel pour les invitations non acceptées (délai configurable, ex. 3 jours)
2. Statistiques et analytics
Impact : Insights sur l'utilisation du système Effort : Faible-Moyen
- Dashboard invitations :
- Taux d'acceptation des invitations
- Nombre d'invitations envoyées/acceptées par période
- Top référents (utilisateurs qui invitent le plus)
- Dashboard amis :
- Nombre d'amis par utilisateur
- Activité des amis (dernière connexion)
- Suggestions d'amis basées sur les organisations communes
Référence : Intégration avec AnalyticsService existant
3. Améliorations UX
Impact : Améliore l'expérience utilisateur Effort : Faible-Moyen
- Invitations :
- Copie rapide du code d'invitation (bouton copy)
- Partage direct du code via liens sociaux
- Prévisualisation du lien d'invitation
- Historique des invitations avec filtres (statut, date)
- Amis :
- Indicateur de statut en ligne/hors ligne
- Recherche avancée d'amis (par nom, email, organisation)
- Suggestions d'amis (utilisateurs dans les mêmes organisations)
- Profil utilisateur enrichi (badges, niveau, statistiques)
4. Gestion avancée des invitations
Impact : Plus de flexibilité Effort : Moyen
- Invitations personnalisées :
- Message personnalisé avec l'invitation
- Expiration personnalisable (au lieu de 7 jours fixes)
- Invitations multiples pour le même email (annuler l'ancienne)
- Invitations de groupe :
- Inviter plusieurs utilisateurs en une fois
- Codes d'invitation réutilisables (optionnel)
- Limite de réutilisation des codes
5. Intégration avec la progression
Impact : Encourage l'engagement Effort : Faible
- Badges :
- Badge "Ambassadeur" : Inviter 10 utilisateurs
- Badge "Social" : Avoir 20 amis
- Badge "Réseau" : Inviter 5 utilisateurs qui deviennent actifs
- Défis :
- Défi "Inviter un ami" : Inviter un utilisateur cette semaine
- Défi "Élargir son réseau" : Ajouter 5 amis ce mois-ci
- Récompenses :
- Bonus d'invitations pour certains niveaux
- Coins bonus pour chaque ami ajouté (limité)
Référence : Intégration avec ProgressionService existant
🔮 Améliorations Futures (Priorité Basse)
1. Système de groupes
Impact : Organisation avancée Effort : Élevé
- Création de groupes d'amis
- Partage de ressources avec des groupes
- Notifications de groupe
2. Système de recommandations
Impact : Découverte d'utilisateurs Effort : Moyen-Élevé
- Recommandations basées sur :
- Organisations communes
- Contacts communs
- Localisation (si disponible)
- Intérêts similaires (badges, niveaux)
3. Export des données sociales
Impact : Portabilité des données Effort : Faible
- Export de la liste d'amis (CSV, JSON)
- Export de l'historique des invitations
- Export des statistiques sociales
📝 Notes Techniques
Points d'attention
- Performance : Les requêtes d'amis peuvent être lentes avec beaucoup d'utilisateurs. Considérer la pagination et le cache.
- Sécurité : Vérifier que les codes d'invitation sont suffisamment sécurisés (6 caractères alphanumériques).
- Scalabilité : Le système d'amis bidirectionnel crée 2 entrées par amitié. Vérifier l'impact sur les performances.
- Expiration : Implémenter un job cron pour expirer automatiquement les invitations anciennes.
Intégrations
- ✅ Email service : Emails de notification (invitation acceptée, demande d'ami reçue/acceptée) — implémenté
- ✅ Notifications service : Notifications in-app pour invitation acceptée et demandes d'amis — implémenté
- Analytics service : Tracking des métriques d'invitations et d'amis (à venir)
- Progression service : Badges et défis liés aux invitations et amis (à venir)
🔗 Références
- PRIORITES.md - Priorités de développement
- ROADMAP.md - Roadmap générale
- PLAN_AMELIORATIONS_CRM.md - Plan détaillé par domaine fonctionnel