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.
8.4 KiB
8.4 KiB
V0.802 Release Scope — Cloud Complet, Fichiers & Gear Avancé
Statut : Planifié Phase : 8 (Polish & Scale — Lot 2) Prérequis : v0.801 (taguée) Date cible : TBD Estimation : ~3 sprints (15 jours ouvrés) Précédente : v0.801
1. Objectif
Deuxième version de la Phase 8. Complète les modules Cloud Storage (versioning, restauration, partage, backup, export GDPR), Gestion de Fichiers (batch upload, pause/resume, tags auto-suggest, formats supplémentaires), et Gear Avancé (garantie, factures, historique SAV). Ces fonctionnalités enrichissent les outils de gestion de contenu et de matériel pour les musiciens.
2. État actuel (post-v0.801)
| Composant | État | Détail |
|---|---|---|
| Cloud Storage MVP | ✅ Livré v0.501 | Upload, dossiers, quota 5GB, prévisualisation audio, publication cloud→track |
| Versioning fichiers | ❌ Absent | Pas de versions historiques des fichiers |
| Restauration versions | ❌ Absent | Pas de rollback |
| Partage fichiers | ❌ Absent | Pas de liens de partage avec permissions |
| Backup automatique | ❌ Absent | Pas de backup planifié |
| Export données GDPR | ❌ Absent | Pas d'export complet des données utilisateur |
| Upload fichier unique | ✅ Livré | Upload avec progress bar |
| Upload batch | ❌ Absent | Un fichier à la fois uniquement |
| Pause/resume upload | ❌ Absent | Upload atomique, pas de reprise |
| Tags auto-suggest | ⚠️ Partiel | Tags manuels, pas de suggestions |
| Formats additionnels | ⚠️ Partiel | MP3, WAV, FLAC. Manque OGG, AIFF, M4A |
| Gear inventaire | ✅ Livré v0.501 | CRUD, profils publics, galerie images, recherche |
| Garantie tracking | ❌ Absent | Pas de date de garantie ni notification |
| Upload facture | ❌ Absent | Pas de stockage de facture/PDF sur le gear |
| Historique SAV | ❌ Absent | Pas de notes de réparation/coût |
3. Lots
Lot CL1 — Cloud Storage Avancé
| # | Tâche | Fichiers impactés | Effort |
|---|---|---|---|
| CL1-01 | Migration 119_cloud_file_versions.sql — table cloud_file_versions (file_id, version, storage_key, size, created_at) |
Migrations | S |
| CL1-02 | Service CreateVersion — sauvegarder version précédente avant écrasement, limit 10 versions par fichier |
internal/services/cloud_service.go |
M |
| CL1-03 | GET /cloud/files/:id/versions — lister les versions d'un fichier |
internal/handlers/cloud_handler.go |
S |
| CL1-04 | POST /cloud/files/:id/restore/:version — restaurer une version précédente |
internal/handlers/cloud_handler.go |
M |
| CL1-05 | Partage fichiers — POST /cloud/files/:id/share (génère lien unique, permissions read/write, expiration) |
internal/handlers/cloud_handler.go |
M |
| CL1-06 | GET /cloud/shared/:token — accéder à un fichier partagé (public, sans auth si token valide) |
internal/handlers/cloud_handler.go, routes |
M |
| CL1-07 | Backup auto — cron job background qui copie les fichiers cloud vers un bucket S3 dédié, configurable interval | internal/services/cloud_backup.go (nouveau) |
L |
| CL1-08 | POST /users/me/export — export GDPR, génère un ZIP avec profil, tracks, playlists, messages, gear, cloud files |
internal/handlers/user_handler.go |
L |
| CL1-09 | Frontend CloudView — onglet versions, bouton restore, bouton share, lien copié | apps/web/src/features/cloud/ |
M |
| CL1-10 | MSW handlers cloud — versions, restore, share | apps/web/src/mocks/handlers-cloud.ts |
S |
| CL1-11 | Tests — versioning CRUD, restore, share token, export | Tests | M |
Lot FM1 — Gestion de Fichiers Avancée
| # | Tâche | Fichiers impactés | Effort |
|---|---|---|---|
| FM1-01 | Batch upload — multi-file input, parallel upload queue (max 3 concurrent), individual progress bars | apps/web/src/components/upload/ |
L |
| FM1-02 | Pause/resume upload — chunked upload (5MB chunks), resume from last successful chunk, backend support | internal/handlers/upload_handler.go, frontend |
L |
| FM1-03 | Tags auto-suggest — GET /tags/suggest?q=... basé sur les tags existants (top 10 par fréquence) |
internal/handlers/, frontend |
M |
| FM1-04 | Formats additionnels — validation MIME pour OGG, AIFF, M4A/AAC, transcoding vers MP3 standard | internal/services/, config |
M |
| FM1-05 | Tests — batch upload, chunked resume, tag suggest, format validation | Tests | M |
Lot GR1 — Gear Avancé
| # | Tâche | Fichiers impactés | Effort |
|---|---|---|---|
| GR1-01 | Migration 120_gear_warranty.sql — ajout colonnes warranty_start, warranty_end, warranty_notes sur gear |
Migrations | S |
| GR1-02 | Migration 121_gear_documents.sql — table gear_documents (gear_id, type, storage_key, filename, uploaded_at) |
Migrations | S |
| GR1-03 | Migration 122_gear_repairs.sql — table gear_repairs (gear_id, date, description, cost, provider) |
Migrations | S |
| GR1-04 | Modèle et service — GearDocument, GearRepair, méthodes CRUD | internal/models/gear.go, internal/services/gear_service.go |
M |
| GR1-05 | Handlers — POST /gear/:id/documents (upload facture/PDF), GET /gear/:id/documents, POST /gear/:id/repairs, GET /gear/:id/repairs | internal/handlers/gear_handler.go |
M |
| GR1-06 | Notification garantie — cron background qui envoie notification 30 jours avant expiration warranty | internal/services/gear_warranty_notifier.go (nouveau) |
M |
| GR1-07 | Frontend — onglets Documents et Réparations dans la fiche gear, upload PDF, formulaire réparation, badge "Warranty expires soon" | apps/web/src/features/inventory/ |
M |
| GR1-08 | MSW handlers gear — documents, repairs | apps/web/src/mocks/handlers-gear.ts |
S |
| GR1-09 | Tests — warranty dates, document upload, repair CRUD, notification trigger | Tests | M |
Lot QA1 — Tests & Release
| # | Tâche | Fichiers impactés | Effort |
|---|---|---|---|
| QA1-01 | Smoke test v0.802 | docs/SMOKE_TEST_V0802.md |
S |
| QA1-02 | Mise à jour PROJECT_STATE, FEATURE_STATUS, CHANGELOG | docs/ |
S |
| QA1-03 | Rétrospective, archivage, placeholder v0.803, tag | docs/, Git |
S |
4. Hors scope v0.802
| Élément | Version cible |
|---|---|
| OpenAPI/Swagger | v0.803 |
| Audit logs | v0.803 |
| Admin modération | v0.803 |
| Wishlist marketplace | v0.901 |
| Upload depuis cloud externe (Dropbox, Drive) | v2.0 |
| Scan antivirus | v2.0 |
| Watermarking automatique | v2.0 |
| Compression images automatique | v2.0 |
| Backup incrémental | v2.0 |
| ZFS snapshots | v2.0 |
| Assurance matériel | v2.0 |
5. Critères d'acceptation
- Versioning : upload écrase → ancienne version sauvegardée, 10 max par fichier
- Restore : version précédente restaurée, nouvelle version créée
- Share : lien unique avec token, permissions, expiration optionnelle
- Backup auto : cron copie vers bucket S3 dédié (configurable)
- Export GDPR : ZIP téléchargeable contenant toutes les données utilisateur
- Batch upload : multi-fichiers, progress individuel, max 3 concurrents
- Pause/resume : chunks 5MB, reprise depuis le dernier chunk
- Tags auto-suggest : top 10 par fréquence, recherche prefix
- Formats : OGG, AIFF, M4A acceptés et transcodés
- Gear warranty : dates, notification 30j avant expiration
- Gear documents : upload facture/PDF, liste documents
- Gear repairs : CRUD historique réparations avec coût
- Tag v0.802 créé
6. Risques
| Risque | Mitigation |
|---|---|
| Versioning storage explose | Limit 10 versions, cleanup cron des versions > 90 jours |
| Chunked upload complexité | Library tus.io ou implémentation simplifiée avec Content-Range |
| Export GDPR lent (gros utilisateurs) | Background job, notification quand prêt, lien temporaire |
| Backup auto coût S3 | Configurable, désactivé par défaut en dev |
| Warranty notifications spam | Max 1 notification par gear par période de 30j |
7. Références
- V0_801_RELEASE_SCOPE.md
- SCOPE_CONTROL.md
veza-backend-api/internal/services/cloud_service.goveza-backend-api/internal/handlers/cloud_handler.goveza-backend-api/internal/handlers/gear_handler.goapps/web/src/features/cloud/apps/web/src/features/inventory/