Backlog
User Stories
US5.1
En tant qu'utilisateur, je vois une carte mondiale avec les niveaux de risque par pays/ville en 5 couleurs
must
8 pts
US5.2
En tant qu'utilisateur, je peux voir le détail d'une alerte (source, niveau, résumé IA, date)
must
4 pts
US5.3
En tant qu'utilisateur, je reçois une notification push immédiate si alerte critique sur une zone que je suis
must
5 pts
US5.4
En tant qu'utilisateur, je peux "suivre" un pays ou une ville pour recevoir ses alertes
must
3 pts
US5.5
En tant qu'utilisateur, je vois un feed dédié "Sécurité" avec actualités filtrées + résumés IA
must
5 pts
US5.6
En tant qu'utilisateur, je peux demander au copilote "Explique la situation à Dakar"
must
4 pts
US5.7
En tant qu'utilisateur, je vois l'historique des alertes d'un pays (90 jours)
should
3 pts
US5.8
En tant que système, les alertes sont agrégées toutes les 30 min depuis 4 sources
must
8 pts
US5.9
En tant que système, un résumé IA est généré pour chaque nouvelle alerte (max 3 phrases)
must
4 pts
US5.10
En tant qu'utilisateur, le niveau de risque d'un lieu est visible sur sa fiche (carte + couleur)
must
3 pts
REST API /safety
Endpoints API
GET
/safety/alerts
?country=&level=&category=&after= (paginé)
public
GET
/safety/alerts/:id
Détail d'une alerte + résumé IA
public
GET
/safety/map
Données carte (?bounds=) — niveaux par pays/ville
public
GET
/safety/country/:code
Score + alertes actives d'un pays
public
GET
/safety/feed
Feed sécurité personnalisé (zones suivies)
🔒 auth
POST
/safety/subscriptions
Suivre une zone (body: place_id)
🔒 auth
DELETE
/safety/subscriptions/:placeId
Ne plus suivre une zone
🔒 auth
GET
/safety/subscriptions
Mes zones suivies
🔒 auth
GET
/safety/history/:placeId
Historique 90j d'un lieu
public
Critères d'acceptation
✓Alertes mises à jour en < 35 min après publication sur source officielle
✓Notification push envoyée en < 2 min après détection d'alerte niveau 4+
✓Carte de risque charge en < 2s (données cachées 5min Redis)
✓Résumé IA généré en < 5s par alerte
✓Déduplication : même alerte publiée 2 fois → 1 seul enregistrement
✓Feed sécurité personnalisé vide si aucune zone suivie → message d'incitation