For the Software Engineering final project of the academic year 2022-2023, we developed a software version of the board game "My Shelfie" by Cranio Creations.
The project involved creating a fully functioning game that followed the game rules and implementing a distributed system using a client-server architecture. Key deliverables included high-level UML diagrams for the application, a fully functional game implementation with both GUI and CLI commands. Additionally we conducted peer reviews, and provided unit tests with accompanying Javadoc documentation.
The technical requirements involved both game-specific and game-agnostic aspects. On the game-specific side, we implemented simplified and complete rule sets for the game, with options for players to set unique nicknames and join games hosted by the server. The game-agnostic requirements focused on the client-server architecture, utilizing JavaSE for both server and client, and implementing the MVC pattern. The client was developed using JavaFX, with the option to select between graphical or textual interfaces. Finally we implemented advanced features like multi-game support, resilience to player disconnections, and an in-game chat.