This Java project is a porting of the boardgame MyShelfie by Cranio Creations. It was realized as final project of the Software Engineering course at Politecnico di Milano.
Group 10 (Prof. Alessandro Margara)
- Alessandro Amandonico (@aleama01)
- Francesco Buccoliero (@frbuccoliero)
- Kaixi Matteo Chen (@mattteochen)
- Lorenzo Cavallero (@locavallero)
| Functionality | Status |
|---|---|
| Basic rules | ✅ |
| Complete rules | ✅ |
| Socket connection | ✅ |
| RMI connection | ✅ |
| CLI | ✅ |
| GUI | ✅ |
| Multiple games | ✅ |
| Persistence | ❌ |
| Resilience | ✅ |
| Chat | ✅ |
Legend
| Symbol | Functionality status |
|---|---|
| ✅ | Completed |
| ☑️ | Planned, not started yet |
| 🚧 | Work in progress |
| ❌ | Not planned to be implemented |
Run the app with the following command line arguments:
--is-serverto launch the app in server mode. (Default:false)--show-guito launch the client in GUI mode. If false launches the client in CLI mode. (Default:false) 🔶--use-rmito launch the client using RMI connection over Socket. (Default:false) 🔶--debugto get verbose output in Client mode. Server mode always has verbose logging. (Default:false) 🔶--address [ipv4]the address where client should look for a server. (Default:localhost) 🔶--socket-port [1024-65535]the port where server should expose the socket/client should connect to. (Default:9001)--rmi-port [1024-65535]the port where server should expose the rmi registry/client should retrieve the stub. (Default:9002)--max-connections [0-10]the maximum number of clients who can connect to the server. (Default:8) 🔷--keep-alive [bool]to set socket keepalive function. (Default:true) 🔷--max-player-inactive-msto set the max time in milliseconds after a player gets kicked out for inactivity (Default:120000=2 min ) 🔷
🔶 = Command only works in client mode. Will be ignored if launched in server mode.
🔷 = Command only works in server mode. Will be ignored if launched in client mode.
Project works fine as a stand-alone Maven project.
To generate test coverage report launch JaCoCo with the following command from <REPOSITORY_DIRECTORY>/is23am10:
mvn clean jacoco:prepare-agent install jacoco:report
or use the button under "Favorites" in your Maven left-side panel if you use the VSCode dev container.
Use the command mvn javadoc:javadoc to generate the HTML. You'll find the artifact in target/site/apidocs.
My Shelfie è un gioco da tavolo sviluppato ed edito da Cranio Creations Srl. I contenuti grafici di questo progetto riconducibili al prodotto editoriale da tavolo sono utilizzati previa approvazione di Cranio Creations Srl a solo scopo didattico. È vietata la distribuzione, la copia o la riproduzione dei contenuti e immagini in qualsiasi forma al di fuori del progetto, così come la redistribuzione e la pubblicazione dei contenuti e immagini a fini diversi da quello sopracitato. È inoltre vietato l'utilizzo commerciale di suddetti contenuti.
The software is released under MIT License, see LICENSE.

