Capstone 13 · Full-Stack
Cue
A room people join with a link. There is a queue, everybody can add to it, everybody can vote, and the highest voted track plays next. While it plays, everybody's screen shows the same position. Real-time is the whole difficulty and it is worth doing because it is immediately obvious when it works. Two phones side by side, in sync, is a demo that needs no explanation. The problems you will actually hit: two people voting at the same instant, so the count must be authoritative on the server. Somebody joining halfway through, who needs the current state including how far into the track it is. Somebody's connection dropping and coming back, which must reconcile rather than reset. And clock differences between devices, which means synchronizing against a server time rather than each device's own. Decide deliberately what happens when the person who started the room leaves, because a room that dies with its host is a bad party.
Concepts used
Your dataset
No media hosting needed: use an embeddable player or short audio clips you have rights to.
Milestones
The graded core
The rest of this project is yours to shape. This one function is the piece everything else depends on, so it runs against hidden tests to prove it is right before you build outward.
Your workspace
Build the full project here. Work through the milestones in order, in both languages.