Backlog
User Stories
US10.1
En tant qu'utilisateur, je peux créer un groupe avec nom, description, type (destination/profil), visibilité
must
8pts
US10.2
En tant qu'utilisateur, je peux rechercher et rejoindre des groupes
must
4pts
US10.3
En tant qu'utilisateur, je vois un fil de discussion propre à chaque groupe (posts, sondages)
must
6pts
US10.4
En tant que créateur de groupe, je peux désigner des modérateurs
must
3pts
US10.5
En tant que modérateur groupe, je peux retirer un membre ou supprimer un post
must
4pts
US10.6
En tant qu'utilisateur, je peux créer un événement/meetup dans un groupe (lieu, date, nb max)
must
8pts
US10.7
En tant qu'utilisateur, je peux répondre RSVP à un événement (oui/non/peut-être)
must
3pts
US10.8
En tant qu'utilisateur, je reçois un badge "Pionnier" quand je suis un des premiers à poster sur une nouvelle destination
must
4pts
US10.9
En tant qu'utilisateur, je reçois un badge "Local Expert" (contenu vérifié abondant dans une ville)
must
5pts
US10.10
En tant qu'utilisateur, je reçois un badge "Foodie" (10+ reviews food)
must
3pts
US10.11
En tant qu'utilisateur, je reçois un badge "Safety Hero" (signalements de risques utiles)
should
3pts
US10.12
En tant qu'utilisateur, je progresse à travers 4 niveaux (Novice, Explorateur, Expert, Légende)
must
5pts
US10.13
En tant qu'utilisateur, je vois un leaderboard des top contributeurs d'une destination
should
3pts
US10.14
En tant que système (IA), je résume les discussions récentes du groupe (hebdo)
could
8pts
/groups & /badges
Endpoints API
GET
/groups
Recherche + liste groupes (?q=&type=&country=)
🔒 auth
POST
/groups
Créer un groupe
🔒 auth
GET
/groups/:id
Détail + membres + posts récents
🔒 auth
POST
/groups/:id/join
Rejoindre un groupe
🔒 auth
DELETE
/groups/:id/leave
Quitter un groupe
🔒 auth
GET
/groups/:id/posts
Fil du groupe (paginé cursor)
🔒 auth
POST
/groups/:id/posts
Poster dans le groupe
🔒 auth
POST
/groups/:id/moderators
Désigner un modérateur
🔒 auth
DELETE
/groups/:id/members/:userId
Retirer un membre
🔒 auth
POST
/groups/:id/events
Créer un événement
🔒 auth
GET
/groups/:id/events
Liste événements du groupe
🔒 auth
POST
/events/:id/rsvp
RSVP (body: status: yes|no|maybe)
🔒 auth
GET
/users/me/groups
Mes groupes
🔒 auth
GET
/users/:id/badges
Badges d'un utilisateur
public
GET
/badges
Catalogue complet des badges
public
GET
/leaderboard/places/:placeId
Top contributeurs d'un lieu
public
Critères d'acceptation
✓Groupe créé visible en recherche en < 30s (reindex Typesense)
✓Badge attribué automatiquement en < 1 min après déclenchement de la règle
✓Résumé IA groupe envoyé chaque lundi avant 10h
✓RSVP événement : compteur mis à jour en temps réel (WebSocket)