Interaction Website Requirements - Strange4/RenaEngine GitHub Wiki
The interaction website (or just website) is the one thing that allows users to cleanly interact with the Game Server. It must be able
Requirements
- Use Typescript + React
- Use a webserver that allows us to write custom server side logic (NextJs, Express, Fastify, or other)
- Must be able to run inside docker
Features
- Authenticate/authorize users in the home page using their token
- Allow users to stay logged in/logout
- Listen to server side events for games that are currently being played (you authenticate yourself via your cookie)
Admin Page
The admin page is the page that is responsible for managing the game server as an administrator.
This page needs to:
- Create/Delete new participant tokens (post request to game server)
- Pause submissions of code
- Toggle leaderboard on/off
- Allow uploads of admin test agent as .zip files
- View the leaderboard and all of the latest saved games.
- Start the games between participant agents
Participant Page
The participant page allows each participant to upload their code, queue in for testing their latest uploaded code against the admin test agent, and view a game that they are currently debugging on their computer.
Communication Diagrams
sequenceDiagram
Website ->>+Server: POST /isAdmin (using bearer token)
Server-->>-Website: OK/NOT OK