/delliv-coding-challenge-fullstack-junior

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

Delliv Fullstack Junior Coding Challenge

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:

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

  2. Catálogo de Produtos: Exiba uma lista de produtos com seus respectivos detalhes, incluindo nome, preço e imagem.

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

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

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

  6. 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!