veza/docs/V0_902_RELEASE_SCOPE.md
senke da20e83e09 docs: complete roadmap documentation v0.703 to v0.903 (v1.0 target)
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.
2026-02-24 01:32:04 +01:00

9 KiB

V0.902 Release Scope — Social Complet, Chat & Notifications

Statut : Planifié Phase : 9 (v1.0 Launch — Lot 2) Prérequis : v0.901 (taguée) Date cible : TBD Estimation : ~3 sprints (15 jours ouvrés) Précédente : v0.901


1. Objectif

Deuxième version de la Phase 9. Complète les modules Social (hashtags trending, explore amélioré, QR code profil, referral, partage profil), Chat (envoi images, GIFs Giphy, partage tracks, pin/bookmark messages), Notifications transactionnelles (emails bienvenue, confirmation, reset, follower, achat/vente, newsletter), et Profils (URL personnalisée, badge vérifié, rôles artiste/producteur/label, suppression compte GDPR).


2. État actuel (post-v0.901)

Composant État Détail
Social feed Livré v0.301 Feed API, explore, filtres
Groupes Livré v0.302 Request join, invite, rôles
Trending Livré v0.203 GET /social/trending, cache Redis
Hashtags dans posts Absent Pas de parsing hashtag ni trending hashtags
QR code profil Absent Pas de génération QR
Referral / invitations Absent Pas de système d'invitation
Partage profil lien Absent Pas de lien public avec preview
Chat WebSocket Livré v0.502 Messages, typing, read receipts, reactions
Envoi images chat Absent Texte uniquement
GIF (Giphy) Absent Pas d'intégration Giphy
Partage tracks chat Absent Pas d'embed track dans le chat
Pin messages Absent Pas de messages épinglés
Bookmark messages Absent Pas de messages sauvegardés
Notifications push Livré v0.302 Web Push, préférences
Emails transactionnels Absent Pas d'emails automatisés (bienvenue, achat, etc.)
Profils Livré v0.103 Bannière, liens sociaux, privé
URL personnalisée Absent Pas de /u/username
Badge vérifié Absent Pas de système de vérification
Rôles artiste/producteur ⚠️ Partiel Rôle Artist existe, pas Producer/Label
Suppression compte Livré v0.803 DELETE /users/me

3. Lots

Lot SO1 — Social Complet

# Tâche Fichiers impactés Effort
SO1-01 Hashtags — parsing #hashtag dans posts, stockage dans post_hashtags table, GET /social/hashtags/trending (top 20) Backend, migrations M
SO1-02 Hashtags frontend — lien cliquable dans les posts, page /social/hashtags/:tag filtrée Frontend M
SO1-03 Explore amélioré — sections trending hashtags, recommended users, popular tracks, top groups Frontend M
SO1-04 QR code profil — GET /users/:id/qr retourne PNG QR code (lien vers profil public), affichage dans profil Backend (qrcode lib), frontend M
SO1-05 Referral / invitations — POST /invitations (email + lien unique), tracking inscrits via referral, bonus XP futur Backend, migrations M
SO1-06 Partage profil — /u/:username route publique, Open Graph meta tags (titre, avatar, bio), bouton partage Backend, frontend M
SO1-07 Tests — hashtag parsing, trending sort, QR generation, invitation flow Tests M

Lot CH1 — Chat Enrichi

# Tâche Fichiers impactés Effort
CH1-01 Envoi images — upload image dans conversation (S3 storage), affichage inline, preview thumbnail WebSocket handlers, frontend chat L
CH1-02 GIF integration — recherche Giphy API (GET /chat/gifs?q=...), picker dans chat, envoi comme message type "gif" Backend proxy, frontend L
CH1-03 Partage tracks — message type "track_share" avec track_id, embed player mini dans le chat WebSocket handlers, frontend M
CH1-04 Pin messages — PinMessage / UnpinMessage WebSocket commands, affichage pinned en haut de conversation WebSocket handlers, frontend M
CH1-05 Bookmark messages — POST /chat/bookmarks/:messageId, GET /chat/bookmarks, page bookmarks dans chat sidebar Backend, frontend M
CH1-06 Tests — image upload, GIF fetch, track embed, pin/unpin, bookmark CRUD Tests M

Lot NF1 — Emails Transactionnels

# Tâche Fichiers impactés Effort
NF1-01 Email service — abstraction SMTP/SendGrid, templates HTML, queue (goroutine background) internal/services/email_service.go (nouveau) L
NF1-02 Template bienvenue — envoyé après inscription validée Templates S
NF1-03 Template confirmation email — envoyé sur demande changement email Templates S
NF1-04 Template reset password — envoyé sur demande reset (remplacer le flow existant si besoin) Templates S
NF1-05 Template nouveau follower — envoyé quand quelqu'un follow (si pref activée) Templates S
NF1-06 Template achat/vente — envoyé au buyer (confirmation achat) et seller (notification vente) Templates S
NF1-07 Newsletter opt-in — PUT /users/me/preferences avec newsletter: true, cron hebdomadaire avec résumé activité Backend, templates M
NF1-08 Frontend — préférences email dans Settings (toggle par type), unsubscribe link dans chaque email Frontend M
NF1-09 Tests — email service mock, template rendering, preferences respect Tests M

Lot PR1 — Profils Complets

# Tâche Fichiers impactés Effort
PR1-01 URL personnalisée — /u/:username route publique, résolution username → user ID Backend routes, frontend M
PR1-02 Badge vérifié — migration ajout is_verified sur users, POST /admin/users/:id/verify, badge dans UI Backend, frontend M
PR1-03 Rôles artiste/producteur/label — migration ajout rôles Producer et Label, sélection dans Settings, badge rôle dans profil Backend, frontend M
PR1-04 Open Graph meta — serveur-side rendering des meta tags pour /u/:username (og:title, og:image, og:description) Backend middleware M
PR1-05 Tests — username resolution, verification, role assignment Tests M

Lot QA1 — Tests & Release

# Tâche Fichiers impactés Effort
QA1-01 Smoke test v0.902 docs/SMOKE_TEST_V0902.md S
QA1-02 Mise à jour docs docs/ S
QA1-03 Rétrospective, archivage, placeholder v0.903, tag docs/, Git S

4. Hors scope v0.902

Élément Version cible
Recherche phonétique / spell correction v0.903
Smart playlists v0.903
Session management (device list) v0.903
Load testing (k6) v0.903
Rapports mensuels email v2.0
Son notification personnalisable v2.0
Envoi de vidéos dans chat v2.0
Forums de discussion groupe v2.0
Événements de groupe v2.0
Markdown support chat v2.0

5. Critères d'acceptation

  • Hashtags : parsing dans posts, trending top 20, page filtrée par hashtag
  • Explore : sections trending hashtags, recommended, popular, groups
  • QR code : PNG généré pour chaque profil, affiché dans profil
  • Referral : invitation par email, tracking inscriptions via referral
  • Profil public : /u/:username, Open Graph meta tags
  • Chat images : upload + affichage inline, preview thumbnail
  • Chat GIFs : recherche Giphy, picker, envoi comme message
  • Chat track share : embed player mini dans les messages
  • Pin messages : épingler/désépingler, affichage en haut
  • Bookmark messages : sauvegarder, page bookmarks
  • Emails : bienvenue, confirmation, reset, follower, achat/vente
  • Newsletter : opt-in, cron hebdomadaire, unsubscribe
  • Badge vérifié : admin peut vérifier, badge affiché
  • Rôles Producer/Label : assignation, badge
  • Tag v0.902 créé

6. Risques

Risque Mitigation
Giphy API rate limiting Cache réponses 5min, fallback si indisponible
Images chat storage coût Compression + resize avant upload, limit 5MB
Email deliverability SPF/DKIM/DMARC config, utiliser SendGrid en prod
QR code large (SVG) Générer PNG server-side, cache 24h
Hashtag spam Rate limit création posts, modération auto sur hashtags abusifs
Open Graph SSR Middleware Go qui injecte les meta tags, pas de SSR React complet

7. Références

  • V0_901_RELEASE_SCOPE.md
  • SCOPE_CONTROL.md
  • veza-backend-api/internal/websocket/chat/ (WebSocket handlers)
  • veza-backend-api/internal/core/social/ (social service)
  • apps/web/src/features/chat/ (chat frontend)
  • apps/web/src/features/social/ (social frontend)
  • apps/web/src/components/settings/ (profile settings)
  • Giphy API
  • go-qrcode