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.
- Por fim, empurre todas as suas alterações para o seu fork no Github e envie um pull request para este repositório original. Se você já entrou em contato com alguém da gaveteiro sobre uma vaga, avise também essa pessoa por email, incluindo no email o seu usuário no Github.
- Faça um clone deste repositório.
- Em seguida, implemente o projeto tal qual descrito abaixo, em seu clone local.
- Por fim, envie via email um arquivo patch para seu contato na Gaveteiro.
Considerando que você tem acesso a API de Filmes/Séries TheMovieDatabase API, precisamos criar uma maneira de importar o catálogo de novos filmes com seus gêneros para um banco de dados, para "economizarmos" acesso a API do TheMovieDatabase. (nota: sempre que possível, usar o parâmetro language=pt-BR para importar os dados em português)
Com os filmes e gêneros importados, sua tarefa, agora, é criar uma interface web para listar os filmes que estão na base de dados e com a possibilidade de filtro por tipos de gênero.
Sua aplicação DEVE:
- Listar todos os filmes, de forma páginada, permitindo aplicação de filtro por gênero(s);
- Importar manualmento os dados da API através de script Rake;
- Ser escrita obrigatoriamente em Ruby 2.5+, usando o framework Rails 5.2+, banco de dados Postgres;
- Ser simples de configurar e rodar, funcionando em ambiente compatível com Unix (Linux ou Mac OS X). Ela deve utilizar apenas linguagens e bibliotecas livres e/ou gratuitas;
- Ter uma aparência bonita e responsiva;
Sua aplicação web NÃO precisa:
- Lidar com autenticação ou autorização (pontos extras se ela fizer, mais pontos extras ainda se a autenticação for feita via OAuth2);
- Ter interface admin [activeadmin] (pontos extrar se fizer, mais pontos extra se tiver a opção para atualização do catalogo de filmes manualmente);
Seu projeto será avaliado de acordo com os seguintes critérios.
- Sua aplicação preenche os requerimentos?
- Você documentou a maneira de configurar o ambiente e rodar sua aplicação?
- Você seguiu as instruções de envio do desafio?
- Nível de qualidade e cobertura dos testes unitários.
Adicionalmente, tentaremos verificar a sua familiarização com as bibliotecas padrões (standard libs), bem como sua experiência com programação orientada a objetos a partir da estrutura do seu projeto.