Skip to content

Latest commit

 

History

History
76 lines (54 loc) · 2.31 KB

README.md

File metadata and controls

76 lines (54 loc) · 2.31 KB

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)
  • 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

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