Estamos muito felizes que você tenha chegado nessa etapa do nosso processo seletivo! Agora queremos conhecer um pouco do seu código, para isso propomos um desafio.
Você deve desenvolver um app em React Native (usando Expo), que mostre uma listagem de eventos escolares fornecidas pela API, seguindo as especificações de layout do projeto.
A lista de eventos deve ser organizada por data de acordo com a especificação da tela, ordenada pelas atividades mais recentes e com paginação (modelo de paginação definido na documentação da api).
Ao clicar em um evento da lista, mostrar a tela de detalhes do evento como mostra a especificação da tela.
O app deve conter também uma tela de login para controle de acesso como mostra a especificação da tela.
- Deve ser em React Native
- Sinta-se avontade para usar qualquer framework de controle de estado desejado
- Necessário o uso de rotas
- Utilizar Styled Components
- Publicar usando o Expo
- Testes unitários. Pode utilizar qualquer framework de teste, e.g: Jest ou Mocha.js.
- Montar uma estrutura de CI para rodar testes e automatiazar deploy (Ex: CircleCI)
Esses requisitos não são obrigatórios, mas serão levados em consideração como pontos extras no momento da avaliação.
- Implementar uma busca server-side dos eventos na listagem (a request de pesquisa deve ser disparada utilizando o processo de controle de fluxo Debounce com um limite de tempo de 500ms)
- Relatório de performance (e. g: Lighthouse)
- Realizar o tratamento de falha nas requests da api (Ex: Senha incorreta) com feedback para o usuário
- Boa qualidade de UI/UX seguindo os requisitos fornecidos AQUI
- Organização do projeto: Avalia a estrutura do projeto, documentação e uso de controle de versão;
- Inovação tecnológica: Avalia o uso de tecnologias mais recentes, desde que estáveis;
- Coerência: Avalia se os requisitos foram atendidos;
- Boas práticas: Avalia se o projeto segue boas práticas de desenvolvimento, incluindo segurança e otimização;
- Controle de Qualidade: Avalia se o projeto possui qualidade assegurada por testes automatizados (por exemplo Jest ou Mocha.js).
O desafio deve ser entregue pelo GitHub. A aplicação deve estar hospedada no Expo com um QRCode para avaliação. As URLs devem ser enviadas por email.
Qualquer dúvida em relação ao desafio, responderemos por e-mail.
Bom trabalho!