La struttura della repository si presenta nel seguente modo:
|-- .github
| |-- workflows
| | |-- docker_build&push.yml
| | |-- gradle_build.yml
|-- build
| |-- reports
| | |-- checkstyle
| | |-- spotbugs
| | |-- tests/test
|–– config
| |–– checkstyle
| |–– pmd
|–– docs
| |–– Assegnazione progetto.md
| |–– CODE_OF_CONDUCT.md
| |–– Guida per lo studente.md
| |–– img
| |–– ISPIRATORE.md
| |–– Report.md
|–– drawings
|–– gradle
|–– lib
|–– res
|–– src
| |–– main
| |–– test
|–– .gitattributes
|–– .gitignore
|–– Dockerfile
|–– build.gradle
|–– README.md
|–– gradlew
|–– gradlew.bat
|–– settings.gradle
Nel seguito si dettagliano i ruoli dei diversi componenti:
.github/workflows/docker_build&push.yml
: dettaglia le direttive per assicurare la continuous integration attraverso l’uso di GitHub Actions. In particolare le direttive vengono innescate dalle operazioni di push e merge sul branch main;.github/workflows/gradle_build.yml
: dettaglia le direttive per assicurare la continuous integration attraverso l’uso di GitHub Actions. In particolare le direttive vengono innescate da ogni pull request;build/
: ospita la sottocartellareports/
, contenente gli output dei tool automatici di test e controllo di qualità;config/
: ospita i file di configurazione. Le uniche configurazioni di base richieste sono quelle per i tool checkstyle e pmd;docs/
: ospita la documentazione di progetto, incluse le figure (nella sottocartellaimg/
). Il fileReport.md
verrà usato per redigere la relazione finale del progetto. La cartella raccoglie inoltre:Assegnazione progetto.md
: contenente la descrizione dettagliata del progetto assegnato;CODE_OF_CONDUCT.md
: contenente il codice di condotta del team, ossia un insieme di regole che delineano le norme, le responsabilità e le pratiche corrette che il team deve seguire;Guida per lo studente.md
: contenente la descrizione di tutti i passi di configurazione necessari per l'attivazione del flusso di lavoro a supporto dello sviluppo del progetto;ISPIRATORE.md
: contenente biografia e principali contributi del personaggio a cui il team si è ispirato per il nome;
gradle/
: ospita il.jar
relativo al sistema di gestione delle dipendenze Gradle.lib
: include eventuali librerie esterne utilizzate dal progetto.res
: contiene risorse varie utilizzate dal sistemasrc
: cartella principale del progetto, in cui scrivere tutto il codice dell’applicazione. Inmain/
ci saranno i file sorgente etest/
conterrà i test di unità previsti.drawings/
: contiene tutti i diagrammi UML usati per descrivere il progetto..gitattributes
: specifica come Git deve gestire determinati file all'interno del repository..gitignore
: specifica tutti i file che devono essere esclusi dal sistema di controllo versione.Dockerfile
: definisce ciò che deve essere inserito in un container.build.gradle
: esplicita le direttive e la configurazione di Gradle.gradlew
egradlew.bat
: eseguibili di Gradle, rispettivamente dedicati a Unix e Windows.settings.gradle
: file di configurazione di Gradle.
In alcune cartelle è possibile notare la presenza di un unico file nascosto .keep
: questo ha il solo scopo di richiedere a Git l’inclusione delle cartelle in cui è contenuto (Git esclude dal versioning le cartelle vuote). Pertanto, il file può essere ignorato o eventualmente cancellato nel momento in cui si inserisca almeno un altro file all’interno della cartella.