Esse é o nosso desafio para a vaga de desenvolvedor back-end. Serão testadas as habilidades e qualidade de código ao transformar requisitos limitados em uma API Rest.
Procuramos um desenvolvedor versátil para resolver os mais diversos problemas, que impactam tanto nos processos internos como nos negocios dos nossos clientes, utilizando conhecimento em tecnologias front-end como meio para isso. Sinta-se confortável com ambas responsabilidades e seja engajado com o que há de melhor no mercado e boas práticas para trabalhar com inovação, tecnologias modernas e emergentes.
- Perfil proativo, saber trabalhar em equipe , raciocínio lógico, responsabilidade e comprometimento são imprescindíveis para essa oportunidade;
- Fácil adaptação em projetos experimentais e complexos;
- Aprendizado rápido no uso de tecnologias de desenvolvimento de software;
- Experiência em Desenvolvimento de software Web.
- Fork esse repositório e faça o desafio numa branch com o seu nome (exemplo:
nome-sobrenome
); - Assim que concluir o seu desafio, abra um pull request com suas alterações.
- Montar um projeto em Node.js, com a função de fazer Autenticação e autorização de usuários.
A seguir vou descrever a história de usuário da funcionalidade:
O processo se dá onde um usuário pode enviar seu CPF e uma senha para a API e realizar login na plataforma, recebendo assim um token de acesso contendo seus dados e sua role e suas permissões, feito login, existem dois casos:
- se ele for administrador ele pode usar seu token para acessar uma rota para remover uma permissão (enviando o nome dessa permissão) ou adicionar uma permissão (enviando o nome dessa permissão).
- se ele for vendedor não terá acesso a nenhuma rota.
Lembre de documentar as rotas no Postman e adicionar o export JSON ao projeto. Fique livre para montar token de acesso com o recurso/criptografia que desejar.
- Documentar todas suposições realizadas;
- O desenvolvimento do back-end deve ser em Node.js;
- Não é necessário submeter uma aplicação que cumpra cada um dos requisitos descritos, mas o que for submetido deve funcionar;
- Informar em um arquivo INSTRUCOES.md o passo a passo necessário para rodar o projeto juntamente com o descritivo das funcionalidades que foram atentidas no desafio.
- O código será avaliado seguindo os seguintes critérios: manutenabilidade, clareza e limpeza de código; resultado funcional; entre outros fatores;
- O histórico no
git
também será avaliado; - Não esqueça de documentar o processo necessário para rodar a aplicação;
- Se necessário explique as decisões técnicas tomadas, as escolhas por bibliotecas e ferrramentas, o uso de patterns etc.
- Tratamento de erros
- Docker
- Boa documentação de código;
- Testes do código.
Em caso de dúvidas, envie um email para [email protected].
Até breve