Esta avaliação tem por objetivo avaliar sua capacidade de desenvolver um sistema do zero, utilizando um conjunto de tecnologias pré-definidas.
Você implementará o sistema CATÁLOGO DE LEITE.
Nesse sistema, o usuário pode buscar os produtos informando:
- o início do código do produto ou
- parte do nome do produto
Após a busca, o sistema apresenta em uma tabela todos os produtos que atenderam ao filtro. Essa tabela deve exibir 10 itens por página.
Dentro da tabela, deve haver uma coluna com um botão para a exclusão daquele item.
O usuário também pode cadastrar um novo produto, informando o código e o nome. Para o cadastro, é essencial garantir que o código do produto é único.
Toda vez que um cadastro é concluído com sucesso, a tabela de resultado da busca deve ser atualizada.
Abaixo, temos um mock desse sistema e um vídeo explicando como funciona a interação do usuário com o sistema.
Vídeo explicativo: https://share.vidyard.com/watch/4kqLwuEqbA4QcB7Bnud3wP
O sistema deve ser um website com uma API REST.
O frontend deve ser implementado em Angular 11 ou superior.
A API REST (backend) deve ser implementado em Kotlin ou Java, utilizando Spring Boot 2.4.2 ou superior.
O sistema deverá se conectar a um banco de dados PostgreSQL, cujas configurações de acesso foram enviadas em seu email.
Segue abaixo uma lista de requisitos extra do sistema. Eles são pontos que, apesar de serem extras, tem grande importância na avaliação.
- Implementar a ordenação na tabela. O usuário pode escolher a ordenação clicando no cabeçalho da tabela
- Permitir que o usuário edite a descrição de um produto
- Criar um conjunto de testes de controller (3 casos de teste) utilizando MockMVC
- Criar Dockerfile para construir a imagem do servidor e adicionar as instruções de build e run deste Dockerfile no README
Para a implementação do sistema, crie um fork desse repositório e adicione todo o código nesse fork. Ao fim, gere um PR neste repositório com o título fullstack_web - <nome completo>
para que seja avaliado.
Além do funcionamento do sistema, será avaliada a organização do código, comentários e a identidade visual do sistema.
- Adicionar o endereço base da API no arquivo environment.ts na pasta environments
ng serve
docker build -t catalogodeleiteapp .
docker run -it -e PORT=<PORTA_COTAINER> -p <PORTA_HOST>:<PORTA_CONTAINER> catalogodeleiteapp
- Preencher as informações no arquivo application.yml, na pasta resources
- Dados de conexão com o banco de dados PostgreSQL
- Em qual porta executar
- Adicionar o endereço do frontend à annotation @CrossOrigin.
- Executar o arquivo gradlew com a tarefa (Task) desejada
./gradlew bootRun
./gradlew bootJar
./gradlew bootBuildImage
ou
docker build -t catalogodeleite .
docker run -it -e PORT=<PORTA_COTAINER> -p <PORTA_HOST>:<PORTA_CONTAINER> catalogodeleite