Skip to content

Repository files navigation

Screenshots

Login Page

Chatroom

Features

  • Real-time multiplayer music guessing game
  • Websocket-based communication for instant updates
  • Flexible scoring system with partial matching
  • In-game commands for track management and hints
  • Genre and year-based track selection

Requirements

  • PHP 8.2+
  • Composer
  • Node.js and npm
  • SQLite

Installation

Sequentially

  • composer install installs PHP dependencies
  • npm install installs NodeJS dependencies
  • Place your music in storage/app/music (MP3 files) or use the demo track
  • touch database/database.sqlite creates an empty database
  • mv .env.example .env use the default env file
  • php artisan migrate:fresh rebuilds the database
  • php artisan reverb:install regenerates reverb keys and config (Answer Yes)
  • php artisan music:scan scans your music, extracts ID3 tags and inserts in the database
  • php artisan key:generate generates a crypto key

Demo Track

When you install this project, a demo track will be automatically copied to the music directory. This allows you to immediately start playing without having to add your own music files.

Running

Run these commands in separate terminal windows:

  • php artisan serve runs the local webserver
  • php artisan reverb:start runs the websocket
  • npm run dev runs the JS/CSS tools

Access the application at http://localhost:8000

In-game commands

  • /next [genre|year] [genre|year] Select a new random track
  • /ff Fast forward the current track
  • /clue Reveal 20% of the track info (reduces potential points)
  • /giveup Reveal track info and end the current round
  • /reset Reset all user scores to zero

Note that the genre/year is not saved.

Consider the following sequence :

  • call /next 2000 house
  • The next track will be of genre containing House in decade 2000-2009
  • call /next
  • The next track will be totally random

Scoring System

Matching is not case sensitive.

  • Exact matches for name, remix, or artist: 1 point each (max 3 points per track)
  • Partial word matches (for a little of n words):
    • Correct word, correct position: 1/n point
    • Correct word, wrong position: 1/n/2 point

A minimum score of 0.33 is required for an answer to be accepted.

Security Notice

This application has no built-in authentication. It is intended for local network use only. To secure it for public deployment, consider implementing:

  • HTTP Basic Authentication
  • User registration and login system

About

A blindtest web application, using your own MP3s, and Websocket for realtime chat

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages