doc(business-rules): ajout d'alertes post mvp
This commit is contained in:
@@ -660,6 +660,322 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 7. Contenus prioritaires et comptes officiels
|
||||||
|
|
||||||
|
> ⚠️ **Reporté post-MVP** - Système d'alertes critiques et intégration sources officielles (gestionnaires autoroutes, Météo France, préfectures).
|
||||||
|
|
||||||
|
### Contexte du report
|
||||||
|
|
||||||
|
**Raisons** :
|
||||||
|
- **Masse critique requise** : Partenariats avec organismes officiels nécessitent base utilisateurs solide (>50K MAU)
|
||||||
|
- **Complexité technique** : Intégration APIs externes, système de priorités, TTS automatisé
|
||||||
|
- **Responsabilité légale** : Diffusion alertes sécurité = engagement fort, nécessite infrastructure stable
|
||||||
|
- **Focus MVP** : Priorité sur contenu créateurs communautaires
|
||||||
|
- **ROI incertain** : Valeur ajoutée forte mais sans revenus directs (service public)
|
||||||
|
|
||||||
|
**Version MVP** (actuelle) :
|
||||||
|
- Tous contenus = créateurs classiques
|
||||||
|
- Pas de système de priorité
|
||||||
|
- Pas de comptes officiels vérifiés
|
||||||
|
- Pas d'interruption de contenu en cours
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Spécifications complètes (future implémentation)
|
||||||
|
|
||||||
|
**Problématique** : Certaines informations (obstacle sur autoroute, alerte météo dangereuse) doivent être diffusées en **priorité absolue**, indépendamment de l'algorithme de recommandation.
|
||||||
|
|
||||||
|
**Solution** : Système de contenus prioritaires avec comptes officiels vérifiés et interruption conditionnelle du flux audio.
|
||||||
|
|
||||||
|
#### A) Nouveau type de compte : Compte Officiel
|
||||||
|
|
||||||
|
| Type compte | Validation | Badge | Priorité | Modération |
|
||||||
|
|-------------|-----------|-------|----------|------------|
|
||||||
|
| **Créateur classique** | Email + KYC (si monétisation) | - | Normale | 3 premiers contenus |
|
||||||
|
| **Créateur vérifié** | KYC validé OU >10K abonnés | ✓ | Normale | A posteriori |
|
||||||
|
| **Compte Officiel** | Validation RoadWave manuelle + contrat partenariat | 🏛️ | **Configurable (0-3)** | **Aucune** |
|
||||||
|
|
||||||
|
**Exemples comptes officiels** :
|
||||||
|
- **Gestionnaires autoroutes** : SANEF, Vinci Autoroutes, APRR, ASF
|
||||||
|
- **Services météo** : Météo France, vigilance.gouv.fr
|
||||||
|
- **Sécurité civile** : Préfectures, Plan alerte enlèvement
|
||||||
|
- **Services publics** : Bison Futé, Sécurité Routière
|
||||||
|
- **Médias publics** : France Info, France Inter (déjà créateurs, passage en Officiel)
|
||||||
|
|
||||||
|
**Processus de validation** :
|
||||||
|
1. Demande partenariat → contact commercial RoadWave
|
||||||
|
2. Vérification identité organisme (SIRET, documents officiels)
|
||||||
|
3. Signature convention partenariat (gratuit, service d'intérêt public)
|
||||||
|
4. Création compte Officiel avec badge 🏛️
|
||||||
|
5. Configuration API Webhook pour contenus automatisés
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### B) Système de priorité des contenus
|
||||||
|
|
||||||
|
**Nouveau champ DB** : `priority_level`
|
||||||
|
|
||||||
|
```sql
|
||||||
|
ALTER TABLE contents ADD COLUMN priority_level INT DEFAULT 0 CHECK (priority_level BETWEEN 0 AND 3);
|
||||||
|
|
||||||
|
-- 0 = Normal (créateurs classiques, algo standard)
|
||||||
|
-- 1 = Élevé (infos trafic importantes, boost algo)
|
||||||
|
-- 2 = Urgent (obstacle imminent, injection forcée)
|
||||||
|
-- 3 = Critique (danger immédiat, interruption autorisée)
|
||||||
|
```
|
||||||
|
|
||||||
|
**Comportement selon priorité** :
|
||||||
|
|
||||||
|
| Priorité | Nom | Comportement | Bypass quota 6/h | Interruption contenu en cours |
|
||||||
|
|----------|-----|--------------|------------------|-------------------------------|
|
||||||
|
| **0** | Normal | Algo standard (score géo + intérêts + engagement) | Non | Non |
|
||||||
|
| **1** | Élevé | Boost score final +0.3 (favorisé mais pas forcé) | Non | Non |
|
||||||
|
| **2** | Urgent | Injection forcée en **prochaine position** file d'attente | Oui | Non (attend fin contenu actuel) |
|
||||||
|
| **3** | Critique | **Interruption immédiate avec countdown 5s** | Oui | **Oui** (pause contenu, overlay, lecture alerte) |
|
||||||
|
|
||||||
|
**Cas d'usage par priorité** :
|
||||||
|
|
||||||
|
```
|
||||||
|
🟢 Priorité 0 - Normal
|
||||||
|
├─ Tous contenus créateurs classiques
|
||||||
|
└─ Algorithme de recommandation standard
|
||||||
|
|
||||||
|
🟡 Priorité 1 - Élevé
|
||||||
|
├─ Info trafic général (bouchon prévu, travaux)
|
||||||
|
├─ Événement local impactant circulation (match, concert)
|
||||||
|
└─ Météo défavorable non dangereuse (pluie modérée)
|
||||||
|
|
||||||
|
🟠 Priorité 2 - Urgent
|
||||||
|
├─ Accident récent avec impact circulation
|
||||||
|
├─ Route coupée / déviation obligatoire
|
||||||
|
├─ Péage fermé de façon imprévue
|
||||||
|
└─ Alerte pollution temporaire
|
||||||
|
|
||||||
|
🔴 Priorité 3 - Critique
|
||||||
|
├─ Obstacle sur voie (objet, véhicule arrêté)
|
||||||
|
├─ Alerte météo orange/rouge (tempête, inondation, neige)
|
||||||
|
├─ Alerte enlèvement (Plan alerte enlèvement)
|
||||||
|
├─ Fermeture tunnel/pont pour sécurité
|
||||||
|
└─ Contre-sens signalé
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### C) Flow interruption (priorité 3)
|
||||||
|
|
||||||
|
**Interface utilisateur** :
|
||||||
|
|
||||||
|
```
|
||||||
|
User écoute podcast normal à 30 km/h sur A7
|
||||||
|
↓
|
||||||
|
Contenu priorité 3 détecté dans zone 500m devant
|
||||||
|
↓
|
||||||
|
Overlay rouge translucide apparaît sur écran :
|
||||||
|
┌─────────────────────────────────────┐
|
||||||
|
│ ⚠️ ALERTE SÉCURITÉ │
|
||||||
|
│ │
|
||||||
|
│ Obstacle signalé A7 voie gauche │
|
||||||
|
│ km 125 │
|
||||||
|
│ │
|
||||||
|
│ Diffusion dans 5... 4... 3... │
|
||||||
|
│ │
|
||||||
|
│ [Ignorer l'alerte] │
|
||||||
|
└─────────────────────────────────────┘
|
||||||
|
↓
|
||||||
|
Countdown 5 secondes (annulable)
|
||||||
|
↓
|
||||||
|
Podcast actuel → PAUSE automatique
|
||||||
|
↓
|
||||||
|
Son d'alerte : Bip urgent (0.5s)
|
||||||
|
↓
|
||||||
|
Alerte TTS : "Attention, obstacle signalé sur voie de gauche, autoroute A7, kilomètre 125. Réduisez votre vitesse."
|
||||||
|
↓
|
||||||
|
Alerte se termine (15-30 secondes max)
|
||||||
|
↓
|
||||||
|
Podcast reprend automatiquement à position exacte
|
||||||
|
```
|
||||||
|
|
||||||
|
**Paramètres techniques** :
|
||||||
|
- **Rayon déclenchement** : 500m-2km selon vitesse (calcul dynamique)
|
||||||
|
- **Son d'alerte** : Bip distinctif (pas agressif, mais audible)
|
||||||
|
- **Durée max alerte** : 30 secondes (format court, info essentielle)
|
||||||
|
- **Cooldown** : même alerte pas reproposée avant 10 minutes
|
||||||
|
- **Annulation** : bouton "Ignorer" disponible pendant countdown (mais déconseillé)
|
||||||
|
|
||||||
|
**Traçabilité** :
|
||||||
|
- Log : `user_id`, `alert_id`, `action` (played / ignored), `timestamp`
|
||||||
|
- Statistiques : taux d'écoute alertes vs taux ignore (KPI efficacité)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### D) Intégration APIs externes et TTS automatisé
|
||||||
|
|
||||||
|
**Partenariats cibles** :
|
||||||
|
|
||||||
|
| Partenaire | API | Type contenu | Priorité | Coût | Disponibilité |
|
||||||
|
|-----------|-----|--------------|----------|------|---------------|
|
||||||
|
| **Météo France** | API Vigilance | Alertes météo orange/rouge | 3 | Gratuit (service public) | ✅ API publique |
|
||||||
|
| **Bison Futé** | API Trafic | Info trafic temps réel | 1-2 | Gratuit | ✅ API publique |
|
||||||
|
| **Gestionnaires autoroutes** | APIs propriétaires | Obstacles, fermetures | 2-3 | Gratuit (partenariat) | ⚠️ Négociation |
|
||||||
|
| **Sécurité Routière** | Données ouvertes | Zones accidentogènes, campagnes | 1 | Gratuit | ✅ Open Data |
|
||||||
|
| **Waze / Coyote** | API (si accessible) | Dangers signalés users | 2 | Négociation | ❌ APIs fermées |
|
||||||
|
|
||||||
|
**Flow automatisé (exemple Météo France)** :
|
||||||
|
|
||||||
|
```
|
||||||
|
1. API Météo France → Webhook RoadWave
|
||||||
|
Données : {
|
||||||
|
"departement": "83",
|
||||||
|
"vigilance": "orange",
|
||||||
|
"phenomene": "pluie-inondation",
|
||||||
|
"debut": "2026-01-20T14:00:00Z",
|
||||||
|
"fin": "2026-01-20T23:00:00Z"
|
||||||
|
}
|
||||||
|
|
||||||
|
2. Backend RoadWave (worker Go) traite webhook :
|
||||||
|
- Récupère polygon département 83 (PostGIS)
|
||||||
|
- Génère texte alerte : "Alerte météo orange dans le Var : fortes pluies et risque d'inondations. Soyez prudents."
|
||||||
|
- Appelle TTS (Google Cloud TTS ou AWS Polly)
|
||||||
|
- Génère fichier audio MP3 + segments HLS
|
||||||
|
|
||||||
|
3. Création automatique contenu :
|
||||||
|
├─ Titre : "⚠️ Alerte Météo Orange - Var"
|
||||||
|
├─ Audio : Fichier TTS généré
|
||||||
|
├─ Zone : Polygon département 83
|
||||||
|
├─ Priority : 3 (critique)
|
||||||
|
├─ Durée vie : 12h (expiration automatique)
|
||||||
|
├─ Créateur : Compte "Météo France" (officiel)
|
||||||
|
└─ Tags : ["Météo", "Sécurité"]
|
||||||
|
|
||||||
|
4. Diffusion immédiate :
|
||||||
|
- Tous users dans département 83
|
||||||
|
- Interruption flux audio (countdown 5s)
|
||||||
|
- Diffusion alerte
|
||||||
|
- Reprise contenu normal
|
||||||
|
```
|
||||||
|
|
||||||
|
**TTS (Text-to-Speech)** :
|
||||||
|
- **Fournisseur** : Google Cloud TTS WaveNet (voix neurale professionnelle)
|
||||||
|
- **Coût** : ~0.016€/1000 caractères
|
||||||
|
- **Voix** : "Léa" (féminine, française, ton calme mais ferme pour alertes)
|
||||||
|
- **Normalisation audio** : -14 LUFS (comme autres contenus)
|
||||||
|
|
||||||
|
**Expiration automatique** :
|
||||||
|
- Alertes météo : 12h après fin vigilance
|
||||||
|
- Obstacles autoroute : 2h après signalement (si non mis à jour)
|
||||||
|
- Alertes enlèvement : 48h ou jusqu'à résolution officielle
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### E) Dashboard admin (gestion alertes)
|
||||||
|
|
||||||
|
**Interface modérateur RoadWave** :
|
||||||
|
|
||||||
|
```
|
||||||
|
┌────────────────────────────────────────────────┐
|
||||||
|
│ 🏛️ Gestion contenus officiels │
|
||||||
|
├────────────────────────────────────────────────┤
|
||||||
|
│ │
|
||||||
|
│ Alertes actives (3) │
|
||||||
|
│ │
|
||||||
|
│ 🔴 CRITIQUE - Obstacle A7 km 125 │
|
||||||
|
│ Source : SANEF │
|
||||||
|
│ Diffusions : 1,247 | Ignores : 23 (1.8%) │
|
||||||
|
│ Expire : dans 1h32 │
|
||||||
|
│ [Prolonger] [Arrêter maintenant] │
|
||||||
|
│ │
|
||||||
|
│ 🔴 CRITIQUE - Alerte météo orange Var │
|
||||||
|
│ Source : Météo France │
|
||||||
|
│ Diffusions : 8,921 | Ignores : 156 (1.7%) │
|
||||||
|
│ Expire : dans 9h12 │
|
||||||
|
│ [Modifier] [Arrêter] │
|
||||||
|
│ │
|
||||||
|
│ 🟠 URGENT - Bouchon A6 Lyon │
|
||||||
|
│ Source : Bison Futé │
|
||||||
|
│ Diffusions : 2,104 | Ignores : 312 (14.8%) │
|
||||||
|
│ Expire : dans 3h05 │
|
||||||
|
│ [Modifier] [Arrêter] │
|
||||||
|
│ │
|
||||||
|
├────────────────────────────────────────────────┤
|
||||||
|
│ │
|
||||||
|
│ [+ Créer alerte manuelle] │
|
||||||
|
│ │
|
||||||
|
│ Historique (7 derniers jours) │
|
||||||
|
│ · 127 alertes diffusées │
|
||||||
|
│ · 98.2% taux écoute moyen │
|
||||||
|
│ · 1.8% taux ignore moyen │
|
||||||
|
│ │
|
||||||
|
└────────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
**Création alerte manuelle** :
|
||||||
|
- Use case : information non automatisée (événement exceptionnel)
|
||||||
|
- Champs : Texte (TTS auto), Zone (carte), Priorité (1-3), Durée vie
|
||||||
|
- Validation admin RoadWave requise (pas auto-publication)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Avantages
|
||||||
|
|
||||||
|
- ✅ **Sécurité routière** : diffusion info critique temps réel
|
||||||
|
- ✅ **Valeur ajoutée** : différenciation vs Waze/Coyote (audio automatique)
|
||||||
|
- ✅ **Partenariats gagnant-gagnant** : visibilité organismes publics, service utilisateurs
|
||||||
|
- ✅ **Coût maîtrisé** : APIs gratuites + TTS ponctuel (~50€/mois max)
|
||||||
|
- ✅ **Réutilisation infra** : HLS, PostGIS, backend Go déjà en place
|
||||||
|
|
||||||
|
### Contraintes
|
||||||
|
|
||||||
|
- ❌ **Responsabilité légale** : diffusion alertes = engagement fort (info exacte, à jour)
|
||||||
|
- ❌ **Partenariats longs** : négociations avec organismes publics (6-12 mois)
|
||||||
|
- ❌ **Maintenance APIs** : dépendance externe, risque coupure service
|
||||||
|
- ❌ **Modération réactive** : si alerte erronée, correction manuelle urgente
|
||||||
|
- ❌ **Interruption UX** : priorité 3 peut frustrer si trop fréquent (nécessite calibration)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Conditions de réintégration
|
||||||
|
|
||||||
|
**Prérequis** :
|
||||||
|
1. Base utilisateurs stable >50K MAU (argumentaire crédible pour partenariats)
|
||||||
|
2. Chiffre affaires positif (infrastructure fiable = confiance partenaires)
|
||||||
|
3. Équipe support disponible 24/7 pour gestion alertes critiques
|
||||||
|
4. Validation juridique responsabilité (assurance RC pro couvre diffusion alertes)
|
||||||
|
5. Tests A/B réussis sur interruption priorité 3 (acceptabilité utilisateurs)
|
||||||
|
|
||||||
|
**Chronologie estimée** :
|
||||||
|
- Phase 1 (Post-MVP+6 mois) : Développement système priorités + dashboard admin + TTS
|
||||||
|
- Phase 2 (Post-MVP+9 mois) : Premier partenariat (Météo France, API publique simple)
|
||||||
|
- Phase 3 (Post-MVP+12 mois) : Tests bêta alertes météo avec utilisateurs volontaires
|
||||||
|
- Phase 4 (Post-MVP+15 mois) : Extension autres partenaires (Bison Futé, gestionnaires autoroutes)
|
||||||
|
- Phase 5 (Post-MVP+18 mois) : Déploiement complet si KPI positifs
|
||||||
|
|
||||||
|
**KPI de succès** :
|
||||||
|
- Taux écoute alertes priorité 3 : >95% (faible taux ignore)
|
||||||
|
- Satisfaction utilisateurs : >80% jugent alertes utiles (sondage post-alerte)
|
||||||
|
- Taux faux positifs : <2% (alerte diffusée à tort ou obsolète)
|
||||||
|
- Réduction incidents : mesure impact (accidents évités, détours anticipés) → difficile mais qualitatif fort
|
||||||
|
- Partenariats actifs : >3 organismes officiels connectés
|
||||||
|
|
||||||
|
**Budget estimé** (base 100K MAU) :
|
||||||
|
|
||||||
|
| Composant | Coût mensuel |
|
||||||
|
|-----------|--------------|
|
||||||
|
| **TTS alertes auto** | ~50€ (10-20 alertes/mois, textes courts) |
|
||||||
|
| **Stockage audio alertes** | ~5€ (fichiers temporaires, expiration auto) |
|
||||||
|
| **Modération alertes** | ~200€ (part-time, monitoring dashboard) |
|
||||||
|
| **APIs externes** | 0€ (gratuites, services publics) |
|
||||||
|
| **Bande passante** | Inclus infrastructure existante |
|
||||||
|
| **Total** | **~255€/mois** |
|
||||||
|
|
||||||
|
**ROI** :
|
||||||
|
- Pas de revenus directs (service public)
|
||||||
|
- Valeur indirecte : **différenciation produit majeure**
|
||||||
|
- Argument commercial : "RoadWave vous protège en temps réel"
|
||||||
|
- Rétention utilisateurs : +5-10% (feature killer)
|
||||||
|
- Presse/médias : couverture positive (innovation sécurité routière)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Autres fonctionnalités candidates Post-MVP
|
## Autres fonctionnalités candidates Post-MVP
|
||||||
|
|
||||||
Liste non exhaustive de fonctionnalités évoquées mais non encore spécifiées :
|
Liste non exhaustive de fonctionnalités évoquées mais non encore spécifiées :
|
||||||
|
|||||||
Reference in New Issue
Block a user