Para construir e executar a aplicação, são necessários:
- Java 11 com JAVA_HOME configurada
- docker
- docker-compose
- Sistema Linux
O desenvolvimento foi desenvolvido e testado com:
- Linux Mint 19.3 Tricia
- OpenJDK 11.0.5
- Docker 19.03.5
- docker-compose 1.25.3
Para a execução do projeto, são necessários três containers:
- MySQL
- Back-end
- Front-end
Na raiz do projeto já existem dois scripts (bash/Linux) para a construção e execução do projeto:
-
build.sh
Esse é responsável por gerar as imagens do back-end e front-end, incluindo a compilação e geração de pacotes.
-
run.sh
Apenas executa a aplicação toda, com os três containers, via docker-compose
Talvez seja necessário dar permissão de execução aos scripts:
chmod +x *.sh
Ao executar o scrit run.sh
, pode levar algum tempo até que o back-end esteja pronto, já que
ele depende do MySQL estar pronto.
Quando todos os containers estiverem rodando, basta acessar http://localhost:8080
Foi utilizado o Flyway para criação das tabelas no banco de dados, apesar de saber que poderia ter sido feito sem esta ferramenta, além de ser um bom padrão em muitas aplicações, já estou habituado com seu uso.
Também foi usado o BootstrapVue para componentes no front-end.
Poderia ter alguma validação nos formulários, mas não era o foco aqui, e melhor componentização no front-end. Também apenas um modelo de teste está implementado, servindo de referência, mas não completo.