And the project is basically done! In our testing, it all seems good except for one bug. For some reason the server sometimes isn’t correctly removing clients once they’ve disconnected, making the server think it’s full when it really isn’t. But other than that, we have all parts at a level of completion that we’re happy with. This week, I helped out with some frontend UI elements to improve the UX. I added some “back” buttons to return to the select menu at anytime, including in the middle of a game. Then I added an informative popup window to appear when the opponent disconnects or if the game ends with a checkmate or staemate, and then the user can click the popup to return to the select menu.
Although I’m happy with the final result, I’ve learned a lot about how important the planning and design phase is, and this is reflected in our source code. There’s a lot of code smells and patchwork we did to get something to work rather than coding a more elegant solution. Perhaps this is because of the relatively quick pace of the class and a limited time to both think of a solution and learn new packages. There’s a number of elements I would like to go back and spend more time planning out so that the actual development period and integration could go more smoothly. But I’m still proud that three of us worked together to create a fully functional online game that we can give to ou friends to play from anywhere at anytime.