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-server
to launch the app in server mode. (Default:false
)--show-gui
to launch the client in GUI mode. If false launches the client in CLI mode. (Default:false
) 🔶--use-rmi
to launch the client using RMI connection over Socket. (Default:false
) 🔶--debug
to 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-ms
to 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.