veza/docs/V0_901_RELEASE_SCOPE.md
senke 963a327a0a docs: complete roadmap documentation v0.703 to v0.903 (v1.0 target)
Add Release Scope, Implementation Plan, and Smoke Test for 7 versions:
- v0.703: Go Live & Streaming Complet (Phase 7 Finale)
- v0.801: UX/UI Polish, Accessibilite & PWA (Phase 8)
- v0.802: Cloud Complet, Fichiers & Gear Avance (Phase 8)
- v0.803: Securite, Compliance & Outillage Dev (Phase 8)
- v0.901: Marketplace Complet & Analytics Avances (Phase 9)
- v0.902: Social Complet, Chat & Notifications (Phase 9)
- v0.903: Stabilisation v1.0 & Launch Readiness (Phase 9)

21 documents total (3 per version), covering all remaining features
needed to reach v1.0 from v0.702.
2026-02-24 01:32:04 +01:00

150 lines
8.3 KiB
Markdown

# V0.901 Release Scope — Marketplace Complet & Analytics Avancés
**Statut** : Planifié
**Phase** : 9 (v1.0 Launch — Lot 1)
**Prérequis** : v0.803 (taguée)
**Date cible** : TBD
**Estimation** : ~3 sprints (15 jours ouvrés)
**Précédente** : [v0.803](archive/V0_803_RELEASE_SCOPE.md)
---
## 1. Objectif
Première version de la Phase 9. Complète le module **Marketplace** (wishlist, promotions/flash sales, dispute/réclamation, réponses aux reviews, re-téléchargement illimité, informations fiscales) et les **Analytics avancés** (géographie auditeurs, démographie, devices, sources de trafic, projections revenus, analytics admin). Ces fonctionnalités finalisent le volet commerce et données pour la v1.0.
---
## 2. État actuel (post-v0.803)
| Composant | État | Détail |
|-----------|------|--------|
| **Produits & Catalogue** | ✅ Livré v0.401 | CRUD, filtres, images, previews |
| **Licences & Droits** | ✅ Livré v0.401 | Types, conditions, LicenceCard |
| **Checkout Hyperswitch** | ✅ Livré v0.402 | Production-ready, return URL |
| **Codes promo** | ✅ Livré v0.402 | Validation, OrderSummary |
| **Reviews** | ✅ Livré v0.702 | Create, List, tests unitaires |
| **Factures PDF** | ✅ Livré v0.702 | GenerateInvoice, download |
| **Remboursements** | ✅ Livré v0.702 | RefundOrder, licence revocation |
| **Seller dashboard** | ✅ Livré v0.401 | Stats, evolution chart, top products |
| **Transfer auto** | ✅ Livré v0.603 | Stripe Connect, commission plateforme |
| **Wishlist** | ❌ Absent | wishlist.go existe mais non connecté frontend |
| **Promotions / flash sales** | ❌ Absent | Pas de système de promotions dynamiques |
| **Dispute / réclamation** | ❌ Absent | Pas de flow dispute client |
| **Répondre aux reviews** | ❌ Absent | Pas de réponse vendeur aux reviews |
| **Re-téléchargement illimité** | ❌ Absent | Pas de re-download après achat |
| **Informations fiscales** | ❌ Absent | Pas de calcul taxes automatique |
| **Analytics créateur** | ✅ Livré v0.202 | Stats, charts, export CSV/JSON |
| **Géographie auditeurs** | ❌ Absent | Pas de carte géographique |
| **Démographie** | ❌ Absent | Pas de données démographiques |
| **Device analytics** | ❌ Absent | Pas de breakdown par device |
| **Admin analytics** | ❌ Absent | Pas de DAU/MAU, rétention |
---
## 3. Lots
### Lot MK1 — Marketplace Avancé
| # | Tâche | Fichiers impactés | Effort |
|---|-------|--------------------|--------|
| MK1-01 | Wishlist frontend — connecter wishlist.go existant, `WishlistView`, bouton coeur sur ProductCard, `GET /marketplace/wishlist` | Frontend + routes | M |
| MK1-02 | `POST /marketplace/wishlist/:productId`, `DELETE /marketplace/wishlist/:productId` — ajout/retrait wishlist | Backend routes | S |
| MK1-03 | Promotions — migration `126_promotions.sql` (table promotions: product_id, discount_percent, starts_at, ends_at, is_active), CRUD endpoints | Migrations, handlers | L |
| MK1-04 | Flash sales frontend — badge "PROMO -X%" sur ProductCard, countdown timer, page /marketplace/deals | Frontend | M |
| MK1-05 | Dispute / réclamation — migration `127_disputes.sql` (table disputes: order_id, buyer_id, reason, status, resolution), `POST /marketplace/orders/:id/dispute`, `GET /admin/disputes` | Migrations, handlers | L |
| MK1-06 | Réponse aux reviews — `POST /marketplace/reviews/:id/reply` (seller uniquement), affichage reply dans ProductDetailViewReviews | Backend, frontend | M |
| MK1-07 | Re-download — `GET /marketplace/orders/:id/download` retourne lien S3 temporaire pour les fichiers achetés, illimité dans le temps | Backend | M |
| MK1-08 | Taxes — config `TAX_RATE` par pays (défaut 0), calcul automatique dans checkout, affichage dans OrderSummary | Backend, frontend | M |
| MK1-09 | MSW handlers — wishlist, promotions, disputes, review reply, download | MSW | S |
| MK1-10 | Tests — wishlist CRUD, promotion validity, dispute flow, re-download auth | Tests | M |
### Lot AN1 — Creator Analytics Complet
| # | Tâche | Fichiers impactés | Effort |
|---|-------|--------------------|--------|
| AN1-01 | Géographie auditeurs — collecte IP → country (MaxMind GeoIP2-Lite), `GET /analytics/geography` | Backend | L |
| AN1-02 | Carte géographique frontend — composant carte avec heatmap par pays (bibliothèque légère, ex: react-simple-maps) | Frontend | L |
| AN1-03 | Démographie — user-agent parsing (device, OS, browser), `GET /analytics/demographics` | Backend | M |
| AN1-04 | Device analytics — breakdown desktop/mobile/tablet, chart donut | Frontend | M |
| AN1-05 | Sources de trafic — referrer tracking, `GET /analytics/traffic-sources` | Backend | M |
| AN1-06 | Revenue projections — `GET /analytics/revenue/projection` basé sur tendance 30/60/90 jours (régression linéaire simple) | Backend | M |
| AN1-07 | Comparaison périodes — `GET /analytics/compare?period1=...&period2=...` | Backend | M |
| AN1-08 | Frontend analytics dashboard enrichi — onglets Geography, Demographics, Traffic, Revenue | Frontend | L |
| AN1-09 | Tests — geography parsing, projection calculation, comparison | Tests | M |
### Lot AN2 — Admin Analytics
| # | Tâche | Fichiers impactés | Effort |
|---|-------|--------------------|--------|
| AN2-01 | DAU/MAU — `GET /admin/analytics/users` basé sur last_active_at | Backend | M |
| AN2-02 | Nouveaux inscrits — `GET /admin/analytics/signups?period=30d` | Backend | S |
| AN2-03 | Taux de rétention — calcul D1, D7, D30 retention | Backend | M |
| AN2-04 | Volume de transactions — `GET /admin/analytics/transactions` (revenus, nombre, ticket moyen) | Backend | S |
| AN2-05 | Performances infrastructure — `GET /admin/analytics/performance` (p50, p95 latency, error rate) via Prometheus API | Backend | M |
| AN2-06 | Frontend admin analytics — dashboard avec widgets DAU/MAU, signups chart, retention curve, transactions summary | Frontend | L |
| AN2-07 | Tests — DAU calculation, retention formula, transaction aggregation | Tests | M |
### Lot QA1 — Tests & Release
| # | Tâche | Fichiers impactés | Effort |
|---|-------|--------------------|--------|
| QA1-01 | Smoke test v0.901 | `docs/SMOKE_TEST_V0901.md` | S |
| QA1-02 | Mise à jour docs | `docs/` | S |
| QA1-03 | Rétrospective, archivage, placeholder v0.902, tag | `docs/`, Git | S |
---
## 4. Hors scope v0.901
| Élément | Version cible |
|---------|---------------|
| Chat enrichi (images, GIFs) | v0.902 |
| Transactional emails | v0.902 |
| Social complete (hashtags, QR) | v0.902 |
| Profiles complete (verified badge) | v0.902 |
| Search recommendations ML | v0.903 |
| PayPal support | v2.0 |
| Crypto payments | v2.0 |
| Signature électronique licences | v2.0 |
| Contrat automatique généré | v2.0 |
---
## 5. Critères d'acceptation
- [ ] Wishlist : ajout/retrait produit, page /marketplace/wishlist, coeur sur ProductCard
- [ ] Promotions : CRUD, discount appliqué au checkout, badge PROMO, countdown, page /deals
- [ ] Dispute : création par buyer, liste admin, résolution (refund/dismiss)
- [ ] Review reply : vendeur peut répondre, reply affiché sous la review
- [ ] Re-download : lien S3 temporaire illimité pour les achats
- [ ] Taxes : calcul auto par pays, affiché dans OrderSummary
- [ ] Géographie : carte heatmap des auditeurs par pays
- [ ] Démographie : breakdown device/OS/browser
- [ ] Traffic sources : referrer top 10
- [ ] Revenue projections : prévision 30/60/90j
- [ ] Admin DAU/MAU, signups, retention, transactions
- [ ] Tag v0.901 créé
---
## 6. Risques
| Risque | Mitigation |
|--------|------------|
| GeoIP database size | Utiliser MaxMind GeoIP2-Lite (gratuit, ~60MB), refresh mensuel |
| Projections revenus fausses | Disclaimer "estimation basée sur les 90 derniers jours" |
| Carte géographique lourde (SVG) | react-simple-maps avec lazy load, simplification polygones |
| Dispute flow complexe | Flow simple v1 (open → resolve), workflow avancé en v2 |
| Taxes multi-pays | Taux configurables par pays dans admin, pas de calcul auto TVA complexe |
---
## 7. Références
- [V0_803_RELEASE_SCOPE.md](archive/V0_803_RELEASE_SCOPE.md)
- [SCOPE_CONTROL.md](SCOPE_CONTROL.md)
- `veza-backend-api/internal/core/marketplace/` (service, models, wishlist.go)
- `veza-backend-api/internal/core/analytics/`
- `apps/web/src/features/marketplace/`
- `apps/web/src/features/analytics/`