veza/docs/archive/V0_201_RELEASE_SCOPE.md

239 lines
9.2 KiB
Markdown

# Scope v0.201 — Phase 2 Contenu
**Version cible** : v0.201 (X=2, Y=1)
**Prérequis** : v0.103 taguée et stable
**Objectif** : Phase 2 Contenu — Recherche avancée, métadonnées enrichies, analytics créateur/vendeur
**Dernière mise à jour** : 20 février 2026
**Effort estimé** : 6-8 semaines de développement
---
## 1. Principe directeur
> **v0.201 = ouverture Phase 2 (Contenu).**
>
> Trois axes principaux :
> 1. **Recherche avancée** : Filtres, facettes, full-text, autocomplete
> 2. **Métadonnées** : BPM, key, lyrics, tags (complétion v0.103 Lot E)
> 3. **Analytics** : Dashboards créateur, stats vendeur, rapports
>
> **Carry-over v0.103** : Lots C (Player), D (Queue), E (Métadonnées), F (Seller) non livrés en v0.103 sont intégrés dans v0.201 selon priorité.
---
## 2. Contexte — État post v0.103
### 2.1 Livré en v0.103
| Lot | Feature | Statut |
|-----|---------|--------|
| A1 | OAuth Spotify | ✅ |
| A2 | 2FA SMS | Reporté v0.104 |
| A3 | Passkeys/WebAuthn | Reporté v0.104 |
| A4 | Sessions enrichies | ✅ |
| B1 | Bannière profil | ✅ |
| B2 | Liens sociaux | ✅ |
| B3 | Profil privé | ✅ |
### 2.2 Reporté de v0.103 vers v0.201
| Lot | Feature | Priorité v0.201 |
|-----|---------|-----------------|
| C | Player (crossfade, gapless, PiP) | Moyenne |
| D | Queue collaborative, Autoplay | Basse |
| E | Métadonnées (BPM, key, lyrics, tags) | Haute |
| F | Seller dashboard (stats, produits) | Moyenne |
### 2.3 Cible v0.201
- **Features cumulées** : ~330 / 600 (55%)
- **Delta** : +60 features individuelles
- **Phase 2** : focus contenu et découverte
---
## 3. Features IN SCOPE v0.201
### 3.1 Lot G — Recherche avancée (priorité haute)
**Objectif** : Enrichir la recherche existante.
**Effort** : L (5-7 jours)
**Référence** : Module 11 (veza_full_features_list)
| # | Feature | Tâche détaillée | Backend | Frontend | Critère de sortie |
|---|---------|-----------------|---------|----------|-------------------|
| G1 | **Filtres recherche** | Filtres par genre, BPM, key, durée, date | Query params sur GET /search | UI filtres dans SearchPage | Filtres appliqués, résultats mis à jour |
| G2 | **Tri avancé** | Tri par pertinence, date, popularité, alphabétique | Paramètre `sort` | Dropdown tri | Tri fonctionnel |
| G3 | **Autocomplete** | Suggestions pendant la frappe | Route /search/suggestions ou extension | Input avec dropdown | Suggestions affichées |
| G4 | **Recherche par type** | Tracks, artistes, playlists, utilisateurs | Paramètre `type` ou endpoints dédiés | Onglets ou facettes | Résultats par catégorie |
| G5 | **Historique recherche** | Mémoriser les dernières recherches | Table/search_history ou localStorage | Section historique | Dernières recherches cliquables |
**Features list v1.0** : 352-365 (Module 11)
---
### 3.2 Lot E (complétion) — Métadonnées enrichies
**Objectif** : Compléter les métadonnées des tracks.
**Effort** : M (3-5 jours)
**Référence** : Module 3.3
| # | Feature | Tâche détaillée | Backend | Frontend | Critère de sortie |
|---|---------|-----------------|---------|----------|-------------------|
| E1 | **BPM** | Champ BPM (beats per minute) | Migration `bpm`, CRUD | TrackDetail, édition | BPM visible et éditable |
| E2 | **Musical key** | Clé musicale (C, Am, etc.) | Migration `key`, CRUD | TrackDetail, édition | Key visible et éditable |
| E3 | **Lyrics** | Paroles statiques (synchro optionnelle) | Table lyrics, route GET/POST | TrackDetail, player overlay | Paroles affichées |
| E4 | **Tags suggérés** | Suggestions de tags (mock ou API) | Route ou logique basée sur genre/BPM | UI édition track | Tags proposés, ajout 1 clic |
**Features list v1.0** : 95, 96, 102, 105
---
### 3.3 Lot H — Analytics créateur (priorité haute)
**Objectif** : Dashboard analytics pour créateurs.
**Effort** : L (5-7 jours)
**Référence** : Module 12.1
| # | Feature | Tâche détaillée | Backend | Frontend | Critère de sortie |
|---|---------|-----------------|---------|----------|-------------------|
| H1 | **Stats d'écoute** | Plays par track, période, durée moyenne | Agrégation playback_analytics | Page /analytics ou section | Chiffres affichés |
| H2 | **Graphiques** | Évolution plays, top tracks | Route /analytics/creator ou extension | Charts (recharts ou équivalent) | Graphiques lisibles |
| H3 | **Taux de complétion** | % d'écoute complète par track | Calcul backend | Affichage dans dashboard | Métrique visible |
| H4 | **Export données** | Export CSV/JSON des stats | Route GET /analytics/export | Bouton export | Fichier téléchargé |
**Features list v1.0** : 381-395
---
### 3.4 Lot F (complétion) — Seller dashboard
**Objectif** : Dashboard vendeur fonctionnel.
**Effort** : M (3-4 jours)
**Référence** : Module 7.4
| # | Feature | Tâche détaillée | Backend | Frontend | Critère de sortie |
|---|---------|-----------------|---------|----------|-------------------|
| F1 | **Stats ventes** | Nombre ventes, revenus, période | Route /sell/stats ou agrégation | Page /sell | Chiffres affichés |
| F2 | **Liste produits** | Tracks/albums en vente par l'utilisateur | Extension catalogue existant | Liste dans seller dashboard | Produits listés |
**Features list v1.0** : 266-268
---
### 3.5 Lot C — Player avancé (priorité moyenne)
**Objectif** : Améliorer l'expérience d'écoute.
**Effort** : M (2-4 jours)
**Référence** : Module 4.1
| # | Feature | Tâche détaillée | Backend | Frontend | Critère de sortie |
|---|---------|-----------------|---------|----------|-------------------|
| C1 | **Crossfade** | Transition en fondu entre tracks | N/A | Logique player | Transition fluide 1-10s configurable |
| C2 | **Gapless playback** | Lecture sans silence entre tracks | N/A | Préchargement audio | Pas de coupure |
| C3 | **PiP** | Picture-in-Picture (si supporté) | N/A | Media Session + PiP API | Fenêtre flottante |
**Features list v1.0** : 115, 116, 121
---
### 3.6 Lot D — Queue avancée (priorité basse)
**Objectif** : Queue collaborative et autoplay.
**Effort** : M (3-4 jours)
**Référence** : Module 4.2
| # | Feature | Tâche détaillée | Backend | Frontend | Critère de sortie |
|---|---------|-----------------|---------|----------|-------------------|
| D1 | **Queue collaborative** | Partager queue en session | Modèle session queue partagée | UI partage | Plusieurs users, même queue |
| D2 | **Autoplay** | Recommandations quand queue vide | Route recommandations | Section "À écouter ensuite" | Suggestions, ajout 1 clic |
**Features list v1.0** : 134, 135
---
## 4. Récapitulatif par lot
| Lot | Nom | Priorité | Effort | Features |
|-----|-----|----------|--------|----------|
| **G** | Recherche avancée | Haute | L | 5 |
| **E** | Métadonnées enrichies | Haute | M | 4 |
| **H** | Analytics créateur | Haute | L | 4 |
| **F** | Seller dashboard | Moyenne | M | 2 |
| **C** | Player avancé | Moyenne | M | 3 |
| **D** | Queue avancée | Basse | M | 2 |
| | **TOTAL** | | **20-32j** | **20** |
---
## 5. Features HORS SCOPE v0.201
| Feature | Raison | Version cible |
|---------|--------|---------------|
| Recherche phonétique, booléenne | Complexité | v0.202+ |
| Collaborative filtering | Nécessite historique riche | v0.202+ |
| Social Trending API | Dépend recommandations | v0.301+ |
| 2FA SMS, Passkeys | v0.104 dédié | v0.104 |
| Go Live vidéo | v0.703 | v0.703 |
---
## 6. Critères de stabilité v0.201
### 6.1 Build & compilation
- [ ] `go build ./...` — 0 erreur
- [ ] `npm run build` — 0 erreur
- [ ] `npx tsc --noEmit` — 0 erreur
### 6.2 Tests
- [ ] `go test ./...` — pas de régression
- [ ] `npm test -- --run` — pas de régression
- [ ] E2E : recherche, analytics, seller
### 6.3 Documentation
- [ ] FEATURE_STATUS.md mis à jour
- [ ] CHANGELOG v0.201
- [ ] MSW handlers pour nouveaux endpoints
---
## 7. Ordre de livraison recommandé
| Semaine | Lots | Activités |
|---------|------|------------|
| **S1** | E (Métadonnées) | BPM, key, lyrics, tags — base pour recherche |
| **S2** | G (Recherche) | Filtres, tri, autocomplete, facettes |
| **S3** | H (Analytics) | Stats créateur, graphiques, export |
| **S4** | F (Seller) | Stats vendeur, liste produits |
| **S5** | C (Player) | Crossfade, gapless, PiP |
| **S6** | D (Queue) | Autoplay, queue collaborative (si temps) |
| **S7-8** | Stabilisation | Tests, docs, polish |
---
## 8. Branche et workflow
- **Branche** : `release/v0.201`
- **Format commit** : `feat(scope): description` (ex: `feat(search): add BPM filter`)
- **Référence scope** : [SCOPE_CONTROL.md](SCOPE_CONTROL.md) → v0.201
---
## 9. Préparation v0.202 (Phase 2 suite)
| Thème | Focus |
|-------|-------|
| Recommandations | Algorithme, collaborative filtering |
| Recherche avancée | Phonétique, booléenne, sauvegardes |
| Social Trending | API `/social/trending` |
| Cible | ~360 / 600 features |
---
## Références
- [V0_103_RELEASE_SCOPE.md](V0_103_RELEASE_SCOPE.md) — Version précédente
- [SCOPE_CONTROL.md](SCOPE_CONTROL.md) — Processus anti-scope-creep
- [FEATURE_STATUS.md](FEATURE_STATUS.md) — Statut des features
- [veza_full_features_list.md](archive/root-md/veza_full_features_list.md) — Cible 1.0 (600 features)
- [PROJECT_STATE.md](PROJECT_STATE.md) — État actuel du projet