Este desafio tem como objetivo avaliar as habilidades técnicas do candidato a vaga de desenvolvedor fullstack no Clubpetro.
O desafio consiste em desenvolver um sistema que permita o CRUD de lugares para se conhecer ao redor do mundo. Como na imagem a seguir:
Desenvolvimento da API para alimentar o frontend.
Os dados a ser considerados são:
- País: O país escolhido;
- Local: O local dentro do país escolhido;
- Meta: O mês e o ano que o usuário pretende visitar o local;
- Url da bandeira do país;
- Data de criação do registro;
- Data de atualização do registro.
Requisitos que serão avaliados no desafio.
- A API deverá ser desenvolvida com Node.js e Express;
- Apenas o Local e a Meta poderão ser editados;
- O mesmo local em determinado país não poderá ser adicionado de forma duplicada;
- A listagem dos dados deverá ser ordenada de forma crescente pela meta;
- O candidato deverá adicionar ao projeto uma explicação de como executar a aplicação.
Requisitos que não são obrigatórios mas podem te deixar em vantagem com relação aos outros candidatos.
- Utilização do framework NestJS;
- Typescript;
- Testes automatizados;
- TypeORM;
- Docker;
- Deploy para Google Cloud Platform (ao criar conta é possível receber um bonus para teste).
O Sistema deverá conter um formulário com 3 campos:
- País: um select contendo a lista de todos os países existentes;
- Local: um input para que o usuário digite o local que ele deseja conhecer no país selecionado;
- Meta: um input para que o usuário digite a o mês e o ano que ele pretende visitar o local em questão.
Quando o usuário clicar em "Adicionar", o formulário deverá ser resetado e os dados deverão ser submetidos para a API. Em seguida, a listagem dos cards deverá ser atualizada.
Requisitos que serão avaliados no frontend.
- O Sistema deverá ser desenvolvido em typescript utilizando a biblioteca React;
- O Layout apresentado na imagem acima deverá ser fielmente seguido e pode ser encontrado no Figma;
- Integração com o Backend;
- Apenas o Local e Meta poderão ser editados e a edição do card deverá ser feita de acordo com a criatividade do canditado, não tendo um layout específico para esta ação;
- O Sistema deverá ser desenvolvido utilizando React Hooks;
- O Sistema deverá ser integrado à API Rest Countries para a listagem dos países. Esta conta com a imagem da bandeira e a tradução do nome do país para Português;
- A biblioteca react-input-mask deverá ser utilizada para colocar uma mascara no input de "Meta" no formato mm/aaaa;
- O Sistema deverá ser responsivo;
- O candidato deverá adicionar ao projeto uma explicação de como executar a aplicação.
Requisitos que não são obrigatórios mas podem te deixar em vantagem com relação aos outros candidatos.
- Material-UI;
- Styled Components;
- Testes automatizados.
- O canditado deverá realizar um fork deste repositório e submeter o código no mesmo;
- Em caso do deploy realizado, a url deverá ser adicionada no README;
- O prazo de entrega para este desafio é de 2 (duas) semanas, contando a partir do dia em que o candidato recebeu o email com o link do repositório;
- Ao finalizar o desafio, o candidato deverá submeter o desafio no questionário disponível na sua área de candidato na plataforma(https://menvievagas.com.br/vagas/fam%C3%8Dliapires/) do Processo Seletivo. É só clicar em RESPONDER no questionário e inserir o link do seu PR. Em caso de dúvidas, enviar um e-mail para [email protected]