Sprint Planning - Gestion des Abonnements Stripe
Date de création : 11 novembre 2025
Statut : đ” Plan dĂ©taillĂ©
Propriétaire : PO (Julien)
DerniÚre mise à jour : 18 décembre 2025
đ Guide d'Utilisation
Ce document détaille chaque sprint avec : - Tùches : Quoi faire ? - Estimations : Combien de temps ? - Responsables : Qui fait quoi ? - Dépendances : Quoi avant quoi ? - Validation : Comment vérifier ?
Durée de chaque sprint : 2 semaines
đŻ Vue d'Ensemble
Semaine 1-2 : Sprint 1 - Phase 1 (Critique)
âââ Documents lĂ©gaux & Consentement
âââ Validation webhooks
âââ Audit trails
âââ Politique de remboursement & CGV
âââ Recherche juridique - DĂ©lais d'annulation
Semaine 3-4 : Sprint 2 - Phase 2 (Haute Priorité)
âââ Droit Ă l'oubli (RGPD)
âââ Export de donnĂ©es (RGPD)
âââ Factures
âââ Gestion erreurs paiement
âââ Gestion des annulations avec dĂ©lai
âââ Gestion des litiges (disputes)
âââ Gestion des moyens de paiement
âââ PrĂ©vention de la fraude (Stripe Radar)
Semaine 5-6 : Sprint 3 - Phase 2 (Suite) & Phase 3
âââ Upgrade/Downgrade d'abonnement
âââ Rate limiting
âââ ConformitĂ© TVA/GST
âââ PortabilitĂ© donnĂ©es
âââ Tests finaux
Semaine 9-10 : Sprint 4-5 - Phase 3 (Optimisation)
âââ Audit externe
âââ Ajustements
âââ PrĂ©paration production
đ§ Sprint 0 â PWA-first (DEV/TEST) : Firebase + Stripe de test
Durée : 2-3 jours
Objectif : disposer d'un backend DEV/TEST (Firebase + Stripe test) validé via la PWA de test https://yinshi-test.yinshi.app/.
Note : ce Sprint 0 correspond au Rail 1 (débloquer l'E2E Stripe en DEV/TEST) décrit dans docs/05_chantiers_actifs/stripe/README.md.
Point d'attention : sur la PWA, les tests peuvent ĂȘtre faussĂ©s par le cache/service worker (penser "hard refresh" + purge cache si un ancien bundle est servi).
Jour 1 : Projet Firebase DEV/TEST (socle)
- [x] Créer le projet Firebase DEV/TEST :
yin-shi-dev - [x] Activer la facturation (Blaze) si nécessaire (extensions + Cloud Functions)
- [x] Activer : Firestore, Functions, Extensions (+ Auth si utilisé)
- [x] Enregistrer l'app Web dans DEV/TEST et récupérer la config
- [x] Autoriser le domaine
yinshi-test.yinshi.appdans Authentication
DoD : projet DEV/TEST prĂȘt, services activĂ©s, config Web disponible.
Jour 2 : Stripe test (extension + Stripe Dashboard)
- [x] Déployer rules + index Firestore dans DEV/TEST (équivalent PROD)
- [x] Installer l'extension
invertase/firestore-stripe-paymentssur DEV/TEST - [x] Renseigner les secrets de test (Secret Manager) :
STRIPE_API_KEY=sk_test_*,STRIPE_WEBHOOK_SECRET=whsec_* - [x] Stripe Dashboard (test mode) : produits/prix + webhook vers DEV/TEST
- [ ] Vérifier que les deliveries webhook Stripe sont en succÚs (2xx)
DoD : les fonctions ext-firestore-stripe-payments-* tournent en DEV/TEST, les événements Stripe test arrivent et sont traités.
Jour 3 : CĂąblage PWA de test + validation end-to-end
- [x] Faire pointer le build Web âtestâ vers Firebase DEV/TEST (FlutterFire config dĂ©diĂ©e)
- [x] Déployer sur
https://yinshi-test.yinshi.app/via le pipeline web de test - [x] Vérifier / corriger les URLs Stripe success/cancel : retour sur
https://yinshi-test.yinshi.app/ - [x] Test E2E : création checkout_session + paiement test (carte) OK
- [x] Déployer les Cloud Functions "métier" du repo sur
yin-shi-dev(ex:syncStripeToAppUser*) - [ ] Re-test E2E : aprĂšs paiement,
app_users/{uid}.app_user_roledoit passer ĂPaid
DoD final : un utilisateur DEV/TEST peut effectuer un paiement test depuis la PWA test et obtenir un état premium/abonné cohérent en DEV/TEST.
đ Sprint 1 - Phase 1 (Critique)
Durée : 2 semaines (10 jours de travail)
Ăquipe : PO + 2 Dev
Objectif : Implémenter les éléments critiques avant tout déploiement
Semaine 1
Jour 1 : Préparation & Setup
Matin (4h) : - [ ] Réunion de démarrage (1h) - Présenter le plan - Répondre aux questions - Clarifier les priorités - [ ] Setup des outils (3h) - Créer branches Git - Setup Stripe CLI - Setup Firebase Emulator
Responsable : PO + Dev 1 & 2
AprĂšs-midi (4h) : - [ ] Lire la documentation (4h) - AUDIT_CONFORMITE_STRIPE.md - CHECKLIST_SECURITE.md (sections 2 & 3)
Responsable : Dev 1 & 2
Jour 2-3 : Documents Légaux
Tùche 1 : Générer documents légaux (4h) - [ ] S'inscrire sur Termly.io ou iubenda.com - [ ] Générer politique de confidentialité - [ ] Générer conditions d'utilisation - [ ] Personnaliser pour Yinshi
Responsable : PO
Tùche 2 : Créer écran de consentement (6h) - [ ] Créer widget Flutter - [ ] Afficher politique de confidentialité - [ ] Afficher conditions d'utilisation - [ ] Ajouter checkbox d'acceptation - [ ] Ajouter boutons Accepter/Refuser
Responsable : Dev 1
TĂąche 3 : Stocker le consentement (4h)
- [ ] Ajouter champs Firestore
- consentement_accepte : boolean
- date_consentement : timestamp
- version_consentement : string
- [ ] Implémenter sauvegarde
Responsable : Dev 2
Jour 4-5 : Validation Webhooks
Tùche 1 : Setup Stripe Webhooks (2h) - [ ] Aller dans Stripe Dashboard - [ ] Copier webhook secret - [ ] Configurer le secret cÎté backend (as-is : Secret Manager via extension Stripe)
Responsable : PO
Tùche 2 : Implémenter validation HMAC-SHA256 (6h) - [ ] Créer Cloud Function pour webhooks - [ ] Vérifier signature HMAC-SHA256 - [ ] Vérifier timestamp (replay attack) - [ ] Rejeter les webhooks invalides
Responsable : Dev 1
TĂąche 3 : Logger les webhooks (4h)
- [ ] Créer collection Firestore webhook_logs
- [ ] Logger tous les webhooks
- [ ] Inclure : timestamp, event_id, type, résultat
Responsable : Dev 2
Semaine 2
Jour 6-7 : Audit Trails
Tùche 1 : Créer collection audit_logs (2h) - [ ] Créer structure Firestore - [ ] Définir champs - [ ] Créer indexes
Responsable : Dev 2
Tùche 2 : Logger les actions sensibles (8h) - [ ] Logger connexions (succÚs + échecs) - [ ] Logger paiements (succÚs + échecs) - [ ] Logger changements de rÎle - [ ] Logger suppressions de compte - [ ] Logger modifications d'abonnement
Responsable : Dev 1 & 2
Tùche 3 : Protéger les logs (4h) - [ ] Implémenter Firestore Rules - [ ] Seuls admins peuvent lire - [ ] Logs non modifiables - [ ] Définir rétention (90 jours)
Responsable : Dev 2
Jour 8-10 : Tests & Validation
TĂąche 1 : Tests unitaires (4h) - [ ] Tester validation webhooks - [ ] Tester logging - [ ] Tester consentement
Responsable : Dev 1
Tùche 2 : Tests d'intégration (4h) - [ ] Tester flux complet de paiement - [ ] Tester avec Stripe CLI - [ ] Tester avec données de test
Responsable : Dev 2
TĂąche 3 : Code review & ajustements (4h) - [ ] Revoir le code - [ ] Corriger les bugs - [ ] Optimiser la performance
Responsable : Dev 1 & 2
Tùche 4 : Documentation (2h) - [ ] Documenter les changements - [ ] Créer guide d'implémentation - [ ] Mettre à jour README
Responsable : PO
Sprint 1 - Validation
Checklist de fin de sprint :
- [ ] Documents légaux créés et lisibles
- [ ] Ăcran de consentement fonctionne
- [ ] Consentement stocké dans Firestore
- [ ] Webhooks Stripe validés
- [ ] Logs des webhooks complets
- [ ] Audit trails implémentés
- [ ] Firestore Rules auditées
- [ ] Tous les tests passent
- [ ] Code review complétée
- [ ] Documentation mise Ă jour
Réunion de fin de sprint (1h) : - Présenter les résultats - Discuter des problÚmes rencontrés - Planifier Sprint 2
đ Sprint 2 - Phase 2 (Haute PrioritĂ©)
Durée : 2 semaines (10 jours de travail)
Ăquipe : PO + 2 Dev
Objectif : Implémenter les éléments avant production
Semaine 3
Jour 1-2 : Droit Ă l'Oubli
Tùche 1 : Créer endpoint de suppression (4h) - [ ] Vérifier authentification - [ ] Demander confirmation - [ ] Implémenter logique de suppression
Responsable : Dev 1
Tùche 2 : Supprimer les données Firestore (4h) - [ ] Supprimer profil utilisateur - [ ] Supprimer abonnement - [ ] Supprimer historique de paiement - [ ] Supprimer logs utilisateur
Responsable : Dev 2
TĂąche 3 : Supprimer Stripe & Firebase (4h) - [ ] Annuler l'abonnement Stripe - [ ] Supprimer le compte Firebase - [ ] Envoyer email de confirmation
Responsable : Dev 1
Jour 3-4 : Export de Données
Tùche 1 : Créer endpoint d'export (4h) - [ ] Vérifier authentification - [ ] Récupérer toutes les données - [ ] Générer JSON/CSV
Responsable : Dev 2
Tùche 2 : Générer fichier chiffré (4h) - [ ] Chiffrer le fichier - [ ] Créer lien de téléchargement - [ ] Lien valide 7 jours
Responsable : Dev 1
TĂąche 3 : Envoyer par email (2h) - [ ] Envoyer lien par email - [ ] Inclure instructions - [ ] Tester
Responsable : Dev 2
Jour 5 : Gestion des Annulations avec Délai
Tùche 1 : Annulation immédiate (4h)
- [ ] Cloud Function cancelSubscriptionImmediate
- [ ] Vérifier authentification
- [ ] Annuler l'abonnement Stripe
- [ ] Révoquer l'accÚs immédiatement
Responsable : Dev 1
Tùche 2 : Annulation à fin de période (4h)
- [ ] Cloud Function cancelSubscriptionAtPeriodEnd
- [ ] Configurer cancel_at_period_end
- [ ] Maintenir l'accĂšs jusqu'Ă la fin
- [ ] Envoyer email de confirmation
Responsable : Dev 2
Jour 6-7 : Gestion des Litiges & Moyens de Paiement
TĂąche 1 : Gestion des Litiges (6h)
- [ ] Webhook handler charge.dispute.created
- [ ] Logger le litige dans Firestore
- [ ] Envoyer notification interne (email/Slack)
- [ ] Créer interface admin pour preuves
Responsable : Dev 1
TĂąche 2 : Gestion des Moyens de Paiement (6h)
- [ ] Cloud Function createSetupIntent
- [ ] Interface Flutter sécurisée
- [ ] Formulaire de carte avec SDK Stripe
- [ ] Mettre à jour le moyen de paiement par défaut
Responsable : Dev 2
Tùche 3 : Prévention de la Fraude (4h) - [ ] Configurer Stripe Radar - [ ] Créer rÚgles personnalisées - [ ] Activer 3D Secure - [ ] Mettre en place monitoring
Responsable : Dev 1
Jour 8-10 : Factures & Tests
Tùche 1 : Factures (4h) - [ ] Setup Stripe Invoices API - [ ] Stocker factures dans Firestore - [ ] Interface de téléchargement - [ ] Envoyer factures par email
Responsable : Dev 2
Tùche 2 : Gestion Erreurs de Paiement (4h) - [ ] Implémenter retry logic - [ ] Backoff exponentiel - [ ] Notifications utilisateur
Responsable : Dev 1
Tùche 3 : Tests complets (4h) - [ ] Tester suppression de compte - [ ] Tester export de données - [ ] Tester annulations - [ ] Tester gestion litiges - [ ] Tester mise à jour paiement
Responsable : Dev 1 & 2
TĂąche 4 : Code review & documentation (2h) - [ ] Revoir le code - [ ] Corriger les bugs - [ ] Mettre Ă jour documentation
Responsable : Dev 1 & 2
Sprint 2 - Validation
Checklist de fin de sprint :
- [ ] Droit à l'oubli implémenté et testé
- [ ] Export de données implémenté et testé
- [ ] Factures générées automatiquement
- [ ] Factures téléchargeables
- [ ] Factures envoyées par email
- [ ] Gestion des erreurs de paiement
- [ ] Retry logic fonctionne
- [ ] Tous les tests passent
- [ ] Code review complétée
- [ ] Documentation mise Ă jour
Réunion de fin de sprint (1h) : - Présenter les résultats - Vérifier la qualité - Planifier Sprint 3
đ Sprint 3 - Phase 2 (Suite) & Phase 3
Durée : 2 semaines (10 jours de travail)
Ăquipe : PO + 2 Dev
Objectif : Finaliser les éléments de sécurité, conformité et optimisation
Semaine 5
Jour 1-2 : Upgrade/Downgrade d'Abonnement
Tùche 1 : Cloud Function updateSubscription (4h) - [ ] Récupérer l'abonnement actuel - [ ] Mettre à jour avec nouveau priceId - [ ] Gérer le prorata automatique
Responsable : Dev 1
TĂąche 2 : Interface Flutter (4h) - [ ] Ăcran de changement de plan - [ ] Comparaison des plans - [ ] Confirmation et paiement prorata
Responsable : Dev 2
Jour 3-4 : Rate Limiting
Tùche 1 : Setup Firebase Rate Limiting (4h) - [ ] Configurer quotas Firebase - [ ] Implémenter rate limiting cÎté client - [ ] Monitorer les abus
Responsable : Dev 1
Tùche 2 : Rate limiting cÎté serveur (4h) - [ ] Cloud Function avec quotas - [ ] Bloquer les IPs abusives - [ ] Logger les tentatives
Responsable : Dev 2
Jour 5 : Conformité TVA/GST
Tùche 1 : Déterminer TVA par pays (4h) - [ ] API de géolocalisation - [ ] Tableau des taux TVA - [ ] Calcul automatique
Responsable : Dev 1
Semaine 6
Jour 6-7 : Portabilité & Tests
Tùche 1 : Portabilité des Données (4h) - [ ] Format standardisé JSON-LD - [ ] Schema.org markup - [ ] Documentation du format
Responsable : Dev 2
Tùche 2 : Tests de charge (4h) - [ ] Simuler 1000 utilisateurs - [ ] Tester les webhooks - [ ] Vérifier les performances
Responsable : Dev 1
Jour 8-10 : Tests Finaux & Préparation
Tùche 1 : Tests de sécurité (4h) - [ ] Scanner de vulnérabilités - [ ] Tests de pénétration - [ ] Vérifier les permissions
Responsable : Dev 2
Tùche 2 : Checklist déploiement (4h) - [ ] Configurer env production - [ ] Mettre à jour les clés - [ ] Tester en production
Responsable : Dev 1
Tùche 3 : Documentation finale (2h) - [ ] Mettre à jour README - [ ] Documenter l'architecture - [ ] Créer guides d'utilisation
Responsable : Dev 1 & 2
Sprint 3 - Validation
Checklist de fin de sprint :
- [ ] Rate limiting implémenté et testé
- [ ] Conformité TVA implémenté et testé
- [ ] Audit Firestore complété
- [ ] Tests de sécurité passés
- [ ] Audit trails complets
- [ ] Plan de rollback créé
- [ ] Runbook de déploiement créé
- [ ] Ăquipe support formĂ©e
- [ ] PrĂȘt pour production
Réunion de fin de sprint (1h) : - Présenter les résultats - Valider la production-readiness - Planifier le déploiement
đ RĂ©sumĂ© des Estimations
| Sprint | Phase | Durée | Tùches | Priorité |
|---|---|---|---|---|
| Sprint 1 | Critique | 2 sem | 5 Ă©piques | đŽ TRĂS HAUTE |
| Sprint 2 | Haute | 2 sem | 9 Ă©piques | đŽ TRĂS HAUTE |
| Sprint 3 | Moyenne | 2 sem | 5 Ă©piques | đ HAUTE |
| Sprint 4-5 | Optimisation | 2 sem | Audit externe | đĄ MOYENNE |
Total : 8 semaines (40 jours de travail)
đ„ Allocation des Ressources
PO (Julien)
- Sprint 1 : 40% (4 jours) - Recherche juridique + politique
- Sprint 2 : 20% (2 jours)
- Sprint 3 : 30% (3 jours)
Total : 9 jours
Dev 1
- Sprint 1 : 80% (8 jours)
- Sprint 2 : 80% (8 jours)
- Sprint 3 : 80% (8 jours)
Total : 24 jours
Dev 2
- Sprint 1 : 80% (8 jours)
- Sprint 2 : 80% (8 jours)
- Sprint 3 : 80% (8 jours)
Total : 24 jours
đŻ DĂ©pendances Entre Sprints
Sprint 1 (Critique)
âââ Documents lĂ©gaux
âââ Validation webhooks
âââ Audit trails
â
Sprint 2 (Haute Priorité)
âââ Droit Ă l'oubli (dĂ©pend de : Documents lĂ©gaux)
âââ Export de donnĂ©es (dĂ©pend de : Documents lĂ©gaux)
âââ Factures (dĂ©pend de : Validation webhooks)
âââ Gestion erreurs (dĂ©pend de : Validation webhooks)
â
Sprint 3 (Moyenne Priorité)
âââ Rate limiting (indĂ©pendant)
âââ ConformitĂ© TVA (indĂ©pendant)
âââ Tests finaux (dĂ©pend de : Sprint 1 & 2)
â Checklist Avant Chaque Sprint
Avant Sprint 1
- [ ] Ăquipe alignĂ©e
- [ ] Outils installés
- [ ] Branches Git créées
- [ ] Ressources confirmées
Avant Sprint 2
- [ ] Sprint 1 complété
- [ ] Tests passés
- [ ] Code review complétée
- [ ] Aucun bug bloquant
Avant Sprint 3
- [ ] Sprint 2 complété
- [ ] Tests passés
- [ ] Code review complétée
- [ ] Aucun bug bloquant
đ Points de Synchronisation
Quotidien
- Standup : 15 min (9h30)
- Qu'est-ce que j'ai fait hier ?
- Qu'est-ce que je fais aujourd'hui ?
- Quels sont les blocages ?
Hebdomadaire
- Réunion de sprint : 1h (lundi 10h)
- Revoir les tĂąches de la semaine
- Identifier les risques
- Ajuster le plan si besoin
Bi-hebdomadaire
- Fin de sprint : 1h
- Présenter les résultats
- Discuter des problĂšmes
- Planifier le sprint suivant
đ Prochaines Ătapes
- Valider ce plan avec l'équipe
- Créer les branches Git pour chaque sprint
- Commencer Sprint 1 lundi prochain
- Suivre le plan semaine par semaine
Document créé par Cascade - Sprint Planning pour Yinshi