One day I was playing checkers and I noticed that the pieces were too heavy to pick up. So I decided to code my own and learn some new skills along the way. I am also in the process of building my own chess engine so I figured this was an interesting complimentary project.

What it does

Thanks to revolutionary technology, it is now possible to play checkers on the web! This revolutionary web app features an easy to use lobby system so that you can connect and play with your friends anywhere in the world! WOW! The server can hold the game states of many players at once and is able to keep track of the game state for all of them.

How I built it

Being the daring lad I am, I decided to use BRAND NEW technologies such as React and Express. I built both the React front-end client that connects to the back-end and the server that holds and manages the game state for the players. A Fetch API allows me to send requests to the express server which enables updating of the game state. I then use a WebSocket connection to allow for real-time updates and feedback to the player so you can always be on the edge of your seat when you're opponent plays their next devastating moves.

Challenges I ran into

I never used any of these technologies before except for minor experience in React. So learning exactly how all the frameworks worked and what their strengths were was a difficult challenge that I had to overcome with masterful google skills. I also had an issue with WebSockets working nicely with Express, which meant that I had to create a primitive header system to get around an issue for when users first connected. If I had more time I would definitely go back and do things the "right" way.

Accomplishments that I'm proud of

Doing more than I expected myself to accomplish. Even though the code was getting more and more complex I felt I had a better understanding of everything the longer I worked on it, which allowed me to really speed up my development especially towards the end.

What I learned

Web Dev is a fickle thing, but working with servers was really enjoyable and I got to see a small part of what it's like to design a system. I definitely plan on learning more back-end technology and getting more involved with the web in general.

What's next for CheckersExpress

While I was close, I did not completely finish my implementation of the game of checkers since I was more interested and focused on designing the supporting system. There's also a lot of rough code that needs cleaning up and polishing the design and look for the front end in general.

Share this project: