Chess:E Backend
The Chess:E backend connects our physical chess board and web client, so users can play against each other. Clients communicate via a WebSocket connection with the backend, which handles game logic and stores the game state (though currently not persisted). Clients don't have to be connected to the same backend instance, multiple backend instances communicate via a message broker (LavinMQ).
Read the wiki at https://api.chesse.koeni.dev or connect using a WebSocket to wss://api.chesse.koeni.dev.
Chess:E Project Structure
This diagram is a bit outdated but can serve as a general overview ;)
You are here: Bottom center (backend) / GitHub: backend / Version Control
Backend Architecture
You will find a request flow diagram in the wiki.
Running the backend locally
If you have not yet installed Deno, follow their easy installation guide. Then, simply execute:
deno run --allow-net server.ts
Testing
Tests are located in the /tests/ directory. Run tests by using:
Optionally specify a test file to run or filter tests. Tests in the Communication.test.ts file require the --allow-net flag.
Deploying
Changes made on main are automatically deployed to Google Cloud Run.
The deployment configured in the cloudbuild.yaml file, so the project can also be deployed using gcloud run deploy.
