veza/docs/V0_903_RELEASE_SCOPE.md
senke da20e83e09 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

260 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# V0.903 Release Scope — Stabilisation v1.0 & Launch Readiness
**Statut** : Planifié
**Phase** : 9 (v1.0 Launch — Final)
**Prérequis** : v0.902 (taguée)
**Date cible** : TBD
**Estimation** : ~4 sprints (20 jours ouvrés)
**Précédente** : [v0.902](archive/V0_902_RELEASE_SCOPE.md)
---
## 1. Objectif
Dernière version avant la v1.0. Finalise les modules **Recherche & Recommandations** (recherche phonétique, correction orthographique, recherches sauvegardées, algorithme de recommandation, playlists auto-générées), **Player & Playlists** (smart playlists, export M3U, fusion/duplication), **Auth & Sécurité** (session management device list, notification login inhabituel, historique connexions, CAPTCHA, historique mots de passe). Inclut une phase de **stabilisation** intensive (load testing k6, optimisation Redis/DB/CDN) et la **documentation v1.0 complète**. Se conclut par le tag **v1.0**.
---
## 2. État actuel (post-v0.902)
| Composant | État | Détail |
|-----------|------|--------|
| **Recherche fulltext** | ✅ Livré v0.203 | pg_trgm fuzzy, AND/OR/NOT, autocomplete |
| **Recherche phonétique** | ❌ Absent | Pas de soundex/metaphone |
| **Correction orthographique** | ❌ Absent | Pas de "did you mean?" |
| **Recherches sauvegardées** | ❌ Absent | Pas de persist des recherches |
| **Algorithme recommandation** | ❌ Absent | Autoplay basique (random), pas de collaborative filtering |
| **Playlists auto-générées** | ❌ Absent | Pas de "Discover Weekly" type |
| **Smart playlists** | ❌ Absent | Playlists statiques uniquement |
| **Export M3U** | ❌ Absent | Pas d'export playlist |
| **Merge/duplicate playlists** | ❌ Absent | Pas de fusion ni duplication |
| **Session management** | ❌ Absent | Pas de liste des devices actifs |
| **Login inhabituel notif** | ❌ Absent | Pas de détection |
| **Historique connexions** | ❌ Absent | Pas de log |
| **CAPTCHA** | ❌ Absent | Pas de protection bot |
| **Historique mots de passe** | ❌ Absent | Pas d'empêchement réutilisation |
| **Load testing** | ❌ Absent | Pas de k6/vegeta |
| **Documentation v1.0** | ⚠️ Partiel | API_REFERENCE existe, manque production guide |
---
## 3. Lots
### Lot ST1 — Recherche & Recommandations
| # | Tâche | Fichiers impactés | Effort |
|---|-------|--------------------|--------|
| ST1-01 | Recherche phonétique — extension PostgreSQL `pg_trgm` + `fuzzystrmatch` (soundex, metaphone), intégration dans search query | Backend | M |
| ST1-02 | Correction orthographique — "Did you mean...?" basé sur trigram similarity > 0.3, suggestion de la meilleure correspondance | Backend, frontend | M |
| ST1-03 | Recherches sauvegardées — `POST /search/saved`, `GET /search/saved`, `DELETE /search/saved/:id`, migration `132_saved_searches.sql` | Backend, frontend | M |
| ST1-04 | Algorithme recommandation — collaborative filtering basique (users who listened to X also listened to Y), `GET /tracks/recommendations` amélioré | Backend | L |
| ST1-05 | Playlists auto-générées — "Discover Weekly" (30 tracks recommandées, régénérées chaque lundi), "Your Top Tracks" (top plays 30j) | Backend, frontend | L |
| ST1-06 | Frontend — "Did you mean" dans SearchPage, section saved searches, playlists auto dans Library | Frontend | M |
| ST1-07 | Tests — phonetic search, suggestion quality, saved searches CRUD, recommendation relevance | Tests | M |
### Lot ST2 — Player & Playlists Final
| # | Tâche | Fichiers impactés | Effort |
|---|-------|--------------------|--------|
| ST2-01 | Smart playlists — règles dynamiques (genre=hiphop AND bpm>120 AND added_last_30d), auto-update, migration `133_smart_playlists.sql` | Backend | L |
| ST2-02 | Export M3U — `GET /playlists/:id/export?format=m3u` retourne fichier M3U avec URLs des tracks | Backend | S |
| ST2-03 | Merge playlists — `POST /playlists/merge` (body: playlist_ids[], target_name), déduplique les tracks | Backend | M |
| ST2-04 | Duplicate playlist — `POST /playlists/:id/duplicate` crée une copie avec nouveau nom | Backend | S |
| ST2-05 | Frontend — boutons Export, Merge, Duplicate dans PlaylistView, Smart Playlist builder (formulaire de règles) | Frontend | L |
| ST2-06 | Tests — smart playlist auto-update, M3U format, merge dedup, duplicate | Tests | M |
### Lot ST3 — Auth & Sécurité Final
| # | Tâche | Fichiers impactés | Effort |
|---|-------|--------------------|--------|
| ST3-01 | Session management — migration `134_sessions.sql` (table sessions: user_id, device, ip, user_agent, created_at, last_active_at), `GET /auth/sessions`, `DELETE /auth/sessions/:id` | Backend | M |
| ST3-02 | Frontend session management — page dans Settings/Security avec liste des devices, bouton "Revoke" | Frontend | M |
| ST3-03 | Login inhabituel — détecter nouvelle IP/device non reconnu, envoyer email notification, flag `is_suspicious` sur session | Backend | M |
| ST3-04 | Historique connexions — `GET /auth/login-history` (dernières 50 connexions avec IP, device, date, status) | Backend, frontend | M |
| ST3-05 | CAPTCHA — intégration hCaptcha/reCAPTCHA sur login après 3 échecs, registration, password reset | Backend middleware, frontend | M |
| ST3-06 | Historique mots de passe — migration ajout `password_history JSONB` sur users, empêcher réutilisation des 5 derniers | Backend | M |
| ST3-07 | Tests — session CRUD, suspicious login detection, CAPTCHA verification, password history | Tests | M |
### Lot ST4 — Performance & Load Testing
| # | Tâche | Fichiers impactés | Effort |
|---|-------|--------------------|--------|
| ST4-01 | k6 load tests — scripts pour auth flow, search, marketplace, streaming, WebSocket chat | `tests/load/` (nouveau) | L |
| ST4-02 | Redis cache optimization — cache strategy review, cache-aside pattern sur queries fréquentes (search, trending, analytics) | Backend | M |
| ST4-03 | DB query optimization — EXPLAIN ANALYZE sur les 10 queries les plus lentes, ajout index manquants, query rewrite | Backend | M |
| ST4-04 | CDN configuration — cache headers sur assets statiques, HLS segments, images produits | Nginx/HAProxy config | M |
| ST4-05 | Performance targets validation — p50 < 50ms, p95 < 200ms, p99 < 500ms sur les endpoints critiques | Tests | M |
### Lot ST5 — Documentation v1.0
| # | Tâche | Fichiers impactés | Effort |
|---|-------|--------------------|--------|
| ST5-01 | API Reference complète tous les endpoints documentés (swagger + API_REFERENCE.md final) | `docs/API_REFERENCE.md` | L |
| ST5-02 | Production Deployment Guide docker-compose prod, env vars, backup strategy, monitoring setup, scaling guide | `docs/PRODUCTION_GUIDE.md` (nouveau) | L |
| ST5-03 | README v1.0 mise à jour avec architecture, quick start, features list, contributing guide | `README.md` | M |
| ST5-04 | Migration Guide liste toutes les migrations (1 à 134+), procédure upgrade, rollback | `docs/MIGRATION_GUIDE.md` (nouveau) | M |
| ST5-05 | CHANGELOG v1.0 historique complet de toutes les versions v0.101 à v1.0 | `CHANGELOG.md` | M |
### Lot REL — Release v1.0
| # | Tâche | Fichiers impactés | Effort |
|---|-------|--------------------|--------|
| REL-01 | E2E pass complet tous les smoke tests de v0.703 à v0.903 exécutés | Smoke tests | L |
| REL-02 | Security audit final vérifier headers, rate limiting, auth, GDPR | Audit | M |
| REL-03 | Performance benchmark final k6 results, Lighthouse scores | Benchmark | M |
| REL-04 | PROJECT_STATE, FEATURE_STATUS mise à jour finale v1.0 | `docs/` | S |
| REL-05 | RETROSPECTIVE_V0903.md + RETROSPECTIVE_V1.md | `docs/` | M |
| REL-06 | Tag v0.903, tag v1.0 | Git | S |
---
## 4. Hors scope v0.903 / v1.0 (reporté v2.0)
| Élément | Raison |
|---------|--------|
| Module 8 Education (cours, certificats) | Abandonné complexité, pas de demande |
| Module 15 IA (mastering auto, stem separation, AI mixing) | Trop avancé, R&D nécessaire |
| Module 17 Collaboration temps réel (DAW, whiteboard) | Infrastructure spécialisée requise |
| Module 18 Blockchain/Web3 (NFT, tokens, DAO) | Priorité basse, marché incertain |
| Module 19 Intégrations DAW (Ableton Link, FL Studio, etc.) | Plugins spécialisés requis |
| Module 20 Applications natives (iOS, Android, Desktop) | Post-v1.0, React Native ou Tauri |
| Module 21 Gamification (XP, niveaux, achievements) | Nice-to-have, pas critique pour v1.0 |
| 2FA SMS / Passkeys | Infra Twilio, WebAuthn v1.1 |
| Chromecast / AirPlay | Protocoles propriétaires v2.0 |
| Spectrogram / equalizer visualizer | Nice-to-have v2.0 |
| PayPal, Crypto payments | Intégration supplémentaire v2.0 |
| GraphQL API | REST suffisant pour v1.0 |
| SDK JavaScript/Python/Go | Post-launch |
---
## 5. Critères d'acceptation v0.903
- [ ] Recherche phonétique : "hip hop" trouve "hiphop" et inversement
- [ ] "Did you mean" : suggestion si < 3 résultats et similarity > 0.3
- [ ] Recherches sauvegardées : CRUD, max 50 par user
- [ ] Recommandations : collaborative filtering, au moins 10 tracks pertinentes
- [ ] Playlists auto : "Discover Weekly" (30 tracks), "Your Top Tracks" (20 tracks)
- [ ] Smart playlists : builder de règles, auto-update quotidien
- [ ] Export M3U : fichier téléchargeable avec URLs valides
- [ ] Merge/duplicate : fusion avec dedup, copie fidèle
- [ ] Session management : liste devices, revoke, logout all
- [ ] Login inhabituel : email envoyé, flag suspicious
- [ ] CAPTCHA : hCaptcha sur login (3 échecs), register, reset
- [ ] Password history : 5 derniers refusés
- [ ] k6 load tests : tous les scénarios passent à 100 concurrent users
- [ ] p95 latency < 200ms sur les endpoints critiques
- [ ] Documentation : API Reference, Production Guide, README, Migration Guide
- [ ] Tous les smoke tests v0.703v0.903 passent
- [ ] Tag v0.903 et tag v1.0 créés
---
## 6. Critères d'acceptation v1.0
| Critère | Cible |
|---------|-------|
| Modules opérationnels | 15+ / 24 |
| Features livrées | ~470 / 600 (78%) |
| Score maturité produit | 8/10 |
| Tests backend passants | 100% |
| Frontend build | 0 errors |
| Lighthouse Performance | 85 |
| Lighthouse Accessibility | 90 |
| Lighthouse PWA | 90 |
| p95 latency | < 200ms |
| Security headers | All present |
| GDPR compliance | (export + deletion) |
| Documentation | API Ref + Production Guide + README |
---
## 7. Risques
| Risque | Mitigation |
|--------|------------|
| Collaborative filtering froid (pas assez de données) | Fallback sur genre/BPM similarity |
| Smart playlists query lente | Index optimisés, cache résultat, limit 500 tracks |
| k6 load test révèle des bottlenecks | 2 sprints buffer pour fixes perf |
| CAPTCHA UX friction | Seulement après échecs, pas au premier login |
| Password history migration lourde | Hasher progressivement à chaque changement |
| Documentation effort sous-estimé | Paralléliser avec le dev, pas en dernier |
---
## 8. Architecture v1.0 finale
```mermaid
graph TB
subgraph clients [Clients]
WEB[Web App React PWA]
end
subgraph gateway [Gateway]
HAP[HAProxy LB]
end
subgraph backend [Backend Go]
API[API Server]
WS[WebSocket Hub Chat]
WRK[Background Workers]
end
subgraph data [Data Layer]
PG[(PostgreSQL 16)]
RD[(Redis 7)]
S3[(MinIO S3)]
end
subgraph monitoring [Monitoring]
PROM[Prometheus]
GRAF[Grafana]
ALERT[Alertmanager]
end
subgraph external [External]
HS[Hyperswitch Payments]
SC[Stripe Connect]
SG[SendGrid Email]
GP[Giphy API]
GEO[MaxMind GeoIP]
end
WEB --> HAP
HAP --> API
HAP --> WS
API --> PG
API --> RD
API --> S3
API --> HS
API --> SC
API --> SG
API --> GP
API --> GEO
WS --> PG
WS --> RD
WRK --> PG
WRK --> RD
WRK --> S3
WRK --> SG
API --> PROM
WS --> PROM
PROM --> GRAF
PROM --> ALERT
```
---
## 9. Références
- [V0_902_RELEASE_SCOPE.md](archive/V0_902_RELEASE_SCOPE.md)
- [SCOPE_CONTROL.md](SCOPE_CONTROL.md)
- [ORIGIN_FEATURES_REGISTRY.md](veza-docs/ORIGIN/ORIGIN_FEATURES_REGISTRY.md)
- [ORIGIN_MASTER_ARCHITECTURE.md](veza-docs/ORIGIN/ORIGIN_MASTER_ARCHITECTURE.md)
- [veza_full_features_list.md](docs/archive/root-md/veza_full_features_list.md) (600 features cible)
- `veza-backend-api/internal/` (backend complet)
- `apps/web/src/` (frontend complet)