Skip to content

Class management system for the course of Distributed Systems @ist.

Notifications You must be signed in to change notification settings

AlexP-Coding/ClassManager

Repository files navigation

ClassManager - Turmas

Class management distributed system for the course of Distributed Systems @IST.

It was originally an updated fork from https://github.com/tecnico-distsys/Turmas as per a class project. I have created this repo so the work done may be kept for posterity in case the original repository is deleted.

This project was implemented using gRPC and gossip for communication protocols, and is designed to be fault-tolerant and coherent.

Authors

Group A06

Code Identification

Team Members

Name User
Jiaqi Yu https://github.com/jiaqiyusun
André Matos https://github.com/andrem000
Alexandra Pato https://github.com/AlexP-Coding

Getting Started

The overall system is made up of several modules. The main server is the ClassServer. The clients are the Student, the Professor and the Admin. The definition of messages and services is in the Contract. The future naming server is the NamingServer.

See the Project Statement (PT) for a complete domain and system description.

Prerequisites

The Project is configured with Java 17 (which is only compatible with Maven >= 3.8), but if you want to use Java 11 you can too, just downgrade the version in the POMs.

To confirm that you have them installed and which versions they are, run in the terminal:

javac -version
mvn -version

Installation

To compile and install all modules:

mvn clean install compile

Built With

  • Maven - Build and dependency management tool;
  • gRPC - RPC framework.

To run processes

Turn on debug mode by adding -debug at the END of the list of args

Debug mode is always on when using the default mvn exec:java

NamingServer should always be set on localhost port 5000

NamingServer

mvn exec:java -Dexec.args="localhost 5000"

ClassServer

mvn exec:java -Dexec.args="host port serverType"

If no serverType is specified, default is P

Student

mvn exec:java -Dexec.args="alunoXXXX StudentName"

Professor

mvn exec:java -Dexec.args=""

Admin

mvn exec:java -Dexec.args=""

About

Class management system for the course of Distributed Systems @ist.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published