Teste Prático Dev (Back-End Java)
-------------------------------------------------------------------------------------------------------------------------------------------------------
Vaga
Pessoa Desenvolvedora Backend JAVA
Objetivo
Testar os conhecimentos técnicos na prática.
Projeto
Construa uma API REST em Java para controle de cadastro de profissionais e seus números de
contato.
Schema do banco de dados
Tabela contatos
● Campos
○ nome: Varchar
■ Ex.: fixo casa, celular, escritório
○ contato: Varchar
○ created_date: Date
○ profissional
■ Chave estrangeira com a tabela profissional
Tabela profissionais
● Campos
○ nome: Varchar
○ cargo: Varchar
■ Valores possíveis
● Desenvolvedor
● Designer
● Suporte
● Tester
○ nascimento: Date
○ created_date: Date
Mapeamentos
A tabela de contatos deve possuir um mapeamento N para 1 com a tabela profissionais.
contatos N -> 1 profissionais
Endpoints
Contacts
● GET /contatos
○ Response
■ Lista de contatos com base nos critérios definidos em Params
○ Params
■ q - String
● Filtro para buscar contatos que contenham o texto em qualquer um de
seus atributos
■ fields - List<String>
● Opcional
● Quando presente apenas os campos listados em fields deverão ser
retornados
● GET /contatos/:id
○ Response
■ Todos os dados do contato que possui o ID passado na URL
● POST /contatos
○ Insere no banco de dados os dados do contato enviados via body
○ Body
■ Content-type: Json
○ Response
■ Sucesso contato com id {ID} cadastrado
● PUT /contatos/:id
○ Atualiza os dados do contato que possui o ID passado via URL com os dados enviados
no Body
○ Body
■ Content-type: Json
○ Response
■ Sucesso cadastrado alterado
● DELETE /contatos/:id
○ Response
■ Sucesso contato excluído
Profissionais
● GET /profissionais
○ Response
■ Lista de profissionais com base nos critérios definidos em Params
○ Params
■ q - String
● Filtro para buscar profissionais que contenham o texto em qualquer um
de seus atributos
■ fields - List<String>
● Opcional
● Quando presente apenas os campos listados em fields deverão ser
retornados
● GET /profissionais/:id
○ Response
■ Todos os dados do profissional que possui o ID passado na URL
● POST /profissionais
○ Insere no banco de dados os dados do profissional enviados via body
○ Body
■ Content-type: Json
○ Response
■ Sucesso profissional com id {ID} cadastrado
● PUT /profissionais/:id
○ Atualiza os dados do profissional que possui o ID passado via URL com os dados
enviados no Body
○ Body
■ Content-type: Json
○ Response
■ Sucesso cadastrado alterado
● DELETE /profissionais/:id
○ Importante!
■ Este método deve realizar uma exclusão lógica do registro
○ Response
■ Sucesso contato excluído
Tecnologias e boas práticas
Tecnologias Obrigatórias
● Frameworks Play Framework ou SpringBoot
● Banco de dados PostgreSQL
Tecnologias Desejáveis
● Hibernate
● JUnit
● Swagger
● Lombok
● Docker
Boas práticas consideradas
As boas práticas listadas abaixo não são requisitos para a entrega do projeto, mas serão consideradas
para entender melhor seu grau de domínio no desenvolvimento de projetos Java.
● ReadMe
● JavaDoc
● Código Limpo
● Testes Unitários
● Padrões de projeto (MVC, Singleton, Service, Factory…)
Prazo de entrega
Dia 28/08, quarta-feira até às 18h.
Enviar link do teste finalizado para Grazi no whats.
Contatos em caso de dúvidas
Graziela Pereira (Analista de recrutamento e seleção): https://wa.me/5548999500174