intro

An implementation of chess the game, with support for final checkmate detection, illegal move detection and spectation.

This project’s main purpose was to expand my knowledge on WebSockets, system design, and the Dart Language.

stack

What I used for this project:

  • Go: server
  • Dart & Flutter: web client

I intended for the client to be web only, and since Flutter it very app-centric it would supply me with easy & powerful widgets.

Which in theory would cut down on the development time. But the development time(for the client atleast) was very long & boring.

mistakes

  • not using a language I am proficient in for the client side(should’ve used good ol’ html,css,js )
  • not having an accessible demo(flutter compiled to minimum of 1MB)

I should’ve compiled flutter or seen web demos of it being used, 1MB is absolutely unacceptable considering I have such bad internet.

Deploying was also tiresome due to flutter caching everything & not updating the base client whenever I deployed another version(I had to reset browser history on every device I used for testing).

Ultimately, this project took too much time and left me uninspired.

future thoughts

I wanna redo the project’s client side in another language, maybe TypeScript alongside HTML and CSS.

I am proud of the server side, and don’t think there is much drastic improvement I could do.

Overall, I don’t regret this project but I should’ve finished it faster for a simple game such as Chess.