/fausto-coppi-lab-automation

Exam project for the Laboratory of Software Systems (LSS) course of the Computer Science and Engineering Master degree in Cesena.

Primary LanguageKotlinGNU General Public License v3.0GPL-3.0

Fausto Coppi Lab Automation

GitHub release (latest SemVer) GitHub Workflow Status GitHub

'main' coverage maincodecov

'develop' coverage developcodecov

Important Notice

Since it was not the purpose of the exam to develop a system in its entirety, the software released so far is still to be considered in the prototype phase.

Overview

Exam project for the Laboratory of Software Systems (LSS) course of the Computer Science and Engineering Master degree in Cesena.

Fausto Coppi Lab Automation is a system designed to automate the management of the Fausto Coppi Lab, which is a part of the Fausto Coppi Building, the new headquarters of the Fausto Coppi company.

The Fausto Coppi Lab represents the main service for athletes, amateur cyclists, other members and employees of the company, as it provides a gym, physiotherapy, and analysis and measurement of cycling posture (biomechanics).

Project Documentation

Project Report and DevOps documentation reside into Confluence space.

Check out the Project Report

Check out DevOps documentation

Code Documentation

Code documentation is available through the repository GitHub Pages space.

Check out code documentation

Code Coverage

Code coverage reports are made available through the Codecov service (see also badges above).

Check out code coverage

Release and Delivery

The project has been released into the proper Release section of this repository and delivered to Docker Hub repository linked to the project.

Check out Release section

Check out Docker Hub repository

Project Structure

The project consists of three microservices:

  • athletictraining
  • consulting
  • reservation

They relate to the homonyms bounded context identified during the analysis and design phases of the project.

Each microservice implement specific features which have been identified throughout the analysis phase, for further information see the related Confluence page.

In Gradle, this means that the project consists of three suitably configured subprojects.

Getting started

Prerequisites

  • Java 1.8

Clone project

$ git clone https://github.com/nlasagni/fausto-coppi-lab-automation.git
$ cd fausto-coppi-lab-automation

Build from source code

All microservices:

$ gradlew build

Specific microservice:

$ gradlew <microservice>:build

Run microservices in interactive mode

Each microservice can run in interactive mode in order to demonstrate the feature that implements.

$ gradlew <microservice>:run -q --console=plain

Test

All microservices:

$ gradlew test

Specific microservice:

$ gradlew <microservice>:test

Generate documentation

Since the project is structured in subprojects, in order to generate the documentation of the entire project it is necessary to use the following task provided by dokka.

$ gradlew dokkaHtmlCollector

The result can be found in build/dokka/htmlCollector/ inside the root folder of the project.

Generate coverage report

We created a custom Gradle task in order to generate the coverage report of the entire project.

$ gradlew jacocoAggregatedReport

The result can be found in build/reports/jacoco/jacocoAggregatedReport/ inside the root folder of the project.

Authors