Skip to content

Final exam of "Software Engineering 1" - Polimi Computer Science Engineering - A.Y. 2022-2023

Notifications You must be signed in to change notification settings

mttcrn/software-engineering-project

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Software engineering project

MyShelfie Logo

The final project of Software Engineering, course of Computer Science Engineering held at Politecnico di Milano (2022/2023).
It consists of the implementation of a distributed system composed of a single server capable of managing more games at a time and multiple clients (one per player) using the MVC pattern (Model-View-Controller).


Group: PSP-35

The team:

Implemented features

Feature Implemented
Complete rules ✔️
CLI ✔️
GUI ✔️
Socket ✔️
RMI ✔️
Multiple matches (FA 1) ✔️
Resilience to disconnections (FA 2) ✔️
Chat (FA 3) ✔️

Testing

Almost all model and controller classes have a class and method coverage of 100% (except for trivial methods like getters and setters).

Package Class Coverage (lines)
Model Entire Package 95% (821/856)
Controller Entire Package 92% (364/395)
Controller clientController 91% (140/153)
Controller gameController 87% (57/65)
Controller serverController 94% (143/151)

Requirements

To successfully execute the .jar applications, which it can be found here, both Windows and Java 20 are required.

If you wish to compile the project independently, it is necessary to either download the GitHub repository or clone it using the following command:

git clone https://github.com/TheICSDI/ing-sw-2023-Gervatini-Grassi-Motti-Montuori.git

Afterwards, it can be compiled using your IDE of choice, provided with the required dependencies, java-20-openjdk and javafx-sdk-20.0.1.

Run using the JAR file

Once installed all requirements and/or compiled the project, open a terminal and go to the .jar files directory. Once there it is possible to choose to run the server or the client (CLI or GUI):

Run the Server

java -jar Server.jar [-i <Your IPv4> | --ip <Your IPv4>]
  • If the parameters ip or i are omitted, the server will run on localhost.

Run the Client (CLI)

java -jar Client.jar -c

or

java -jar Client.jar --cli

Run the Client (GUI)

java -jar Client.jar

To run the Client (GUI) it is also possible to open the JAR file directly from the file explorer.

WARNING: For the best GUI experience it is strongly suggested to play with a screen resolution of 1920x1080 (100% DPI) and with a scaling of 100%.

License

This project is developed in collaboration with Politecnico di Milano and Cranio Creations.

NOTA: 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.

About

Final exam of "Software Engineering 1" - Polimi Computer Science Engineering - A.Y. 2022-2023

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.5%
  • CSS 0.5%