Bem-vindo(a) ao nosso desafio de código para desenvolvedores juniores! Se você é apaixonado(a) por tecnologia, tem sede por aprendizado e busca uma oportunidade para se desenvolver profissionalmente em uma empresa de delivery em rápido crescimento, este desafio é para você.
Nós estamos em busca de um Desenvolvedor Júnior talentoso e apaixonado para integrar nossa equipe. Como parte do processo seletivo, gostaríamos de propor o seguinte desafio:
Desenvolva uma aplicação de catálogo de produtos, utilizando as seguintes funcionalidades:
-
Login e Cadastro: Antes de ter acesso ao sistema, o usuário precisará se registrar na plataforma ou fazer login em sua conta previamente criada (O cadastro pode ser o mais simples possivel: Nome, email e senha).
-
Catálogo de Produtos: Exiba uma lista de produtos com seus respectivos detalhes, incluindo nome, preço e imagem.
-
Filtragem por Categoria: Implementa a capacidade de filtrar os produtos com base em suas categorias. Os usuários devem poder selecionar uma categoria específica e visualizar apenas os produtos correspondentes a essa categoria.
-
Busca por Nome do Produto: Permita que os usuários pesquisem produtos pelo seu nome. Ao digitar no campo de busca, a lista de produtos deve ser atualizada dinamicamente para mostrar apenas os produtos que correspondem à consulta realizada.
-
Adicionar e Remover Produtos: Implemente a funcionalidade de adicionar e remover produtos de um carrinho de compras. Os usuários devem poder adicionar produtos ao carrinho e visualizar a lista de produtos adicionados. Também deve ser possível remover produtos individualmente do carrinho.
-
Finalizar Checkout: Crie um fluxo de finalização do checkout, onde os usuários possam revisar os produtos selecionados, inserir informações de pagamento e concluir a compra simulada.
Requisitos:
- Utilize tecnologias como React, Redux e Firebase.
- Priorize o uso do Typescript.
- Siga as melhores práticas de desenvolvimento, incluindo organização de código, modularidade e responsividade.
- Entregue o desafio em um repositório (monorepo) no GitHub, com instruções claras para executar a aplicação localmente.
- O backend tem que ser feito em Nestjs e Prisma.
Diferencial:
- Uso de design patterns
- Criação de Testes automatizados
- Novas features
- Login com google (rede social).
Ao completar o desafio, avaliamos a qualidade do código, a implementação correta das funcionalidades solicitadas (O requisitos em "Diferencial" não será motivo de eliminação) e a capacidade de seguir as melhores práticas de desenvolvimento.
Estamos ansiosos para ver o seu trabalho e avaliar o seu potencial como Desenvolvedor Júnior em nossa equipe! Boa sorte!