Yusuf Burak PEKER
Back to CV

Personal · 2026

MuzikDuello

Real-time multiplayer music trivia on web and mobile

My role

Solo developer — backend, web and mobile

Status

Feature-complete prototype, not deployed yet

Overview

MuzikDuello is a Turkish music trivia game where players duel 1v1 or in parties: they hear a song clip and race to guess the lyric, artist, year or album. Ranked matches use an ELO rating, and bots step in when no human opponent is available.

The problem

Music trivia apps rarely offer live, ranked competition with Turkish songs, and a new game has too few players to match people quickly.

Key features

  • Live game rooms over a SignalR hub: matchmaking, rounds, answers and results in real time
  • Ranked matchmaking with ELO ratings
  • Bot opponents with per-difficulty accuracy and human-like response times
  • Party mode with invites, a ready-check lobby, host start and rematch
  • Question types for lyrics, artist, year, album and song intros at three difficulty levels
  • Daily challenge, global and friends leaderboards, friendships, achievements and unlockable avatars
  • Admin panel for songs, users and avatars; YouTube Data API integration for song clips
  • Flutter mobile app alongside the Next.js web app

Architecture

  • ASP.NET Core 8 API with controllers, services and EF Core on PostgreSQL
  • Redis holds the matchmaking queue as a sorted set scored by ELO
  • JWT access and refresh tokens, plus guest login
  • Next.js web client with Zustand and the SignalR client; Flutter client with Provider
  • Docker Compose stack with PostgreSQL, Redis, the API, the web app and an Nginx reverse proxy for API and WebSocket traffic

Technical challenges

  • Race-free matchmaking with short-lived Redis locks so a player is never matched twice
  • Server-authoritative rounds: the server sets start and end times and a shared clip offset so both players hear the same part of the song
  • Reconnect recovery that restores the match and round with the remaining time

Tech stack

.NET 8ASP.NET CoreSignalREntity Framework CorePostgreSQLRedisJWTYouTube Data APINext.jsReactTypeScriptTailwind CSSZustandFlutterDocker ComposeNginx