Bem vindos ao desafio guararapes, nessa fase precisamos validar seus conhecimentos em nossa Stack, leia toda a documentação abaixo para realizar.
O candidato podem criar os serviços utilizando os esqueletos fornecidos, mas caso queiram criar projetos do zero podem ficar a vontade, todas as ferramentas citadas abaixo estão inclusas nos esqueletos. Não é preciso fazer um fork desse projeto, porém favor entregar um projeto fechado na gitlab (para que outros candidatos não vizualizem a sua solução).
- Java 11
- Javascript / NodeJS ECMA 6+
- Typescript 3+
- Python 3.8
- Spring JPA
- Spring Batch
- Spring Web
- Spring Fox
- Lombok
- Liquid Base
- JPA H2 Database
- JPA Postgres Database
- drf-yasg - Swagger para Django
- Angular Material - Lib de estilização de interfaces
Escolha a sua tecnologia, Java + Spring Boot ou Python + Django
- Crie uma api restful que contenha um crud de materiais, cada material pode se relacionar com outros materiais, formando uma arvore, porém é importante de observar que os materiais da raiz (aqueles que não tem pais) são considerados produtos finais (camisas, calças, vestidos, etc) e os materiais "filhos" são sempre materias primas (tecido, linha, tinta, etc)
- Crie tambem um crud de criação de ordems de produção, que podem ser criadas a partir de um produto final caso todas as suas matérias primas possuam estoque
Crie um frontend em SPA para listar os materiais considerados produtos finais (camisas, calças, vestidos, etc), nessa listagem deve haver um botão de liberar ordem de produção, porém esse botão só deve funcionar no caso em que o produto possua todas as suas matérias primas em estoque.
- Pode ser usado H2, Sqlite ou postgres
- Siga o modelo de hiperlink da api original
- Documente suas API's (pode ser OpenApi + Swagger)
Esses criterios não são obrigatorios porém são considerados bonus:
- Use swagger com spring fox (a documentação das apis podem ser via swagger)
- Use postgres
- Crie migrations com liquidbase
- Crie testes unitários ou de integração (sabe dizer a diferença?)
- Dockerize as aplicações