Radial Chess

Radial Chess UI
Radial Chess UI

Demo

Radial Chess Demo
Playing against myself

Inspired by the heorics of lichess.org’s single developer, I decided to try to create a similar web-based online chess app, with matchmaking. The main goal of this project is to use my knowledge of system design to make a robust and scalable app that could theoretically handle a large number of users. This involves knowlege of infastructure tools, and overcoming dificulties such as scaling a Web-Socket app (hint: you will need sticky sessions for your load-balancer!).

Another goal of this project was to put to use my Rust knowledge, I’d been learning in my spare time and wanted to try and integrate what I knew into something practical.

Back-end Technologies

Front-end Technologies

  • VueJs for front-end + WebSocket client
  • Vue-axios for API consumption
  • Auth0 for secure authentication and Single Sign-On (Google accounts)
  • Vue3-Chessboard for chess GUI, built on Lichess

Architecture

Note: The project is yet to be hosted as it is under development, but these will be the technologies used:

  • CloudFront for serving the static site
  • AWS EC2 for hosting the back-end servers
  • Docker for containerization
  • NGINX for load balancing
  • Redis for state management and pub/sub

Note- this project has since been shelved as I’ve had other responsibilities, but I learnt a lot and was glad to be able to deliver a working prototype.