Creating a Chess Game Explorer
So it has been a long time since my last post. I basically fell off the map for playing, studying and blogging about my chess journey. I was however, still doing something related to chess. I had an idea to create my own chess game explorer similar to that of Chess.com and others on the web. However, I wanted to use this functionality with all of my live games, a feature that Chess.com does not support (hilariously enough, I have come back to discover that this functionality is included in the new beta website of Chess.com).
Planning out the app was fairly straightforward. I had a great model to base my design off of, and so it was simply a matter of putting all of the features that I wanted to include down, and tackle them step by step.
The open-source community in web development (and the tech. world in general) is pretty amazing. There are a ton of tools, tutorials, and support for almost anything you want to do. It was a great help to me to be able to look at others work, draw inspiration from past examples, and use free open source tools to help develop my app.
After getting an User Authentication system up and running, as well as cleaning up the design and navigation of the app, I decided I wanted to add in a few other features. I added the ability to upload games in mass, such as a zip file that is downloaded from Chess.com. I was able to recieve all of my games played on chess.com, and upload them to my app using Redis, Sidekiq, and PostgreSQL. After that I looked to adding a good chess engine, since playing games and having a computer analysis are great tools in the chess player toolbet.
Stockfish destroying me in the picture above.
Again, another amazing tool that is open-source and free to use. If there was one lesson that I took away from this project, it would be the incredible generosity of people who are involved in the open-source community.
I won't bore anyone with the specifics of the code or how the different languages and technologies were used. But I will say that I learned a tremendous amount working on this pet project. It has increased my respect of chess as a whole, from the difficulties of programming Chess Engines to simple things like making a board show up and look nice for the users. I hope to keep working on this as a side-project and release it free for anyone who may find use of it later on once I make the UI look much cleaner and more intuitive and increase performance of the engine.
I hope to get back into playing and studying more Chess for the new year. This project ate up a bunch of my time that usually went to that. But it has been totally worth it. If you have any questions, feel free to ask. I hope to see some of you over the board soon.
Until next time, friends, comrades.