// projet — plateforme Twitch × Spotify

Le Vinyle

Plateforme web permettant aux streamers Twitch d'organiser des sessions musicales collaboratives : les viewers proposent des morceaux via Spotify, les modérateurs valident en temps réel, et les titres acceptés rejoignent automatiquement la playlist du live.

React · TypeScriptNode.js · ExpressPostgreSQL · PrismaSocket.ioTwitch API · Spotify API

Contexte

Étude de cas — Master MIAGE (M2) · équipe de 3

Le projet est né de la demande d'un streamer Twitch souhaitant renforcer l'interactivité musicale avec sa communauté, tout en gardant la main sur les morceaux diffusés en direct. Les outils existants (bots de chat type Song Request) permettent de proposer un titre, mais n'offrent ni modération structurée, ni gestion de plusieurs sessions, ni synchronisation avec une playlist Spotify.

Le Vinyle centralise la création de sessions publiques ou privées, la proposition de morceaux par les viewers, la modération en temps réel par le streamer ou ses modérateurs, et l'ajout automatique des titres validés à la playlist du live. Développé en équipe de 3 sur un cycle en V — le client, peu disponible, ne pouvait pas soutenir les boucles courtes qu'exige l'agilité.

Stack technique

Frontend
React + TypeScriptinterface componentisée par rôle (streamer, modérateur, viewer), mises à jour temps réel via Socket.io.
Backend
Node.js + ExpressAPI REST et logique métier, droits d'accès par rôle, diffusion d'événements temps réel (proposition, validation, sanction).
Base de données
PostgreSQL + Prismautilisateurs, sessions, propositions, playlists et sanctions dans un modèle relationnel.
Temps réel
Socket.iodiffusion instantanée des propositions, décisions de modération et fin de session, reconnexions automatiques.
Intégrations
API Twitch & Spotifyauthentification OAuth2, recherche de morceaux, création et alimentation de playlists.

Captures d'écran

Connexion
Rejoindre une session
Créer une session
Ajouter un morceau
Lecture en cours

Défis & solutions

1
Client peu disponible, méthode agile écartée
L'emploi du temps du client rendait des échanges fréquents impossibles. L'équipe a opté pour un cycle en V, avec des validations à des jalons précis plutôt qu'un suivi continu — mieux adapté à une petite équipe à disponibilité irrégulière.
2
Synchronisation temps réel entre rôles
Streamer, modérateurs et viewers doivent voir l'état des propositions évoluer instantanément et de façon cohérente. Socket.io a permis de diffuser chaque événement (proposition, validation, sanction) avec reconnexion automatique en cas de coupure.
3
Double intégration Twitch + Spotify
Authentifier les utilisateurs via Twitch tout en gérant des tokens Spotify côté streamer pour la création de playlists a demandé une gestion OAuth2 sécurisée et séparée par service, gérée entièrement côté backend.

Documents du projet

Livrables produits en équipe tout au long du projet.

PDF
Note de cadrage
PDF
Analyse du besoin
PDF
Analyse de l'existant
PDF
Milestone 1
PDF
Cahier des charges fonctionnel
PDF
Cahier des charges technique
PDF
Maquette
PDF
Milestone 2
PDF
Glossaire / Lexique
PDF
Comptes-rendus de réunions