O projeto realiza a leitura de um CSV na localidade infomada abaixo e salva os dados em um banco H2 ao realizar o start. Após isso temos um endpoint também mencionado abaixo que realiza a busca dos produtores com menor e maior intervalo de premiação consecutivos, exibindo então o intervalo, nome do produtor, data da primeira premiação e a data da última premiação.
Exemplo do retorno do projeto.
Antes de começar, verifique se você atendeu aos seguintes requisitos:
- Você instalou a versão 17 do java
- Você instalou o git
Para instalar o projeto basta realizar o clone:
git clone https://github.com/lmoreira256/golden-raspberry-awards-analytics.git
E realizar a importação do projeto na sua IDE de preferência;
Para utilizar o projeto contem na pasta o arquivo src > main > resource > data > movielist.csv que pode ser alterado.
E então realizar o start do projeto na sua IDE, após isso o projeto está pronto para ser utilizado realizando a seguinte chamada cURL:
curl --location 'http://localhost:8080/awards/intervals'
Caso queira, também é possível acessar o banco de dados H2 utilizando o link:
localhost:8080/h2-console/
E utilizar as seguintes informações:
JDBC URL: jdbc:h2:mem:golden_raspberry_awards_db
User Name: golden_raspberry_awards
Password: golden_raspberry_awards
O projeto também conta com testes de integração completos:
Para realizar o desenvolvimento do projeto foi realizado algumas consultas, segue link dos mesmos:
- Utilização do banco H2
- Utilização do Many-to-Many na teoria
- Utilização do Many-to-Many na prática
- Verificação das indicações dos filmes
- Verificação dos produtores dos filmes indicados
- Uso da função LEAD no banco de dados
Para contribuir com o projeto, siga estas etapas:
- Bifurque este repositório.
- Crie um branch:
git checkout -b <nome_branch>
. - Faça suas alterações e confirme-as:
git commit -m '<mensagem_commit>'
- Envie para o branch original:
git push origin <nome_do_projeto> / <local>
- Crie a solicitação de pull.
Como alternativa, consulte a documentação do GitHub em como criar uma solicitação pull