veza/docs/archive/V0_202_RELEASE_SCOPE.md

8.9 KiB
Raw Blame History

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 :

  1. Recherche avancée (Lot G) : Filtres, tri, autocomplete, facettes, historique
  2. Analytics créateur (Lot H) : Stats, graphiques, export
  3. Seller dashboard (Lot F) : Stats ventes, liste produits
  4. Player avancé (Lot C) : Crossfade, gapless, PiP
  5. 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) G1G5 : filtres musical_key, tri, autocomplete, facettes, historique
S2 H (Analytics) H1H4 : stats, graphiques, taux complétion, export
S3 F (Seller) F1F2 : stats ventes, liste produits
S4 C (Player) C1C3 : crossfade, gapless, PiP
S5 D (Queue) D1D2 : 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 erreur
  • npm run build — 0 erreur
  • npx tsc --noEmit — 0 erreur

8.2 Tests

  • go test ./... — pas de régression
  • npm 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