8.9 KiB
Scope v0.202 — Phase 2 Contenu (suite)
Version cible : v0.202 (X=2, Y=2)
Prérequis : v0.201 taguée et mergée dans main
Objectif : Phase 2 Contenu — Recherche avancée, Analytics créateur, Seller dashboard, Player, Queue
Dernière mise à jour : 20 février 2026
Effort estimé : 5-7 semaines de développement
1. Principe directeur
v0.202 = suite Phase 2 (Contenu) après v0.201.
Cinq axes principaux :
- Recherche avancée (Lot G) : Filtres, tri, autocomplete, facettes, historique
- Analytics créateur (Lot H) : Stats, graphiques, export
- Seller dashboard (Lot F) : Stats ventes, liste produits
- Player avancé (Lot C) : Crossfade, gapless, PiP
- Queue avancée (Lot D) : Autoplay, queue collaborative
2. Contexte — État post v0.201
2.1 Livré en v0.201
| Lot | Feature | Statut |
|---|---|---|
| E1 | BPM | ✅ |
| E2 | Musical key | ✅ |
| E3 | Lyrics | ✅ |
| E4 | Tags suggérés | ✅ |
2.2 Fondation existante (à enrichir)
| Domaine | Existant | À ajouter v0.202 |
|---|---|---|
| Recherche tracks | TrackSearchService, GET /tracks/search, filtres BPM/durée/genre/format/date, tri (popularity, title, created_at) |
musical_key, autocomplete, unification search unifiée, historique |
| Search unifiée | GET /search (q, type=track | user |
| Analytics | Routes /api/v1/analytics/*, playback_analytics | Route créateur, graphiques, export |
| Player | MediaSession, usePlayer | Crossfade, gapless, PiP |
| Queue | Queue sync, PlayerQueue | Autoplay, queue collaborative |
3. Features IN SCOPE v0.202
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 | musical_key manquant ; tags déjà dans TrackSearchParams | Ajouter musical_key à TrackSearchParams + handler |
Vérifier UI SearchPage/TrackSearch utilise tous les filtres | Filtres appliqués, résultats mis à jour |
| G2 | Tri avancé | Tri pertinence, date, popularité, alphabétique | Déjà : sort_by, sort_order. Ajouter "relevance" si full-text | Dropdown tri dans SearchPage | Tri fonctionnel |
| G3 | Autocomplete | Suggestions pendant la frappe | Route GET /search/suggestions?q=… (tracks, users, playlists) ou extension GET /search avec limit=5 | Input avec dropdown debounced | Suggestions affichées, clic → recherche |
| G4 | Recherche par type | Tracks, artistes, playlists, utilisateurs | SearchService : param type existant. Vérifier cohérence |
Onglets/facettes dans SearchPage | Résultats par catégorie |
| G5 | Historique recherche | Mémoriser les dernières recherches | Optionnel : table search_history. Sinon localStorage | Section "Récent" | Dernières recherches cliquables |
Fichiers clés :
- Backend :
track_search_service.go,search_service.go,search_handlers.go,routes_search.go,routes_tracks.go - Frontend :
TrackSearch.tsx,TrackSearchFilters,trackSearchService.ts,SearchPage
3.2 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, route GET /analytics/creator/stats | Page /analytics ou section créateur | Chiffres affichés |
| H2 | Graphiques | Évolution plays, top tracks | Route GET /analytics/creator/charts | Charts (recharts ou équivalent) | Graphiques lisibles |
| H3 | Taux de complétion | % d'écoute complète par track | Calcul backend (plays complètes / total) | Affichage dans dashboard | Métrique visible |
| H4 | Export données | Export CSV/JSON des stats | Route GET /analytics/creator/export?format=csv | json | Bouton export |
Fichiers clés :
- Backend :
playback_analytics_handler.go,routes, modèles analytics - Frontend : Page Analytics, composants charts, export
3.3 Lot F — Seller dashboard (priorité moyenne)
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 GET /sell/stats ou agrégation Hyperswitch/marketplace | 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 |
3.4 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 (gain, overlap) | Transition fluide 1-10s configurable |
| C2 | Gapless playback | Lecture sans silence entre tracks | N/A | Préchargement audio, Web Audio API ou HTMLMediaElement | Pas de coupure |
| C3 | PiP | Picture-in-Picture (si supporté) | N/A | Media Session + PiP API (document.pictureInPictureEnabled) | Fenêtre flottante |
Fichiers clés : GlobalPlayer.tsx, AudioPlayer.tsx, usePlayer.ts, playerStore.ts
3.5 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, routes queue | UI partage | Plusieurs users, même queue |
| D2 | Autoplay | Recommandations quand queue vide | Route GET /recommendations ou extension playlists | Section "À écouter ensuite" | Suggestions, ajout 1 clic |
4. Récapitulatif par lot
| Lot | Nom | Priorité | Effort | Features |
|---|---|---|---|---|
| G | Recherche avancée | Haute | L | 5 |
| 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 | 16-27j | 16 |
5. Features HORS SCOPE v0.202
| Feature | Raison | Version cible |
|---|---|---|
| Recherche phonétique, booléenne | Complexité | v0.203+ |
| Collaborative filtering | Nécessite historique riche | v0.203+ |
| Social Trending API | Dépend recommandations | v0.203+ |
| 2FA SMS, Passkeys | v0.104 dédié | v0.104 |
| Go Live vidéo | v0.703 | v0.703 |
6. Ordre de livraison recommandé
| Semaine | Lots | Activités |
|---|---|---|
| S1 | G (Recherche) | G1–G5 : filtres musical_key, tri, autocomplete, facettes, historique |
| S2 | H (Analytics) | H1–H4 : stats, graphiques, taux complétion, export |
| S3 | F (Seller) | F1–F2 : stats ventes, liste produits |
| S4 | C (Player) | C1–C3 : crossfade, gapless, PiP |
| S5 | D (Queue) | D1–D2 : autoplay, queue collaborative |
| S6 | Stabilisation | Tests, docs, polish |
7. Branche et workflow
- Branche :
release/v0.202 - Format commit :
feat(scope): description(ex:feat(search): add musical_key filter) - Référence scope : SCOPE_CONTROL.md → v0.202
- PR :
gh pr create --base main --head release/v0.202 --title "Release v0.202"
8. Critères de stabilité v0.202
8.1 Build & compilation
go build ./...— 0 erreurnpm run build— 0 erreurnpx tsc --noEmit— 0 erreur
8.2 Tests
go test ./...— pas de régressionnpm test -- --run— pas de régression- E2E : recherche, analytics, seller (si applicable)
8.3 Documentation
- FEATURE_STATUS.md mis à jour
- CHANGELOG v0.202
- MSW handlers pour nouveaux endpoints
Références
- V0_201_RELEASE_SCOPE.md — Version précédente (Lot E livré)
- SCOPE_CONTROL.md — Processus anti-scope-creep
- FEATURE_STATUS.md — Statut des features
- PROJECT_STATE.md — État actuel du projet