A ideia deste desafio é nos permitir avaliar melhor as habilidades de candidatos à vagas de programador, de vários níveis. Este desafio deve ser feito por você em sua casa. Gaste o tempo que você quiser, porém normalmente você não deve precisar de mais do que algumas horas.
- Primeiro, faça um fork deste projeto para sua conta no GitHub (crie uma se você não possuir).
- Em seguida, implemente o projeto tal qual descrito abaixo, em seu próprio fork.
- Crie as instruções de instalação e execução do aplicativo em seu
readme.md
. - Por fim, envie o link do seu repositório para avaliarmos seu código.
- Primeira Etapa:
- Faça todos os testes passarem (Projeto Krooze.EntranceTest.Tests), ou a maioria deles, caso seu nível seja Júnior
- Seu código deve ser escrito no projeto Krooze.EntranceTest.WriteHere, ou referenciado a partir dele
- O projeto Krooze.EntranceTest.WriteHere pode ser alterado à vontade
- A descrição do que fazer está no "TODO" de cada método
- Podem-se criar novos projetos na Solution, caso o dev ache necessário
- Segunda Etapa:
- Crie um endpoint pra cada método feito nos testes da primeira etapa, no projeto Krooze.EntranceTest.Web, no total 7 endpoints
- Organize os Endpoints como achar melhor
- Deixe todos os endpoints disponíveis documentados em seu readme.md
- O projeto Krooze.EntranceTest.Web pode ser completamente alterado, da maneira que o dev achar melhor
- Podem-se criar novos projetos na Solution, caso o dev ache necessário
- Utilizar o máximo possível das bibliotecas padrão
- Utilizar pacotes do nuget, caso o item anterior não seja possível
- Não deve importar pacotes de auxílio do swapi.co.
- O projeto Projeto Krooze.EntranceTest.Tests não deve ser alterado, caso tenha alguma dúvida, ou ache que algum teste está falhando injustamente, abra uma issue após apresentar suas soluções
Seu projeto será avaliado de acordo com os seguintes critérios:
- Sua aplicação atende funcionalmente o que foi pedido;
- Você seguiu as instruções enviadas;
- Você segue as boas práticas de programação;
- O código escrito é fácil de entender e manter;