Skip to content

Processo di Sviluppo

Messaggi di Commit

Per la scrittura dei messaggi di commit, è stata adottata la convenzione Conventional Commits, che fornisce uno standard chiaro e coerente per descrivere le modifiche apportate al progetto. È stato inoltre utilizzato Open Commit per generare automaticamente tramite AI i messaggi di commit.

Testing

Per garantire la correttezza delle funzionalità sviluppate, è stato adottato l'approccio Behavior Driven Development (BDD) utilizzando Cucumber. I test vengono eseguiti tramite Cucumber integrato con Selenium per la simulazione di interazioni utente e test di interfaccia. Approfondimento nel capitolo dedicato.

Build

Come tool di build è stato scelto sbt, che gestisce le dipendenze del progetto e facilita l'esecuzione dei test e la generazione della documentazione. Inoltre viene usato Vite per la generazione del bundle JavaScript.

Qualità del Codice

Per mantenere elevati standard di qualità del codice, sono stati adottati i seguenti strumenti:

  • Scalafmt: per la formattazione automatica del codice.
  • Scalafix: per il refactoring e il miglioramento della qualità del codice.
  • Wartremover: per l'analisi statica del codice e la rilevazione di possibili errori.

CI/CD

Per Continuous Integration e Continuous Deployment, è stato scelto di utilizzare le GitHub Actions. Sono stati definiti i seguenti workflow:

  • Pages Deploy: Generazione dell'artefatto web e caricamento su GitHub Pages, comprendendo sia il progetto che la documentazione.
  • Test & Format: Esecuzione automatica dei test e verifica della formattazione del codice.

Documentazione

La documentazione del progetto è redatta utilizzando il linguaggio Markdown. Viene pubblicata su GitHub Pages per garantirne la consultazione online.

Per la generazione della documentazione in formato HTML è stato utilizzato il tool vitepress in maniera da integrare la documentazione con il progetto che già utilizza Vite.

ScalaDoc

WARNING

Al momento dell'esame non è stato possibile generare la scala doc: GitHub Issue