- Archiver 131 .md dans docs/archive/root-md/ - Archiver 22 .json dans docs/archive/root-json/ - Conserver 7 .md utiles (README, CONTRIBUTING, CHANGELOG, etc.) - Conserver package.json, package-lock.json, turbo.json - Ajouter README d'index dans chaque archive
562 lines
24 KiB
Markdown
562 lines
24 KiB
Markdown
# 📚 ROADMAP STORYBOOK 100% COVERAGE
|
|
|
|
**Projet**: Veza Music Platform
|
|
**Objectif**: Couverture complète de tous les composants
|
|
**Durée**: 12 semaines
|
|
**Date de début**: 3 Février 2026
|
|
**Date cible de fin**: 27 Avril 2026
|
|
|
|
---
|
|
|
|
## 📊 Vue d'Ensemble
|
|
|
|
| Métrique | Actuel | Cible | Gap |
|
|
|----------|--------|-------|-----|
|
|
| **Stories** | 164 | 344 | +180 |
|
|
| **Composants** | 384 | 384 | - |
|
|
| **Couverture** | 42% | 100% | +58% |
|
|
| **Heures estimées** | - | 270h | ~23h/semaine |
|
|
|
|
### Progression Hebdomadaire Ciblée
|
|
|
|
```
|
|
Semaine 1 ▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░░░░░░░░░░░░ 47% (+5%)
|
|
Semaine 2 ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░░░░░░░░░ 52% (+5%)
|
|
Semaine 3 ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░░░░░░ 57% (+5%)
|
|
Semaine 4 ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░░░ 62% (+5%)
|
|
Semaine 5 ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░ 67% (+5%)
|
|
Semaine 6 ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░ 72% (+5%)
|
|
Semaine 7 ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░ 77% (+5%)
|
|
Semaine 8 ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░ 82% (+5%)
|
|
Semaine 9 ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░ 87% (+5%)
|
|
Semaine 10 ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░ 92% (+5%)
|
|
Semaine 11 ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 96% (+4%)
|
|
Semaine 12 ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100% (+4%)
|
|
```
|
|
|
|
---
|
|
|
|
## 🎯 Milestones
|
|
|
|
| Milestone | Date | Couverture | Description |
|
|
|-----------|------|------------|-------------|
|
|
| **M1** | 16 Fév 2026 | 52% | Pages critiques + Admin |
|
|
| **M2** | 9 Mars 2026 | 67% | Core Features (Player, Playlists, Tracks) |
|
|
| **M3** | 30 Mars 2026 | 82% | Full Features (Upload, Chat, Settings) |
|
|
| **M4** | 27 Avr 2026 | 100% | Couverture complète |
|
|
|
|
---
|
|
|
|
## 📅 SPRINT 1 - Pages Critiques & Erreurs
|
|
|
|
**Dates**: 3-9 Février 2026
|
|
**Priorité**: 🔴 P0 (Critique)
|
|
**Heures**: 18h
|
|
**Objectif**: Couvrir toutes les pages d'erreur et d'authentification
|
|
|
|
### Composants à Créer
|
|
|
|
| # | Composant | Chemin | Effort | Heures | Variants |
|
|
|---|-----------|--------|--------|--------|----------|
|
|
| 1 | NotFoundPage | `src/features/error/pages/NotFoundPage.tsx` | 🟢 Low | 1h | Default, WithSuggestions |
|
|
| 2 | ServerErrorPage | `src/features/error/pages/ServerErrorPage.tsx` | 🟢 Low | 1h | Default, WithRetry, NetworkError |
|
|
| 3 | LoginPage | `src/features/auth/pages/LoginPage.tsx` | 🟡 Medium | 2h | Default, WithError, Loading |
|
|
| 4 | RegisterPage | `src/features/auth/pages/RegisterPage.tsx` | 🟡 Medium | 2h | Default, WithError, Success |
|
|
| 5 | ForgotPasswordPage | `src/features/auth/pages/ForgotPasswordPage.tsx` | 🟡 Medium | 2h | Default, Sent, Error |
|
|
| 6 | ResetPasswordPage | `src/features/auth/pages/ResetPasswordPage.tsx` | 🟡 Medium | 2h | Default, Success, InvalidToken |
|
|
| 7 | VerifyEmailPage | `src/features/auth/pages/VerifyEmailPage.tsx` | 🟢 Low | 1.5h | Pending, Verified, Error |
|
|
| 8 | ForgotPasswordForm | `src/features/auth/components/ForgotPasswordForm.tsx` | 🟡 Medium | 1.5h | Default, Loading, Success |
|
|
| 9 | TwoFactorVerify | `src/features/auth/components/TwoFactorVerify.tsx` | 🟡 Medium | 2h | Default, Error, Loading |
|
|
| 10 | TwoFactorSetup | `src/features/auth/components/TwoFactorSetup.tsx` | 🟡 Medium | 2h | QRCode, Verification, Complete |
|
|
| 11 | AuthErrorMessage | `src/features/auth/components/AuthErrorMessage.tsx` | 🟢 Low | 1h | Default, Network, Validation |
|
|
|
|
### Checklist Sprint 1
|
|
|
|
- [ ] NotFoundPage.stories.tsx
|
|
- [ ] ServerErrorPage.stories.tsx
|
|
- [ ] LoginPage.stories.tsx
|
|
- [ ] RegisterPage.stories.tsx
|
|
- [ ] ForgotPasswordPage.stories.tsx
|
|
- [ ] ResetPasswordPage.stories.tsx
|
|
- [ ] VerifyEmailPage.stories.tsx
|
|
- [ ] ForgotPasswordForm.stories.tsx
|
|
- [ ] TwoFactorVerify.stories.tsx
|
|
- [ ] TwoFactorSetup.stories.tsx
|
|
- [ ] AuthErrorMessage.stories.tsx
|
|
|
|
**Couverture attendue**: 42% → 47%
|
|
|
|
---
|
|
|
|
## 📅 SPRINT 2 - Dashboard & Admin
|
|
|
|
**Dates**: 10-16 Février 2026
|
|
**Priorité**: 🔴 P0 (Critique)
|
|
**Heures**: 20h
|
|
**Objectif**: Couvrir le dashboard et toutes les vues admin
|
|
|
|
### Composants à Créer
|
|
|
|
| # | Composant | Chemin | Effort | Heures | Variants |
|
|
|---|-----------|--------|--------|--------|----------|
|
|
| 1 | DashboardPage | `src/features/dashboard/pages/DashboardPage.tsx` | 🔴 High | 3h | Default, Loading, Empty |
|
|
| 2 | AdminDashboardView | `src/components/admin/AdminDashboardView.tsx` | 🔴 High | 3h | Default, Loading |
|
|
| 3 | AdminUsersView | `src/components/admin/AdminUsersView.tsx` | 🔴 High | 3h | Default, Empty, Loading, WithFilters |
|
|
| 4 | AdminModerationView | `src/components/admin/AdminModerationView.tsx` | 🔴 High | 3h | Default, Queue, Empty |
|
|
| 5 | AdminSettingsView | `src/components/admin/AdminSettingsView.tsx` | 🟡 Medium | 2h | Default, Saving |
|
|
| 6 | AdminAuditLogsView | `src/components/admin/AdminAuditLogsView.tsx` | 🟡 Medium | 2h | Default, Filtered, Empty |
|
|
| 7 | AdminView | `src/components/views/AdminView.tsx` | 🟡 Medium | 2h | Default |
|
|
| 8 | BanUserModal | `src/components/admin/BanUserModal.tsx` | 🟡 Medium | 1.5h | Default, Confirm |
|
|
| 9 | UserTableRow | `src/components/admin/UserTableRow.tsx` | 🟢 Low | 1h | Default, Selected, Banned |
|
|
|
|
### Checklist Sprint 2
|
|
|
|
- [ ] DashboardPage.stories.tsx
|
|
- [ ] AdminDashboardView.stories.tsx
|
|
- [ ] AdminUsersView.stories.tsx
|
|
- [ ] AdminModerationView.stories.tsx
|
|
- [ ] AdminSettingsView.stories.tsx
|
|
- [ ] AdminAuditLogsView.stories.tsx
|
|
- [ ] AdminView.stories.tsx
|
|
- [ ] BanUserModal.stories.tsx
|
|
- [ ] UserTableRow.stories.tsx
|
|
|
|
**Couverture attendue**: 47% → 52%
|
|
|
|
---
|
|
|
|
## 📅 SPRINT 3 - Player & Playback
|
|
|
|
**Dates**: 17-23 Février 2026
|
|
**Priorité**: 🟠 P1 (Haute)
|
|
**Heures**: 18h
|
|
**Objectif**: Compléter la couverture du player
|
|
|
|
### Composants à Créer
|
|
|
|
| # | Composant | Chemin | Effort | Heures | Variants |
|
|
|---|-----------|--------|--------|--------|----------|
|
|
| 1 | AudioPlayer | `src/features/player/components/AudioPlayer.tsx` | 🔴 High | 3h | Playing, Paused, Loading, Error |
|
|
| 2 | FullPlayer | `src/components/player/FullPlayer.tsx` | 🔴 High | 3h | Default, WithQueue, WithLyrics |
|
|
| 3 | PlayerError | `src/features/player/components/PlayerError.tsx` | 🟢 Low | 1h | NetworkError, FormatError, Generic |
|
|
| 4 | PlaybackSpeedControl | `src/features/player/components/PlaybackSpeedControl.tsx` | 🟢 Low | 1h | Default, 1x, 1.5x, 2x |
|
|
| 5 | QueuePanel | `src/components/player/QueuePanel.tsx` | 🟡 Medium | 2h | Default, Empty, Reordering |
|
|
| 6 | QueueView | `src/components/views/QueueView.tsx` | 🟡 Medium | 2h | Default, Empty |
|
|
| 7 | SaveQueueAsPlaylistModal | `src/components/player/SaveQueueAsPlaylistModal.tsx` | 🟡 Medium | 1.5h | Default, Saving, Success |
|
|
| 8 | LyricsPanel | `src/components/studio/LyricsPanel.tsx` | 🟡 Medium | 1.5h | Default, Synced, Empty |
|
|
|
|
### Checklist Sprint 3
|
|
|
|
- [ ] AudioPlayer.stories.tsx
|
|
- [ ] FullPlayer.stories.tsx
|
|
- [ ] PlayerError.stories.tsx
|
|
- [ ] PlaybackSpeedControl.stories.tsx
|
|
- [ ] QueuePanel.stories.tsx
|
|
- [ ] QueueView.stories.tsx
|
|
- [ ] SaveQueueAsPlaylistModal.stories.tsx
|
|
- [ ] LyricsPanel.stories.tsx
|
|
|
|
**Couverture attendue**: 52% → 57%
|
|
|
|
---
|
|
|
|
## 📅 SPRINT 4 - Playlists Complet
|
|
|
|
**Dates**: 24 Février - 2 Mars 2026
|
|
**Priorité**: 🟠 P1 (Haute)
|
|
**Heures**: 20h
|
|
**Objectif**: 100% couverture feature playlists
|
|
|
|
### Composants à Créer
|
|
|
|
| # | Composant | Chemin | Effort | Heures | Variants |
|
|
|---|-----------|--------|--------|--------|----------|
|
|
| 1 | PlaylistList | `src/features/playlists/components/PlaylistList.tsx` | 🔴 High | 2.5h | Default, Grid, Empty, Loading |
|
|
| 2 | PlaylistDetailPage | `src/features/playlists/pages/PlaylistDetailPage.tsx` | 🔴 High | 3h | Default, Loading, NotFound |
|
|
| 3 | PlaylistListPage | `src/features/playlists/pages/PlaylistListPage.tsx` | 🔴 High | 2.5h | Default, Empty, Loading |
|
|
| 4 | PlaylistTrackList | `src/features/playlists/components/PlaylistTrackList.tsx` | 🔴 High | 2.5h | Default, Empty, Reordering |
|
|
| 5 | PlaylistTrackItem | `src/features/playlists/components/PlaylistTrackItem.tsx` | 🟡 Medium | 1.5h | Default, Playing, Selected |
|
|
| 6 | PlaylistSearch | `src/features/playlists/components/PlaylistSearch.tsx` | 🟡 Medium | 1.5h | Default, WithResults |
|
|
| 7 | PlaylistRecommendations | `src/features/playlists/components/PlaylistRecommendations.tsx` | 🟡 Medium | 1.5h | Default, Empty |
|
|
| 8 | AddCollaboratorModal | `src/features/playlists/components/AddCollaboratorModal.tsx` | 🟡 Medium | 1.5h | Default, Searching, Added |
|
|
| 9 | CollaboratorList | `src/features/playlists/components/CollaboratorList.tsx` | 🟢 Low | 1h | Default, Empty |
|
|
| 10 | SharePlaylistModal | `src/features/playlists/components/SharePlaylistModal.tsx` | 🟡 Medium | 1.5h | Default, Copied |
|
|
|
|
### Checklist Sprint 4
|
|
|
|
- [ ] PlaylistList.stories.tsx
|
|
- [ ] PlaylistDetailPage.stories.tsx
|
|
- [ ] PlaylistListPage.stories.tsx
|
|
- [ ] PlaylistTrackList.stories.tsx
|
|
- [ ] PlaylistTrackItem.stories.tsx
|
|
- [ ] PlaylistSearch.stories.tsx
|
|
- [ ] PlaylistRecommendations.stories.tsx
|
|
- [ ] AddCollaboratorModal.stories.tsx
|
|
- [ ] CollaboratorList.stories.tsx
|
|
- [ ] SharePlaylistModal.stories.tsx
|
|
|
|
**Couverture attendue**: 57% → 62%
|
|
|
|
---
|
|
|
|
## 📅 SPRINT 5 - Tracks & Search
|
|
|
|
**Dates**: 3-9 Mars 2026
|
|
**Priorité**: 🟠 P1 (Haute)
|
|
**Heures**: 18h
|
|
**Objectif**: Compléter tracks et recherche
|
|
|
|
### Composants à Créer
|
|
|
|
| # | Composant | Chemin | Effort | Heures | Variants |
|
|
|---|-----------|--------|--------|--------|----------|
|
|
| 1 | TrackDetailPage | `src/features/tracks/pages/TrackDetailPage.tsx` | 🔴 High | 3h | Default, Loading, NotFound |
|
|
| 2 | TrackSearch | `src/features/tracks/components/TrackSearch.tsx` | 🔴 High | 2.5h | Default, WithResults, NoResults |
|
|
| 3 | TrackSearchResults | `src/features/tracks/components/TrackSearchResults.tsx` | 🔴 High | 2h | Default, Empty, Loading |
|
|
| 4 | TrackSearchFilters | `src/features/tracks/components/TrackSearchFilters.tsx` | 🟡 Medium | 1.5h | Default, Applied |
|
|
| 5 | TrackListContainer | `src/features/tracks/components/TrackListContainer.tsx` | 🟡 Medium | 1.5h | Default |
|
|
| 6 | TrackAnalyticsView | `src/components/tracks/TrackAnalyticsView.tsx` | 🔴 High | 2.5h | Default, Loading, Empty |
|
|
| 7 | SearchPage | `src/features/search/pages/SearchPage.tsx` | 🔴 High | 3h | Default, Results, NoResults, Loading |
|
|
| 8 | GlobalSearchBar | `src/components/search/GlobalSearchBar.tsx` | 🟡 Medium | 2h | Default, Focused, WithSuggestions |
|
|
|
|
### Checklist Sprint 5
|
|
|
|
- [ ] TrackDetailPage.stories.tsx
|
|
- [ ] TrackSearch.stories.tsx
|
|
- [ ] TrackSearchResults.stories.tsx
|
|
- [ ] TrackSearchFilters.stories.tsx
|
|
- [ ] TrackListContainer.stories.tsx
|
|
- [ ] TrackAnalyticsView.stories.tsx
|
|
- [ ] SearchPage.stories.tsx
|
|
- [ ] GlobalSearchBar.stories.tsx
|
|
|
|
**Couverture attendue**: 62% → 67%
|
|
|
|
---
|
|
|
|
## 📅 SPRINT 6 - Upload & Library
|
|
|
|
**Dates**: 10-16 Mars 2026
|
|
**Priorité**: 🟠 P1 (Haute)
|
|
**Heures**: 22h
|
|
**Objectif**: Workflow upload et bibliothèque
|
|
|
|
### Composants à Créer
|
|
|
|
| # | Composant | Chemin | Effort | Heures | Variants |
|
|
|---|-----------|--------|--------|--------|----------|
|
|
| 1 | UploadView | `src/components/views/UploadView.tsx` | 🔴 High | 3h | Default, Uploading, Complete, Error |
|
|
| 2 | UploadProgressBar | `src/components/upload/UploadProgressBar.tsx` | 🟢 Low | 1h | Default, Complete, Error |
|
|
| 3 | FileUploadZone | `src/components/upload/FileUploadZone.tsx` | 🟡 Medium | 2h | Default, Dragging, Processing |
|
|
| 4 | BulkUploadModal | `src/components/upload/BulkUploadModal.tsx` | 🔴 High | 2.5h | Default, Uploading, Complete |
|
|
| 5 | MetadataEditor | `src/components/upload/MetadataEditor.tsx` | 🔴 High | 2.5h | Default, WithData, Saving |
|
|
| 6 | MetadataForm | `src/components/upload/metadata/MetadataForm.tsx` | 🟡 Medium | 2h | Default, WithErrors |
|
|
| 7 | CoverArtUploadModal | `src/components/upload/CoverArtUploadModal.tsx` | 🟡 Medium | 1.5h | Default, Uploading, Preview |
|
|
| 8 | LibraryPage | `src/features/library/pages/LibraryPage.tsx` | 🔴 High | 2.5h | Default, Empty, Loading |
|
|
|
|
### Checklist Sprint 6
|
|
|
|
- [ ] UploadView.stories.tsx
|
|
- [ ] UploadProgressBar.stories.tsx
|
|
- [ ] FileUploadZone.stories.tsx
|
|
- [ ] BulkUploadModal.stories.tsx
|
|
- [ ] MetadataEditor.stories.tsx
|
|
- [ ] MetadataForm.stories.tsx
|
|
- [ ] CoverArtUploadModal.stories.tsx
|
|
- [ ] LibraryPage.stories.tsx
|
|
|
|
**Couverture attendue**: 67% → 72%
|
|
|
|
---
|
|
|
|
## 📅 SPRINT 7 - Chat & Social
|
|
|
|
**Dates**: 17-23 Mars 2026
|
|
**Priorité**: 🟡 P2 (Moyenne)
|
|
**Heures**: 18h
|
|
**Objectif**: Features chat et social
|
|
|
|
### Composants à Créer
|
|
|
|
| # | Composant | Chemin | Effort | Heures | Variants |
|
|
|---|-----------|--------|--------|--------|----------|
|
|
| 1 | ChatPage | `src/features/chat/pages/ChatPage.tsx` | 🔴 High | 3h | Default, Loading, Empty |
|
|
| 2 | ChatView | `src/components/views/ChatView.tsx` | 🟡 Medium | 2h | Default |
|
|
| 3 | CreateRoomDialog | `src/features/chat/components/CreateRoomDialog.tsx` | 🟡 Medium | 1.5h | Default, Creating |
|
|
| 4 | MessageSearch | `src/features/chat/components/MessageSearch.tsx` | 🟡 Medium | 1.5h | Default, Results, NoResults |
|
|
| 5 | VirtualizedChatMessages | `src/features/chat/components/VirtualizedChatMessages.tsx` | 🔴 High | 2h | Default, Loading |
|
|
| 6 | SocialView | `src/components/views/SocialView.tsx` | 🟡 Medium | 2h | Default |
|
|
| 7 | ConnectionsView | `src/components/social/ConnectionsView.tsx` | 🟡 Medium | 1.5h | Default, Empty |
|
|
| 8 | FeedView | `src/components/views/FeedView.tsx` | 🔴 High | 2h | Default, Empty, Loading |
|
|
| 9 | CreatePostModal | `src/components/social/CreatePostModal.tsx` | 🟡 Medium | 1.5h | Default, Posting |
|
|
|
|
### Checklist Sprint 7
|
|
|
|
- [ ] ChatPage.stories.tsx
|
|
- [ ] ChatView.stories.tsx
|
|
- [ ] CreateRoomDialog.stories.tsx
|
|
- [ ] MessageSearch.stories.tsx
|
|
- [ ] VirtualizedChatMessages.stories.tsx
|
|
- [ ] SocialView.stories.tsx
|
|
- [ ] ConnectionsView.stories.tsx
|
|
- [ ] FeedView.stories.tsx
|
|
- [ ] CreatePostModal.stories.tsx
|
|
|
|
**Couverture attendue**: 72% → 77%
|
|
|
|
---
|
|
|
|
## 📅 SPRINT 8 - Settings & Preferences
|
|
|
|
**Dates**: 24-30 Mars 2026
|
|
**Priorité**: 🟡 P2 (Moyenne)
|
|
**Heures**: 20h
|
|
**Objectif**: Tous les panneaux de paramètres
|
|
|
|
### Composants à Créer
|
|
|
|
| # | Composant | Chemin | Effort | Heures | Variants |
|
|
|---|-----------|--------|--------|--------|----------|
|
|
| 1 | SettingsPage | `src/features/settings/pages/SettingsPage.tsx` | 🟡 Medium | 2h | Default |
|
|
| 2 | SettingsView | `src/components/views/SettingsView.tsx` | 🟡 Medium | 1.5h | Default |
|
|
| 3 | SecuritySettings | `src/components/settings/SecuritySettings.tsx` | 🔴 High | 2.5h | Default, Updating |
|
|
| 4 | SessionManagement | `src/components/settings/SessionManagement.tsx` | 🟡 Medium | 2h | Default, WithSessions |
|
|
| 5 | AppearanceSettingsView | `src/components/settings/AppearanceSettingsView.tsx` | 🟡 Medium | 1.5h | Default |
|
|
| 6 | AccessibilitySettingsView | `src/components/views/AccessibilitySettingsView.tsx` | 🟡 Medium | 1.5h | Default |
|
|
| 7 | ChangeEmailModal | `src/components/settings/ChangeEmailModal.tsx` | 🟡 Medium | 1.5h | Default, Sending, Sent |
|
|
| 8 | ChangeUsernameModal | `src/components/settings/ChangeUsernameModal.tsx` | 🟡 Medium | 1.5h | Default, Checking, Available |
|
|
| 9 | DeleteAccountView | `src/components/settings/DeleteAccountView.tsx` | 🟡 Medium | 1.5h | Default, Confirm |
|
|
| 10 | DataExportView | `src/components/settings/DataExportView.tsx` | 🟡 Medium | 1.5h | Default, Exporting, Ready |
|
|
|
|
### Checklist Sprint 8
|
|
|
|
- [ ] SettingsPage.stories.tsx
|
|
- [ ] SettingsView.stories.tsx
|
|
- [ ] SecuritySettings.stories.tsx
|
|
- [ ] SessionManagement.stories.tsx
|
|
- [ ] AppearanceSettingsView.stories.tsx
|
|
- [ ] AccessibilitySettingsView.stories.tsx
|
|
- [ ] ChangeEmailModal.stories.tsx
|
|
- [ ] ChangeUsernameModal.stories.tsx
|
|
- [ ] DeleteAccountView.stories.tsx
|
|
- [ ] DataExportView.stories.tsx
|
|
|
|
**Couverture attendue**: 77% → 82%
|
|
|
|
---
|
|
|
|
## 📅 SPRINT 9 - Marketplace & Commerce
|
|
|
|
**Dates**: 31 Mars - 6 Avril 2026
|
|
**Priorité**: 🟡 P2 (Moyenne)
|
|
**Heures**: 22h
|
|
**Objectif**: Marketplace et commerce complet
|
|
|
|
### Composants à Créer
|
|
|
|
| # | Composant | Chemin | Effort | Heures | Variants |
|
|
|---|-----------|--------|--------|--------|----------|
|
|
| 1 | MarketplaceView | `src/components/views/MarketplaceView.tsx` | 🔴 High | 2.5h | Default, Loading |
|
|
| 2 | MarketplaceHome | `src/pages/marketplace/MarketplaceHome.tsx` | 🔴 High | 2.5h | Default, Loading |
|
|
| 3 | ProductDetailView | `src/components/marketplace/ProductDetailView.tsx` | 🔴 High | 2.5h | Default, Loading, OutOfStock |
|
|
| 4 | CartView | `src/components/views/CartView.tsx` | 🔴 High | 2h | Default, Empty |
|
|
| 5 | CartItem | `src/components/commerce/CartItem.tsx` | 🟢 Low | 1h | Default, Removing |
|
|
| 6 | CheckoutView | `src/components/views/CheckoutView.tsx` | 🔴 High | 3h | Default, Processing, Success |
|
|
| 7 | OrderSummary | `src/components/commerce/OrderSummary.tsx` | 🟡 Medium | 1.5h | Default, WithDiscount |
|
|
| 8 | LicenceCard | `src/components/commerce/LicenceCard.tsx` | 🟡 Medium | 1.5h | Basic, Pro, Exclusive |
|
|
| 9 | PurchasesView | `src/components/views/PurchasesView.tsx` | 🟡 Medium | 2h | Default, Empty |
|
|
|
|
### Checklist Sprint 9
|
|
|
|
- [ ] MarketplaceView.stories.tsx
|
|
- [ ] MarketplaceHome.stories.tsx
|
|
- [ ] ProductDetailView.stories.tsx
|
|
- [ ] CartView.stories.tsx
|
|
- [ ] CartItem.stories.tsx
|
|
- [ ] CheckoutView.stories.tsx
|
|
- [ ] OrderSummary.stories.tsx
|
|
- [ ] LicenceCard.stories.tsx
|
|
- [ ] PurchasesView.stories.tsx
|
|
|
|
**Couverture attendue**: 82% → 87%
|
|
|
|
---
|
|
|
|
## 📅 SPRINT 10 - Views & Layouts
|
|
|
|
**Dates**: 7-13 Avril 2026
|
|
**Priorité**: 🟡 P2 (Moyenne)
|
|
**Heures**: 18h
|
|
**Objectif**: Vues restantes
|
|
|
|
### Composants à Créer
|
|
|
|
| # | Composant | Chemin | Effort | Heures | Variants |
|
|
|---|-----------|--------|--------|--------|----------|
|
|
| 1 | DiscoverView | `src/components/views/DiscoverView.tsx` | 🔴 High | 2.5h | Default, Loading |
|
|
| 2 | ExploreView | `src/components/views/ExploreView.tsx` | 🔴 High | 2.5h | Default |
|
|
| 3 | ProfileView | `src/components/views/ProfileView.tsx` | 🔴 High | 2.5h | Default, Loading |
|
|
| 4 | UserProfilePage | `src/features/profile/pages/UserProfilePage.tsx` | 🔴 High | 2.5h | Default, Own, NotFound |
|
|
| 5 | NotificationsPage | `src/features/notifications/pages/NotificationsPage.tsx` | 🟡 Medium | 2h | Default, Empty |
|
|
| 6 | NotificationsView | `src/components/views/NotificationsView.tsx` | 🟡 Medium | 1.5h | Default |
|
|
| 7 | PlaylistsView | `src/components/views/PlaylistsView.tsx` | 🟡 Medium | 1.5h | Default |
|
|
| 8 | AnalyticsView | `src/components/views/AnalyticsView.tsx` | 🔴 High | 2h | Default, Loading |
|
|
|
|
### Checklist Sprint 10
|
|
|
|
- [ ] DiscoverView.stories.tsx
|
|
- [ ] ExploreView.stories.tsx
|
|
- [ ] ProfileView.stories.tsx
|
|
- [ ] UserProfilePage.stories.tsx
|
|
- [ ] NotificationsPage.stories.tsx
|
|
- [ ] NotificationsView.stories.tsx
|
|
- [ ] PlaylistsView.stories.tsx
|
|
- [ ] AnalyticsView.stories.tsx
|
|
|
|
**Couverture attendue**: 87% → 92%
|
|
|
|
---
|
|
|
|
## 📅 SPRINT 11 - Studio & Education
|
|
|
|
**Dates**: 14-20 Avril 2026
|
|
**Priorité**: 🟢 P3 (Basse)
|
|
**Heures**: 20h
|
|
**Objectif**: Studio et éducation
|
|
|
|
### Composants à Créer
|
|
|
|
| # | Composant | Chemin | Effort | Heures | Variants |
|
|
|---|-----------|--------|--------|--------|----------|
|
|
| 1 | StudioView | `src/components/views/StudioView.tsx` | 🔴 High | 2.5h | Default |
|
|
| 2 | ProjectDetailView | `src/components/studio/ProjectDetailView.tsx` | 🔴 High | 2.5h | Default, Loading |
|
|
| 3 | CreateProjectModal | `src/components/studio/CreateProjectModal.tsx` | 🟡 Medium | 1.5h | Default, Creating |
|
|
| 4 | GoLiveView | `src/components/studio/GoLiveView.tsx` | 🔴 High | 2.5h | Setup, Live, Ended |
|
|
| 5 | LyricsEditorModal | `src/components/studio/LyricsEditorModal.tsx` | 🟡 Medium | 1.5h | Default, Syncing |
|
|
| 6 | EducationView | `src/components/views/EducationView.tsx` | 🟡 Medium | 2h | Default |
|
|
| 7 | CourseDetailView | `src/components/education/CourseDetailView.tsx` | 🔴 High | 2h | Default, Enrolled |
|
|
| 8 | CourseLearningView | `src/components/education/CourseLearningView.tsx` | 🔴 High | 2.5h | Default, Complete |
|
|
| 9 | LiveView | `src/components/views/LiveView.tsx` | 🟡 Medium | 2h | Default |
|
|
|
|
### Checklist Sprint 11
|
|
|
|
- [ ] StudioView.stories.tsx
|
|
- [ ] ProjectDetailView.stories.tsx
|
|
- [ ] CreateProjectModal.stories.tsx
|
|
- [ ] GoLiveView.stories.tsx
|
|
- [ ] LyricsEditorModal.stories.tsx
|
|
- [ ] EducationView.stories.tsx
|
|
- [ ] CourseDetailView.stories.tsx
|
|
- [ ] CourseLearningView.stories.tsx
|
|
- [ ] LiveView.stories.tsx
|
|
|
|
**Couverture attendue**: 92% → 96%
|
|
|
|
---
|
|
|
|
## 📅 SPRINT 12 - Sprint Final - 100%
|
|
|
|
**Dates**: 21-27 Avril 2026
|
|
**Priorité**: 🟢 P3 (Basse)
|
|
**Heures**: 25h
|
|
**Objectif**: Tous les composants restants
|
|
|
|
### Composants à Créer
|
|
|
|
| # | Composant | Chemin | Effort | Heures | Variants |
|
|
|---|-----------|--------|--------|--------|----------|
|
|
| 1 | GearView | `src/components/views/GearView.tsx` | 🟡 Medium | 1.5h | Default |
|
|
| 2 | EquipmentDetailView | `src/components/inventory/EquipmentDetailView.tsx` | 🟡 Medium | 1.5h | Default |
|
|
| 3 | AchievementsView | `src/components/gamification/AchievementsView.tsx` | 🟡 Medium | 1.5h | Default, Empty |
|
|
| 4 | AchievementCard | `src/components/gamification/AchievementCard.tsx` | 🟢 Low | 1h | Locked, Unlocked |
|
|
| 5 | LeaderboardView | `src/components/gamification/LeaderboardView.tsx` | 🟡 Medium | 1.5h | Default |
|
|
| 6 | XPBar | `src/components/gamification/XPBar.tsx` | 🟢 Low | 1h | Default, LevelUp |
|
|
| 7 | DeveloperDashboardView | `src/components/developer/DeveloperDashboardView.tsx` | 🔴 High | 2h | Default |
|
|
| 8 | APIPlaygroundView | `src/components/developer/APIPlaygroundView.tsx` | 🔴 High | 2.5h | Default |
|
|
| 9 | CreateAPIKeyModal | `src/components/developer/CreateAPIKeyModal.tsx` | 🟡 Medium | 1.5h | Default, Created |
|
|
| 10 | WebhooksView | `src/features/webhooks/WebhooksView.tsx` | 🔴 High | 2h | Default, Empty |
|
|
| 11 | MonitoringDashboard | `src/components/monitoring/MonitoringDashboard.tsx` | 🔴 High | 2.5h | Default |
|
|
| 12 | WishlistView | `src/components/views/WishlistView.tsx` | 🟡 Medium | 1.5h | Default, Empty |
|
|
| 13 | FileManagerView | `src/components/views/FileManagerView.tsx` | 🔴 High | 2h | Default |
|
|
|
|
### Checklist Sprint 12
|
|
|
|
- [ ] GearView.stories.tsx
|
|
- [ ] EquipmentDetailView.stories.tsx
|
|
- [ ] AchievementsView.stories.tsx
|
|
- [ ] AchievementCard.stories.tsx
|
|
- [ ] LeaderboardView.stories.tsx
|
|
- [ ] XPBar.stories.tsx
|
|
- [ ] DeveloperDashboardView.stories.tsx
|
|
- [ ] APIPlaygroundView.stories.tsx
|
|
- [ ] CreateAPIKeyModal.stories.tsx
|
|
- [ ] WebhooksView.stories.tsx
|
|
- [ ] MonitoringDashboard.stories.tsx
|
|
- [ ] WishlistView.stories.tsx
|
|
- [ ] FileManagerView.stories.tsx
|
|
|
|
**Couverture attendue**: 96% → 100% 🎉
|
|
|
|
---
|
|
|
|
## 📊 Tableau de Suivi Global
|
|
|
|
| Semaine | Sprint | Stories Ajoutées | Couverture | Status |
|
|
|---------|--------|------------------|------------|--------|
|
|
| 1 | Critical Pages | 11 | 47% | ⬜ À faire |
|
|
| 2 | Dashboard & Admin | 9 | 52% | ⬜ À faire |
|
|
| 3 | Player & Playback | 8 | 57% | ⬜ À faire |
|
|
| 4 | Playlists Complete | 10 | 62% | ⬜ À faire |
|
|
| 5 | Tracks & Search | 8 | 67% | ⬜ À faire |
|
|
| 6 | Upload & Library | 8 | 72% | ⬜ À faire |
|
|
| 7 | Chat & Social | 9 | 77% | ⬜ À faire |
|
|
| 8 | Settings & Preferences | 10 | 82% | ⬜ À faire |
|
|
| 9 | Marketplace & Commerce | 9 | 87% | ⬜ À faire |
|
|
| 10 | Views & Layouts | 8 | 92% | ⬜ À faire |
|
|
| 11 | Studio & Education | 9 | 96% | ⬜ À faire |
|
|
| 12 | Final Sprint | 13 | 100% | ⬜ À faire |
|
|
|
|
---
|
|
|
|
## 🛠️ Commandes Utiles
|
|
|
|
### Vérifier la progression
|
|
|
|
```bash
|
|
# Compter les stories actuelles
|
|
find src -name "*.stories.tsx" | wc -l
|
|
|
|
# Vérifier la couverture
|
|
./scripts/storybook-coverage.sh
|
|
|
|
# Lister les composants sans stories
|
|
./scripts/storybook-coverage.sh 2>/dev/null | grep "^ -"
|
|
```
|
|
|
|
### Générer une story
|
|
|
|
```bash
|
|
# Script de génération automatique
|
|
./scripts/generate-story.sh src/components/views/UploadView.tsx
|
|
```
|
|
|
|
### Build Storybook
|
|
|
|
```bash
|
|
npm run storybook # Développement
|
|
npm run build-storybook # Production
|
|
```
|
|
|
|
---
|
|
|
|
## 📝 Notes
|
|
|
|
- **Effort estimé**: Basé sur la complexité du composant et le nombre de variants
|
|
- **Priorité**: P0 (Critique) → P3 (Basse)
|
|
- **Heures**: Incluent le temps de test et de revue
|
|
- **Variants**: Nombre minimum recommandé
|
|
|
|
---
|
|
|
|
*Document généré le 2 Février 2026*
|
|
*Fichier JSON associé: `storybook-roadmap.json`*
|