O Focus Concursos é uma empresa que oferece cursos online preparatórios para concurso público.
- Faça um fork deste repositório;
- Implemente os items descritos na próxima seção;
- Faça um pull request para este repositório;
O teste consiste em gerar uma API que tenha os recursos de CRUD de produto e realize o cálculo de frete, usando serviço dos Correios, entre 02 CEP's. Utilize sqlite como banco de dados para o teste. Relação de tarefas para executar o teste:
- Criar migrations e seeders para a tabela produto;
- Criar comando no composer.json que permita executar refresh e seeder no banco;
- Cadastrar produto com os seguintes dados:
- nome do produto;
- sku;
- peso;
- altura;
- largura;
- profundidade;
- valor;
- Criar validador;
- Consultar produto por nome ou id. A consulta deve retornar apenas nome, id, sku e valor, em formato JSON ou XML;
- Editar os dados de um produto;
- Excluir um produto;
- Consultar o valor de frete entre 02 CEP's para um produto, em quantidade N, usando serviço dos Correios;
- Enviar uma notificação por email ao cadastrar um produto. O email pode ser enviado para o mailtrap;
- Escrever testes;
- Utilizar linguagem PHP;
- Utilizar o framework Laravel;
- Utilizar repository pattern;
- Implementar classes de serviços para chamar as classes de regras de negócio;
- Utilizar uma camada de apresentação/transformação de dados;
- Utilize interface para a classe de cálculo de frete;
- Utilize o service container para resolver a classe que implementa a interface de cáculo de frete, e registre num service provider chamado ApplicationServiceProvider.
- Não é permitido utilizar pacotes além dos que fazem parte da instalação padrão do Laravel;
- Conhecimento da linguagem;
- Conhecimento do framework;
- Qualidade do código;
- Abordagem para solução do teste;
- Conhecimento de orientação a objetos;
- Conhecimento de design patterns;
- Conhecimento de conceitos do SOLID;
- Conhecimento sobre API REST;