My Shelfie Board Game is the final test of "Software Engineering", course of "Computer Science Engineering" held at Politecnico di Milano (2022/2023).
You can find the full game here.
Professor: Prof. Gianpaolo Cugola
Group: GC35
Students:
- Tommaso Trabacchin
- Melanie Tonarelli
- Emanuele Valsecchi
- Adem Shehi
The project consists of a Java version of the board game My Shelfie, made by Cranio Creations, according to the game rulebook available in italian version and english version.
The program is realized following a Model-View-Controller design pattern: several UML diagrams are provided to clarify the structure and dynamics of the code.
Project requirements are available here.
Feature | Implemented |
---|---|
All the rules | ✅ |
TUI | ✅ |
GUI | ✅ |
Socket | ✅ |
RMI | ✅ |
Advanced functionality 1 | ✅ Multiple matches |
Advanced functionality 2 | ✅ Resilience to disconnections |
Advanced functionality 3 | ✅ Chat |
Advanced functionality 4 | ⛔ Persistence |
Firstly, download the jar from the following link. We weren't able to upload the jars in GitHub because they exceeded the allowed maximum file size.
To execute Server please run the following command
java -jar server.jar localIP rmiPort socketPort turnDuration timeOut
where:
localIP
: Local IP of the machine that host the server.rmiPort
: RMI port number.socketPort
: Socket port number.turnDuration
: The maximum duration of a game turn (associated with a single player) in milliseconds.timeOut
: Duration in milliseconds after which the connection is considered lost.
Please, note that RMI port and socket port have to be different.
To execute Client please run the following command
java -jar client.jar tui|gui timeOut localIP
where:
tui|gui
:tui
orgui
depending on which user interface the user wants to use.timeOut
: Duration in milliseconds after which the connection is considered lost.localIP
: Local IP of the machine that host the client.
In order to run the GUI, openJFX
is required.
The structure of the whole system is displayed by different UMLs. In the deliveries/uml
directory, there are two subdirectories:
handcraftedUML
which contains the initial handcrafted diagrams, such as:finalUML
which contains the final diagram, generated from the code by automated tools.
The tests achieved the following coverage:
- Model
The following documentation includes a description of all classes and methods: javadoc.
Library/Plugin | Description |
---|---|
Maven | A build automation tool used primarily for Java projects. |
JavaFx | A Java library that is used to develop Desktop applications |
JUnit | A unit testing framework for Java programming language. |
Gson | A simple Java-based library to serialize Java objects to JSON and vice versa. |
My Shelfie is property of Cranio Creations and all the copyrighted graphical assets used in this project were supplied by Politecnico di Milano in collaboration with their rights' holders.