Skip to content

SigCatta/MyShelfie

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Prova Finale di Ingegneria del Software - AA 2022-2023

Grade 30L / 30
alt text

Implementation of the board game My Shelfie. The project consists in the implementation of a single-server system capable of simultaneously managing multiple games made up of 2 to 4 clients (one for each player). Each player can choose to play using either the command line interface (later referred to as CLI) or the graphical user interface (later referred to as GUI). The project fully implements the MVC (Model-View-Controller) design pattern, further information about the realization of the network can be found here.

Documentation

UML

Below some of the more significant UML diagrams:

JavaDoc

The following documentation includes a description of most of the classes and methods: Javadoc

Line coverage report

The unit test present in the test directory provide a model line coverage of 92% and 39% overall line coverage

Used tools

Libreria/Plugin Descrizione
Maven Build automation tool.
JavaFx Set of packages used to develop the GUI.
JUnit Testing framework.
PlantUML UML generation tool.
Docker Platform used to build and run linux containers.

Features

Developed Features

  • Complete Rules
  • CLI
  • GUI
  • Socket
  • Docker
  • 2 FA (Advanced Features):
    • Chat: Client and server offer the provide the players with the ability to exchange messages to either all players or a single player.
    • Multiple Games: The server must be able to simultaneously manage multiple games.

Client

The precompiled jar can be used to run the client application.
To independently create a client application jar, execute the following command in the project root:

mvn clean install assembly:single

The compiled jar will be found in the target/ under the name my-shelfie-client-jar-with-dependencies.jar.

CLI

To run the client's CLI for My Shelfie, open the terminal and run either java -jar my-shelfie-client.jar --cli or java -jar my-shelfie-client.jar -c.

GUI

To run the client's GUI for My Shelfie either run the following command java -jar my-shelfie-client.jar or double click on my-shelfie-client.jar.

Server

The server application can be run with docker, the image can be found at the following DockerHub repository.
to run the server, open the terminal and pull the image from the repository using:

docker pull mrcatta/my-shelfie-server:latest

the start the container:

docker run -p 28888:28888 mrcatta/my-shelfie-server 

Note that the container uses port 28888 and the client application is the to send messages to port 28888 (-p 28888:28888 maps your machine's 28888 port to the container's 28888 port)

Group members