Leesah-game er et hendelsedrevet applikasjonsutviklingspill laget for å utfordre spilleren til å utvikle en applikasjon som kan håndtere et diverst utvalg av utfordrende hendelser som den mottar på eller utenfor NAIS-plattformen.
Prosjektet bruker Java 16. En praktisk måte å installere det på er med sdkman
:
- Installer
sdkman
- Installer Java 16 med sdkman:
sdk install java 16.0.2-tem
Start opp Docker Desktop og sørg for at det kjører.
Bygg hele prosjektet i rotmappen med:
./gradlew clean build
Sett opp hele sulamitten i docker med:
docker compose up
Sende meldinger på Kafka
For å produsere (test)meldinger til kafka-topicet kan man laste ned kafka:
brew install kafka
og deretter åpne et "producer-shell" mot topicet med
kafka-console-producer --topic quiz-rapid --bootstrap-server localhost:29092
Meldinger som skrives inn i dette shellet blir sendt på topicet og forhåpentligvis mottatt av appen.
Frontenden er plassert i en egen mappe under /quizboard
. For lokal frontend-utvikling er det raskere å hoste frontend i utviklingsmodus med:
npm install
npm run dev
Merk at dette er en helt frikoblet versjon av frontend, så all testdata må mockes.
Modules
-
Quizmaster
Handles the flow of the game. Reads and writes on the game topic
-
Quizboard (Leaderboard)
Handles showing the state of the game as a webpage
- Start new game
- Accept team registration
- Issue challenges
- Challenge 1 ("<number> + <number>")
TODO
Team registration answer
{"messageId": "b29175a7-059a-4a46-b274-94sd9f165473", "questionId": "b29175a7-059a-4a46-b274-947a9f165473", "type": "ANSWER", "category": "team-registration", "teamName": "", "answer": "coolteam"}
Arithmetic answer
{"messageId": "b30175a7-059a-4a46-b274-947a9f165473", "questionId": "cc07eb49-3454-4bdf-91f2-475d6e9d855e", "type": "ANSWER", "teamName": "coolteam", "category": "arithmetic", "answer": "7"}