Nucantus organizes challenges at your karaoke party. First, the party organizer distributes a participation link. Players may browse a song list and challenge a song by typing in their player name. Other players see open challenges and accept them by joining a song with their player name. A challenge view lists all accepted challenges and tells you, which song to start next in your karaoke software.
This service provides your song list and lets you manage challenges using a REST API. The API is consumed by the Nucantus App.
First, a file with a list of song directories is required. The directory names must be newline-separated. Each
directory's name must have the syntax ARTIST - TITLE
. The file is created by navigating to your song directory and
then executing one of the following shell scripts:
- Powershell:
Get-ChildItem -Name -Include "* - *" > songs.txt
- GNU/bash:
ls -A1 | grep " - " > songs.txt
Afterwards, copy the songs file to src/main/resources/
of your project.
Challenges are held in-memory and thus do not outlast JVM termination. You need a song list, which can be generated from the song database of your karaoke software such as:
The project comes with a Gradle wrapper, you do not need to have Gradle or a JDK installed on you computer.
Build the application and create the Java archive (JAR) with dependencies: gradlew clean build
- run
gradlew bootRun
or - run
java -jar build/libs/nucantus.jar
after building
The API is available at http://localhost:8080/api/
.
You may also create a Docker image using gradlew bootBuildImage
and then run the API using the Docker container at
your favorite port.
Use Swagger UI to browse the Nucantus API:
docker run -d -p 8081:8080 -e URL=http://localhost:8080/api/openapi.json --name swagger-ui swaggerapi/swagger-ui
Swagger UI is available at http://localhost:8081
.