O Projeto Monumenta Hyginia publica em formato digital os anos 1635 e 1636 do Monumenta Hyginia - Dagelijkse Notulen.
Para executar o projeto localmente, abra um terminal e execute:
./gradlew run
A aplicação ficará acessível em http://localhost:8080/.
Se você quiser recarregar a aplicação a cada alteração de código, execute o Gradle em modo contínuo:
./gradlew run -t
O aplicativo é executado usando o nginx como proxy, em uma máquina com o Rocky Linux. Para simular este ambiente, você pode usar o Vagrant, que irá configurar todos os detalhes usando um único comando:
./gradlew clean vagrantUp
O servidor nginx ficará acessível em http://localhost:9080/, e a aplicação em http://localhost:9080/hyginia.
Para acessar a VM via SSH, execute:
vagrant ssh
Se a VM estiver executando, execute o seguinte comando para destruí-lo:
vagrant destroy --graceful --force
- Java 21 (mais fácil de instalar com SDKMAN)
- Node.js 20
- Docker Desktop (se você quiser testar as imagens Docker)
- Ktlint CLI (se você quiser executar inspeções de código localmente)
- Gradle (se você não quiser usar o script
./gradlew
) - Vagrant (se você quiser rodar o projeto usando uma VM)
O projeto é desenvolvido usando:
O projeto usa JTE / KTE como template engine.
O projeto usa GitHub Actions para executar testes e outras validações descritas abaixo.
Para cada merge/push, e também para pull requests, existem ações do GitHub para executar ktlint, detekt, e DiKTat (experimental).
O ktlint está configurado para usar o estilo de código intellij_idea
para que ele não entre em conflito com a ação de formatação de código da IntelliJ IDEA.
Há também uma integração com o Sonar Cloud: https://sonarcloud.io/project/overview?id=Liber-UFPE_hyginia.
Usamos Kotest como framework de teste, e Kover como a ferramenta de cobertura de código. Ver também Micronaut Kotest integrações docs.
Tip
Veja a cobertura de código mais recente na página do projeto no SonarCloud.
Para garantir que as páginas carreguem rapidamente, há um processamento dos assets estáticos (JavaScripts, CSS, imagens). O esbuild é usado em conjunto com alguns pacotes npm:
- sharp para gerar versões
webp
das images - postcss para otimizar o uso do Tailwind CSS e manter apenas os estilos efetivamente usados.
Esse processamento é então integrado ao build
principal da aplicação usando o Gradle Plugin for Node.
Tip
Dá para testar o processamento dos assets de maneira isolada executando diretamente node assets-pipeline.mjs
.
O projeto segue o padrão Maven Standard Directory Layout para projetos Kotlin. As pastas principais são:
Diretório | Descrição |
---|---|
src/main |
Pasta raiz para código de aplicação |
src/main/jte |
Pasta de templates JTE |
src/main/kotlin |
Código Kotlin da aplicação |
src/main/resources |
Configurações e outros recursos |
src/main/resources/public |
Web assets como imagens, javascript e arquivos css |
src/test |
Pasta raiz para código de teste |
scripts |
Pasta com scripts para deploy usando o Vagrant |
github |
Pasta raiz para configurações do GitHub |
.github/workflows |
GitHub Ações configuração |