GithubHelp home page GithubHelp logo

desafio-node.js's Introduction

Desafio para desenvolvedor back-end

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.

Qual perfil procuramos?

  • 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.

Instruções para o desafio

  • 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.

Desafio

  • 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:

  1. 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).
  2. 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.

Escopo do desafio

  • 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 que será avaliado

  • 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.

Diferenciais

  • 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

desafio-node.js's People

Contributors

gabriel-leadbase avatar

Stargazers

Roman avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.