You can read this challenge in English here: https://github.com/ZXVentures/ze-code-challenges/blob/master/frontend-mobile.md
Nós usamos GraphQL aqui (dê uma olhada em https://www.graphql.com/guides/), então essa será a forma que você receberá os dados (bem legal né?).
É simples. O usuário precisa escrever o seu endereço dentro de um campo e ser redirecionado para a página de listagem de produtos. O seu trabalho como frontend é desenvolver 2 telas simples consumindo e enviando dados para nossa API.
Temos um exemplo desse fluxo aqui: https://ze.delivery/ (nosso ambiente de produção)
Nós queremos que você se sinta livre para desenvolver o modelo do jeito que você quiser, nós não temos wireframes ou algo do tipo para essa tarefa. Você irá criar duas telas:
- Página Home:
- Precisa ter um cabeçalho, um rodapé e um input para o usuário preencher seu endereço
- Página Products:
- Nós queremos ver os produtos em cards, com o título do produto, preço e botões para adicionar e remover o produto.
O link da API que você irá utilizar: https://frontend-code-challenge-api.ze.delivery/graphql (Se você abrir isso em um navegador irá aparecer "Missing Authentication Token", você precisa utilizar no código)
- Página Home:
- Para encontrar a latitude e longitude do endereço, você pode utilizar a API do Google Maps ou utilizar qualquer outra API de Geocoder que você quiser.
- Utilize o seguinte endereço para encontrar o distribuidor (PoC): Rua Américo Brasiliense, São Paulo.
- A Query necessária para obter o distribuidor correto (obtém o primeiro distribuidor):
- Query
- Argumentos:
- pocSearchLat: Envie como String.
- pocSearchLong: Envie como String.
- Página Products:
- Você precisa criar um repositório no GitHub para hospedar seu código
- Usuários do Github:
- @ze-engineering-code-challenge
- Usuários do Github:
- Evite usar scaffolds (Create React App etc.), nós queremos ver como você cria a estrutura do projeto
- Mantenha simples, não há necessidade de coisas extravagantes :)
- TESTES 💛 Nós realmente amamos testar nosso código e suas características aqui!
- Você não deve usar Framework CSS (Bootstrap, Tailwind, Bulma, PureCSS etc.)
- React é um plus, mas você pode usar o que quiser =)
- Quero ser capaz de executar o projeto localmente usando
npm start
- Você deve usar React Native para desenvolver sua aplicação
- Quero ser capaz de executar o projeto com um único comando
- Hospedá-lo é um GRANDE plus (Expo deve fazer o trabalho para você)
Seu código estará sob análise do time de Engenharia do Zé. O que vamos procurar:
- Boas práticas e padrões
- Código e estrutura de pastas
- Componentização e fluxo de dados
- Código fácil de entender (novamente, não precisa de coisas extravagantes)
- TESTES
Sinta-se à vontade para implementar da maneira que você se sentir mais confortável :)
Por favor, utilize o Github para hospedar seu código e adicione @ze-engineering-code-challenge como um colaborador do repositório. Essa conta do Github (@ze-engineering-code-challenge) é usado exclusivamente pelo time de Engenharia do Zé para baixar o seu código e revisá-lo
Depois de terminar o desafio, siga estas instruções.