Link Search Menu Expand Document

Tecnologie

Le versioni delle seguenti tecnologie utilizzate all’interno del progetto sono reperibili all’interno del file build.gradle.

Indice
  1. Java
  2. Spring
  3. MongoDB
  4. Lombok
  5. OpenAPI
  6. iText7
  7. Solidity
  8. Web3j
  9. Ganache
  10. jUnit
  11. Mockito
  12. JaCoCo
  13. Spotless
  14. Gradle
  15. Docker

Java

Il server è scritto in Java 14, utilizzando OpenJDK come JDK di riferimento.

Spring

Spring è utilizzato principalmente come framework di dependency injection e per l’esposizione delle web API.

MongoDB

Per la persistenza dei dati viene utilizzato il database non-relazionale MongoDB, collegamento facilitato dall’integrazione fornita da Spring Data MongoDB.

Lombok

Lombok è un libreria Java alla quale viene delegata la scrittura di determinati metodi (quali getter, setter e costruttori), ciò ha permesso di ridurre il carico di lavoro degli sviluppatori ed il numero di unit test richiesti.

OpenAPI

L’esposizione di REST API attraverso il framework Spring ha permesso anche di generare automaticamente una documentazione di tali API fruibile attraverso un’interfaccia web (accedibile mediante l’URL /swagger-ui.html). Tale documentazione viene facilmente estesa attraverso l’utilizzo di annotazioni fornite dalla libreria Swagger.

iText7

iText7 è la libreria utilizzata per la creazione dei report PDF.

Solidity

Solidity è il linguaggio con il quale è scritto lo smart contract Ethereum.

Web3j

Web3j è la libreria utilizzata per interfacciarsi con la blockchain Ethereum. Tale libreria implementa una classe astratta attraverso la quale viene esposto lo smart contract Solidity.

Ganache

Ganache permette di simulare localmente una blockchain Ethereum così da facilitarne il testing.

jUnit

jUnit 5 è il framework utilizzato per la scrittura degli unit test.

Mockito

Mockito è la libreria utilizzata all’interno degli unit test per la creazione di mock.

JaCoCo

Il code-coverage degli unit test viene misurato attraverso JaCoCo e poi esposto attraverso il servizio web Codecov.

Spotless

Lo stile del codice prodotto è applicato e controllato attraverso la libreria Spotless, le regole di tale formato sono definite all’interno di build.gradle.

Gradle

Gradle è un tool di build-automation che permette di configurare il progetto e le sue dipendenze attraverso un file build.gradle. Grazie a questo strumento è possibile riprodurre autonomamente il processo di build mediante continuous-integration.

Docker

Docker permette di creare facilmente container per definire ambienti di intallazione e configurazione definiti e riproducibili in qualsiasi macchina.


Utilizzo



Sweven Software
Ingegneria del Software, UniPd 2020/2021