235 lines
9.7 KiB
Markdown
235 lines
9.7 KiB
Markdown
# Scope v0.103 — Clôture Phase 1 (Fondation)
|
|
|
|
**Version cible** : v0.103 (X=1, Y=3)
|
|
**Prérequis** : v0.102 taguée et stable
|
|
**Objectif** : Finaliser la Phase 1 Fondation — auth avancée, profils complets, player/queue avancés, métadonnées enrichies, seller dashboard shell
|
|
**Dernière mise à jour** : 20 février 2026
|
|
**Effort estimé** : 4-6 semaines de développement
|
|
|
|
---
|
|
|
|
## 1. Principe directeur
|
|
|
|
> **v0.103 = clôture Phase 1 (Fondation).**
|
|
>
|
|
> Trois axes :
|
|
> 1. **Auth avancée** : OAuth Spotify, 2FA SMS, Passkeys, historique connexions
|
|
> 2. **Profils & Player** : Bannière profil, liens sociaux, profil privé ; crossfade, gapless, PiP ; queue collaborative
|
|
> 3. **Métadonnées & Seller** : BPM, key, lyrics, tags auto ; seller dashboard shell fonctionnel
|
|
>
|
|
> **Règles** :
|
|
> - Aucune nouvelle route/page majeure hors scope (pas de `/education`, `/studio`, `/nft`)
|
|
> - Aucune nouvelle dépendance lourde (sauf correctif sécurité)
|
|
> - Chaque feature doit correspondre à un item de `docs/archive/root-md/veza_full_features_list.md`
|
|
> - Chaque feature livrée doit avoir : tests, story Storybook, documentation
|
|
|
|
---
|
|
|
|
## 2. Contexte — État v0.102
|
|
|
|
### 2.1 Héritage v0.102
|
|
|
|
| Domaine | Statut v0.102 |
|
|
|---------|---------------|
|
|
| Gear, Live, Queue, Developer | Routes opérationnelles |
|
|
| Playlists | Share, Recommendations, Export, Duplicate activés |
|
|
| Social | Like/Comment, badges, trending documenté |
|
|
| Player | Vitesse, Media Session, waveform |
|
|
| API Keys | CRUD, X-API-Key, CreateAPIKeyModal |
|
|
|
|
### 2.2 Cible v0.103
|
|
|
|
- **Features cumulées** : ~270 / 600 (45%)
|
|
- **Delta** : +40 features individuelles
|
|
- **Phase 1** : complète après v0.103
|
|
|
|
---
|
|
|
|
## 3. Features IN SCOPE v0.103
|
|
|
|
### 3.1 Lot A — Auth avancée (priorité haute)
|
|
|
|
**Objectif** : Étendre les options d'authentification.
|
|
**Effort** : M (3-5 jours)
|
|
**Référence** : Module 1 (Auth)
|
|
|
|
| # | Feature | Tâche détaillée | Backend | Frontend | Critère de sortie |
|
|
|---|---------|-----------------|---------|----------|-------------------|
|
|
| A1 | **OAuth Spotify** | Intégration OAuth Spotify (comme Google/GitHub) | Provider OAuth à ajouter | Bouton login | Login Spotify fonctionnel |
|
|
| A2 | **2FA SMS** | Alternative au TOTP pour 2FA (envoi code SMS) | Service SMS, routes 2FA SMS | Option dans settings 2FA | Reporté v0.104 — requiert Twilio + users.phone_number |
|
|
| A3 | **Passkeys / WebAuthn** | Authentification sans mot de passe | WebAuthn backend | Bouton "Utiliser Passkey" | Reporté v0.104 — requiert go-webauthn + webauthn_credentials |
|
|
| A4 | **Historique connexions** | Liste des sessions actives, déconnexion à distance | Routes sessions, dernière activité | Page /settings/sessions enrichie | Historique visible, révocation possible |
|
|
|
|
**Features list v1.0** : 7 (Spotify), 20 (2FA SMS), 22 (Passkeys), 26 (historique)
|
|
|
|
---
|
|
|
|
### 3.2 Lot B — Profils complets (priorité moyenne)
|
|
|
|
**Objectif** : Enrichir les profils utilisateur.
|
|
**Effort** : S (2-3 jours)
|
|
**Référence** : Module 2
|
|
|
|
| # | Feature | Tâche détaillée | Backend | Frontend | Critère de sortie |
|
|
|---|---------|-----------------|---------|----------|-------------------|
|
|
| B1 | **Bannière profil** | Image bannière personnalisable (upload, crop) | Route upload bannière, champ `banner_url` | Composant Bannière dans UserProfile | Bannière affichée et éditable |
|
|
| B2 | **Liens sociaux** | Liens externes (Twitter, YouTube, etc.) sur le profil | Champ `social_links` (JSON) | Section liens dans profil | Liens cliquables |
|
|
| B3 | **Profil privé** | Option pour masquer le profil public | Champ `is_private` | Toggle settings, message "Profil privé" | Profil masqué si activé |
|
|
|
|
**Features list v1.0** : 32 (bannière), 44 (liens sociaux), 42 (profil privé)
|
|
|
|
---
|
|
|
|
### 3.3 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 (features 106-125)
|
|
|
|
| # | 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 entre pistes |
|
|
| C3 | **PiP (Picture-in-Picture)** | Mode mini player en overlay vidéo | N/A | Media Session + PiP API | Fenêtre flottante si supporté |
|
|
|
|
**Features list v1.0** : 115 (crossfade), 116 (gapless), 121 (PiP)
|
|
|
|
---
|
|
|
|
### 3.4 Lot D — Queue avancée (priorité basse)
|
|
|
|
**Objectif** : Queue collaborative et autoplay.
|
|
**Effort** : M (3-4 jours)
|
|
**Référence** : Module 4.2 (features 126-135)
|
|
|
|
| # | Feature | Tâche détaillée | Backend | Frontend | Critère de sortie |
|
|
|---|---------|-----------------|---------|----------|-------------------|
|
|
| D1 | **Queue collaborative** | Partager une queue en session (inviter, synchroniser) | Modèle session queue partagée | UI partage queue | Plusieurs utilisateurs, même queue |
|
|
| D2 | **Autoplay / Recommandations** | Quand la queue se termine, proposer des tracks similaires | Route recommandations basée sur écoute | Section "À écouter ensuite" | Suggestions affichées, ajout en 1 clic |
|
|
|
|
**Features list v1.0** : 134 (queue collaborative), 135 (autoplay)
|
|
|
|
---
|
|
|
|
### 3.5 Lot E — Métadonnées enrichies (priorité moyenne)
|
|
|
|
**Objectif** : Enrichir 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) sur les tracks | Migration `bpm` | Affichage + édition dans TrackDetail | BPM visible et éditable |
|
|
| E2 | **Musical key** | Clé musicale (C, Am, etc.) | Migration `key` | Affichage + édition | Key visible |
|
|
| E3 | **Lyrics** | Paroles synchronisées ou statiques | Modèle/table lyrics, route | Affichage dans TrackDetail ou player | Paroles affichées |
|
|
| E4 | **Tags auto** | Suggestions de tags basées sur l'audio (ou mock) | Route ou intégration | UI tags dans édition track | Tags proposés |
|
|
|
|
**Features list v1.0** : 95 (BPM), 96 (key), 102 (lyrics), 105 (tags auto)
|
|
|
|
---
|
|
|
|
### 3.6 Lot F — Seller dashboard shell (priorité basse)
|
|
|
|
**Objectif** : Rendre le seller dashboard fonctionnel avec des stats basiques.
|
|
**Effort** : S (1-2 jours)
|
|
**Référence** : Module 7.4
|
|
|
|
| # | Feature | Tâche détaillée | Backend | Frontend | Critère de sortie |
|
|
|---|---------|-----------------|---------|----------|-------------------|
|
|
| F1 | **Stats ventes** | Nombre de ventes, revenus (données mock ou réelles) | Route `/sell/stats` ou agrégation | Dashboard vendeur | Chiffres affichés |
|
|
| F2 | **Liste produits vendus** | Tracks/albums mis en vente par l'utilisateur | Route existante ou extension | Liste dans seller dashboard | Produits listés |
|
|
|
|
**Features list v1.0** : M7.4 (seller dashboard)
|
|
|
|
---
|
|
|
|
## 4. Récapitulatif par lot
|
|
|
|
| Lot | Nom | Priorité | Effort | Features |
|
|
|-----|-----|----------|--------|----------|
|
|
| **A** | Auth avancée | Haute | M | 4 |
|
|
| **B** | Profils complets | Moyenne | S | 3 |
|
|
| **C** | Player avancé | Moyenne | M | 3 |
|
|
| **D** | Queue avancée | Basse | M | 2 |
|
|
| **E** | Métadonnées enrichies | Moyenne | M | 4 |
|
|
| **F** | Seller dashboard | Basse | S | 2 |
|
|
| | **TOTAL** | | **12-20j** | **18** |
|
|
|
|
---
|
|
|
|
## 5. Features HORS SCOPE v0.103
|
|
|
|
| Feature | Raison | Version cible |
|
|
|---------|--------|---------------|
|
|
| Live streaming vidéo (Go Live) | Périmètre trop large | v0.703 |
|
|
| Social trending API | Report v0.102 | v0.301+ |
|
|
| Paiement Hyperswitch réel | Nécessite seller mature | v0.402 |
|
|
| PWA, WebRTC | Focus web classique d'abord | v0.803, v0.703 |
|
|
| Nouvelles routes `/education`, `/studio`, `/nft` | Hors Phase 1 | v0.5xx+ |
|
|
| Gamification, IA features | Modules entiers | v0.901, v0.701 |
|
|
|
|
---
|
|
|
|
## 6. Critères de stabilité v0.103
|
|
|
|
### 6.1 Build & compilation
|
|
|
|
- [ ] `go build ./...` (backend) — 0 erreur
|
|
- [ ] `cargo build --release` (chat-server, stream-server)
|
|
- [ ] `npm run build` (frontend)
|
|
- [ ] `npx tsc --noEmit`
|
|
|
|
### 6.2 Tests
|
|
|
|
- [ ] `go test ./...` (backend)
|
|
- [ ] `npm test -- --run` (frontend)
|
|
- [ ] `npm run test:storybook` — 0 erreur console/réseau
|
|
- [ ] E2E : auth, smoke, playlists, search, queue, profils
|
|
|
|
### 6.3 Documentation
|
|
|
|
- [ ] `FEATURE_STATUS.md` mis à jour
|
|
- [ ] `V0_103_RELEASE_SCOPE.md` checklist cochée
|
|
- [ ] Changelog v0.103
|
|
- [ ] MSW handlers pour nouveaux endpoints
|
|
|
|
---
|
|
|
|
## 7. Ordre de livraison recommandé
|
|
|
|
| Semaine | Lots | Activités |
|
|
|---------|------|-----------|
|
|
| **S1** | A (Auth) | OAuth Spotify, 2FA SMS ou Passkeys |
|
|
| **S2** | B + C | Profils (bannière, liens, privé), Player (crossfade, gapless) |
|
|
| **S3** | D + E | Queue avancée, métadonnées (BPM, key, lyrics) |
|
|
| **S4** | F + stabilisation | Seller dashboard, tests, documentation |
|
|
|
|
---
|
|
|
|
## 8. Branche et workflow
|
|
|
|
- **Branche** : `release/v0.103`
|
|
- **Feature branches** : `feat/v0.103-oauth-spotify`, `feat/v0.103-profiles`, etc.
|
|
- **Format commit** : `feat(scope): description` (ex: `feat(auth): add OAuth Spotify provider`)
|
|
|
|
---
|
|
|
|
## 9. Préparation v0.201 (Phase 2 — Contenu)
|
|
|
|
Après le tag v0.103, la Phase 2 (0.201-0.203) ouvrira :
|
|
|
|
| Thème | Focus |
|
|
|-------|-------|
|
|
| Recherche avancée | Filtres, facettes, full-text |
|
|
| Métadonnées formats | Support formats additionnels |
|
|
| Analytics enrichis | Dashboards, rapports |
|
|
| Cible | ~330 / 600 features |
|
|
|
|
---
|
|
|
|
## Références
|
|
|
|
- [V0_102_RELEASE_SCOPE.md](V0_102_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)
|