Crée nouvelle section 11.4 détaillant le comportement quand des contenus sont supprimés par créateurs/modération pendant que l'utilisateur est offline. Décision : Suppression immédiate à la reconnexion (KISS) Processus de synchronisation : - GET /offline/validate retourne valid_ids, deleted_ids, metadata_updates - Suppression immédiate fichiers locaux pour deleted_ids - Renouvellement validité 30j pour valid_ids - Toast notification "X contenus supprimés ont été retirés" Gestion contenu en cours d'écoute : - Message modal explicite "Contenu supprimé... Passage au suivant" - Arrêt lecture + suppression fichier + passage auto après 2s Message récapitulatif : - Popup avec compte total + bouton "Voir la liste" - Historique contenus supprimés conservé 7 jours Justification KISS : - Simplicité technique (pas de grace period) - Respect créateur (volonté immédiate) - Conformité légale (contenu illégal retiré immédiatement) - Cas rare (peu de suppressions après publication) Post-MVP : grace period possible si feedback négatifs, mais attendre feedback réel avant complexité additionnelle. Référence: CLARIFICATIONS-REGLES-METIER.md section 6
Règles métier RoadWave
Documentation complète des règles métier validées pour l'application RoadWave. Chaque section détaille les comportements, flux et décisions techniques.
📋 Table des matières
🏗️ Fondations & Compte utilisateur
01. Authentification & Inscription
Contenu : Inscription, connexion, récupération de compte
- Inscription : email/password uniquement (pas d'OAuth tiers)
- Vérification email : optionnelle auditeurs (limite 5 contenus), obligatoire créateurs (lien expire 7j)
- Connexion : 5 tentatives max, blocage 15 min, refresh token 30j
- Récupération mot de passe : email, lien expire 1h
02. Conformité RGPD
Contenu : Consentements, anonymisation, export, suppression
- Consentement : Tarteaucitron.js + PostgreSQL versioning
- GPS précis : 24h puis geohash 5 (~5km²)
- Export : JSON + HTML + audio → ZIP, génération asynchrone sous 48h, expire 7j
- Suppression : grace period 30j, contenus créés anonymisés (créateur = "Utilisateur supprimé")
- Analytics : Matomo self-hosted, IP anonymisées, 0 cookie tiers
- DPO : fondateur formé CNIL (non obligatoire <250 employés)
🎧 Consommation de contenu (Auditeur)
03. Centres d'intérêt et jauges
Contenu : Évolution jauges, valeurs initiales
- Like automatique : écoute ≥80% → +2%, écoute 30-79% → +1%
- Like explicite (manuel) : +2% (cumulable avec auto)
- Abonnement : +5%
- Skip rapide (<10s) : -0.5%
- Valeur initiale : 50% (neutre)
- Limites : 0-100% stricte, pas de dégradation temporelle
04. Algorithme de recommandation
Contenu : Scoring, géolocalisation, orientation politique, mode Kids
- Classification géo : Ancré (70%) / Contextuel (50%) / Neutre (20%)
- Engagement : 20%, Aléatoire : 10%
- Orientation politique : 5 niveaux, équilibre imposé (40/40/20)
- Mode Kids : 4 tranches (3-6 / 6-9 / 9-12 / 13-15 ans), activation auto <13 ans
- Historique : >80% jamais reproposer, <10s ne pas reproposer
05. Interactions et navigation
Contenu : Commandes Suivant/Précédent, interactions volant, lecture en boucle
- Suivant : pré-calcul 5 contenus, recalcul >10km ou 10 min
- Précédent : <10s → contenu avant, ≥10s → replay début
- Commandes volant : Suivant, Précédent, Play/Pause uniquement
- Like automatique : ≥80% écoute → +2 points, 30-79% → +1 point
- Actions manuelles : bouton cœur (arrêt véhicule) ou vocal (CarPlay/Android Auto)
- Passage auto après 2s (1s mode Kids)
06. Audio-guides multi-séquences
Contenu : Modes déplacement, navigation, déclenchement GPS, publicités
- 4 modes : 🚶 Piéton (manuel) / 🚗 Voiture (GPS auto + manuel) / 🚴 Vélo / 🚌 Transport
- Mode Piéton : pause auto après chaque séquence, user clique Suivant, navigation libre
- Mode Voiture : déclenchement GPS auto (rayon 30m), boutons manuels actifs, warning sécurité >10 km/h
- Affichage voiture : distance temps réel + ETA + direction (flèche) + vitesse
- Rayons : Voiture 30m, Vélo 50m, Transport 100m (configurable créateur 10-200m)
- Publicités : 1/5 séquences tous modes, auto-play, skippable 5s
- Reprise : sauvegarde auto (séquence + position exacte), popup si <30j, multi-device (sync cloud)
07. Contenus géolocalisés voiture
Contenu : Expérience voiture, UI minimaliste, sécurité
- Interface voiture : minimaliste, boutons larges (80×80px min), lecture auto-play
- Commandes vocales : OK Google/Siri + CarPlay/Android Auto
- Notifications : in-app uniquement (pas de push), badge discret
- Sécurité : warning si interaction manuelle >10 km/h
- Mode nuit : automatique selon luminosité GPS ou heure (22h-6h)
08. Mode offline
Contenu : Téléchargement, validité, synchronisation
- Zone géographique : choix manuel (autour de moi / ville / département / région)
- Nombre contenus : gratuit 50 max, Premium illimité
- WiFi par défaut, mobile avec confirmation + estimation volume
- Validité : 30 jours, renouvellement auto si WiFi (contenus >25 jours)
- Sync : likes/abonnements batch auto à reconnexion, queue actions 7j max
09. Abonnements et notifications
Contenu : Impact algorithme, notifications, audio-guides, limites
- Boost +30% au score final (pas priorité absolue)
- Détection contexte : <5 km/h piéton, >10 km/h voiture
- Voiture : in-app uniquement, Piéton : push actives
- Limite 10 notifications push/jour (5-20), mode silencieux 22h-8h
- Audio-guide piéton : détection <100m lieu, page sélection, navigation manuelle
- Max 200 abonnements, +5% jauges tous tags créateur
10. Gestion des erreurs
Contenu : Aucun contenu, contenu supprimé, perte réseau, GPS désactivé
- Aucun contenu : élargissement auto 50km → 100km → département → région → national
- Contenu supprimé : laisser terminer, passage auto suivant après 2s
- Perte réseau : buffer adaptatif (WiFi 5-120s, 4G 10-120s, 3G 30-300s), retry 5s max 6×
- GPS désactivé : mode dégradé (contenu national + neutre + téléchargé)
🎙️ Création de contenu (Créateur)
11. Création et publication de contenu
Contenu : Upload, métadonnées, validation, modification
- Formats : MP3, AAC (.mp3, .aac, .m4a), max 200 MB, 4h
- Métadonnées obligatoires : titre, type géo, zone, tags (1-3), classification âge
- Validation 3 premiers contenus : 24-48h (modération RoadWave)
- Modification : métadonnées uniquement, pas audio/zone/classification
12. Radio live
Contenu : Démarrage, arrêt, comportement auditeur
- Buffer 15s avant diffusion publique, durée max 8h
- Notification push abonnés dans zone géo uniquement
- Arrêt : compte à rebours 5s (manuel) ou auto si déco ≥60s
- Enregistrement auto MP3 256 kbps → replay sous 5-10 min
- Auditeur : buffer 15s, continuation si sortie zone, AUCUN chat
13. Détection de contenu protégé
Contenu : Droits d'auteur, détection musique, sanctions, fair use
- Périmètre MVP : musique uniquement (films/livres exclus)
- Fair use : extraits ≤30s autorisés si usage transformatif (critique/analyse)
- Détection : manuelle lors des 3 premiers contenus (coût 0€)
- Sanctions progressives : Avertissement → Strike 1 (3j) → Strike 2 (7j) → Strike 3 (30j) → Strike 4 (ban)
- Réhabilitation : -1 strike tous les 6 mois sans incident
- Appel : réutilise processus section 14, délai 72h, preuve licence acceptée
- Post-MVP : Chromaprint + MusicBrainz si >50 signalements/mois (50-100€/mois)
🛡️ Modération & Sécurité
14. Modération - Flows opérationnels
Contenu : Signalement, traitement, sanctions
- Signalement : 7 catégories (haine, sexuel, illégalité, droits auteur, spam, fake news, autre)
- IA pré-filtre : Whisper large-v3 (transcription) + NLP open source (1-10 min)
- SLA : Critique <2h (24/7), Haute/Moyenne <24h, Basse <72h
- Notification sanction : email + push + in-app (détail complet : catégorie, timestamp, transcription)
- Appel : formulaire in-app, délai 7j max, réponse 72h garanti (standard)
15. Modération Communautaire - Badges et Récompenses
Contenu : Système badges, score fiabilité, récompenses, anti-abus
- 3 niveaux badges : 🥉 Bronze (5 validés), 🥈 Argent (20 validés), 🥇 Or (50 validés)
- Modal découverte : affichage unique au 1er signalement, message gratifiant
- Score fiabilité : calcul auto pour priorisation algorithme (0-100 points)
- Utilisateurs de confiance : statut auto Argent/Or, traitement prioritaire <12h
- Réduction Premium Or : -50% pendant 3 mois (2.49€ au lieu de 4.99€), Post-MVP
- Anti-abus : limite 10 signalements/24h, audit trimestriel, révocation badges
- ROI : positif dès 2-3 utilisateurs Or (économie modération > coût réductions)
- Coût MVP : 0€ / Coût Post-MVP : 0-200€/mois
💰 Monétisation & Business
16. Publicités
Contenu : Campagnes, fréquence, insertion, facturation
- Interface self-service, budget min 50€, étalement paramétrable
- Fréquence : 1/5 contenus (gratuits uniquement)
- Durée : 10-60s (recommandé 15-30s), skippable après 5s
- Validation manuelle 24-48h, prépaiement Mangopay
- Facturation : écoute complète 0.05€, skip après 5s : 0.02€, skip immédiat : 0€
17. Premium
Contenu : Offre, multi-devices, avantages, gestion abonnement
- Prix : 4.99€/mois OU 49.99€/an (4.16€/mois effectif)
- Pas d'essai gratuit, pas de partage familial (MVP)
- Multi-devices : 1 seul stream actif, détection connexion simultanée
- Avantages : 0 pub, contenus exclusifs 👑, qualité 64 kbps Opus, offline illimité
- Paiement : Mangopay (web) ou IAP iOS/Android 5.99€/mois (+30% commission)
18. Monétisation créateurs
Contenu : Activation, KYC, sources revenus, paiement
- Conditions : compte ≥3 mois, ≥500 abonnés, ≥10K écoutes, 0 strike, ≥5 contenus/90j
- KYC via Mangopay Connect : SIRET, TVA, RIB pro, pièce ID, Kbis <3 mois
- Revenus pub : 3€ / 1000 écoutes complètes (6% CA pub)
- Revenus Premium : 70% créateur, 30% plateforme (proportionnel temps écoute)
- Paiement : seuil 50€, mensuel (15 du mois suivant), SEPA Mangopay
🔧 Fonctionnalités transverses
19. Autres comportements
Contenu : Partage, profil créateur, recherche
- Partage : bouton partout, lien
roadwave.fr/share/c/[id], web player + deep link - Profil créateur : @pseudo, bio (300 car), stats publiques arrondies, badge vérifié ✓
- Badge vérifié : KYC validé OU célébrité OU >10K abonnés
- Recherche : full-text PostgreSQL (français, stemming), recherche géo (Nominatim OSM)
- Filtres : type, durée, âge, géo, tags, date, premium (combinables)
- Affichage : liste enrichie (20/page, infinite scroll) + vue carte Leaflet
🗂️ Organisation
Chaque fichier de règles métier suit la structure :
- Décisions : choix validés avec justifications
- Comportements détaillés : flux utilisateur, cas limites
- Paramètres : valeurs exactes, seuils, durées
- Points d'attention Gherkin : éléments à tester
🚀 Utilisation
Ces documents servent de référence unique pour :
- ✅ Développement backend/frontend
- ✅ Écriture des tests Gherkin (BDD)
- ✅ Validation QA
- ✅ Documentation produit
Prochaine étape : Création des fichiers .feature Gherkin dans features/ basés sur ces règles.
📊 Statistiques
- 19 sections validées
- ~14 500 lignes de spécifications détaillées
- Coût infrastructure MVP : ~50-250€/mois (hors salaires)
- Coût Post-MVP : +0-200€/mois (réductions Premium contributeurs Or)
- Technologies : 100% open source (sauf Mangopay paiements)
Dernière mise à jour : Janvier 2026 Statut : ✅ Toutes sections validées + Modération communautaire ajoutée