Estes documento README tem como objetivo fornecer as informações necessárias para realização do projeto de avaliação de candidatos.
- Você deve realizar um fork deste repositório e, ao finalizar, enviar o link do seu repositório para a nossa equipe. Lembre-se, NÃO é necessário criar um Pull Request para isso, nós iremos avaliar e retornar por email o resultado do seu teste.
- A API deverá ser construída em NodeJS ou Rails
- Implementar autenticação e deverá seguir o padrão JWT, lembrando que o token a ser recebido deverá ser no formato Bearer
- Caso seja desenvolvida em NodeJS o seu projeto terá que ser implementado em ExpressJS ou SailsJS
- Para a comunicação com o banco de dados utilize algum ORM/ODM
- Bancos relacionais permitidos:
- MySQL
- MariaDB
- Postgre
- Bancos não relacionais permitidos:
- MongoDB
- Sua API deverá seguir os padrões Rest na construção das rotas e retornos
- Sua API deverá conter a collection/variáveis do postman ou algum endpoint da documentação em openapi para a realização do teste
- É desejável que o teste esteja na liguagem JavaScript buscando avaliar o entendimento completo da linguagem e não de estruturas ou dependências que abstraiam determinadas definições não alheias ao ECMAScript. No entanto, testes realizados em TypeScript também serão aceitos.
- Estrutura do Projeto
- Segurança da API, como autenticação, senhas salvas no banco, SQL Injection e outros
- Boas práticas da Linguagem/Framework
- Seu projeto deverá seguir tudo o que foi exigido na seção O que desenvolver?
- Migrations para a criação das tabelas do banco relacional
Esses itens não são obrigatórios, porém desejados.
- Testes unitários
- Linter
- Code Formater
Obs.: Lembrando que o uso de algum linter ou code formater irá depender da linguagem que sua API for criada
Você deverá criar uma API que o site IMDb irá consultar para exibir seu conteúdo, sua API deve conter as seguintes features:
-
Admin
- Cadastro
- Edição
- Exclusão lógica (Desativação)
-
Usuário
- Cadastro
- Edição
- Exclusão lógica (Desativação)
-
Filmes
- Cadastro (Somente um usuário administrador poderá realizar esse cadastro)
- Voto (A contagem dos votos será feita por usuário de 0-4 que indica quanto o usuário gostou do filme)
- Listagem (deverá ter filtro por diretor, nome, gênero e/ou atores)
- Detalhe do filme trazendo todas as informações sobre o filme, inclusive a média dos votos
Obs.: Apenas os usuários poderão votar nos filmes e a API deverá validar quem é o usuário que está acessando, ou seja, se é admin ou não
-
Documentação JWT https://jwt.io/
-
Frameworks NodeJS:
-
Guideline rails http://guides.rubyonrails.org/index.html