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