eWally - Teste Técnico
Requisitos
Setup
- Clone o repositório git
- Navegue até a pasta do mesmo via linha de comando
- Execute o comando
npm install
Execução local
- Na linha de comando, navegue até a pasta do projeto
- Execute o comando
npm start
Testes
- Na linha de comando, navegue até a pasta do projeto
- Execute o comando
npm test
Notas
Pontos de melhora
- A validação no formulário de login é bem básica - só é verificado se houve ou não falha, mas não é filtrado o tipo de erro para informar a pessoa qual a melhor forma de proceder
- O aviso de erro dentro do extrato em si é extremamente básico (e num mundo ideal, num deveria acontecer) e não fornece informações suficientes de como proceder.
- Pro número de módulos e número de formatos de tela, o ideal é que houvesse uma bateria de testes de integração
- Revisar quais bibliotecas poderiam ser excluídas em prol de implementações mais enxutas
- Adicionar animações e transições mais suaves para os elementos que são carregados e expandidos
- Migrar para GraphQL permitiria fazer menos requests ao servidor, agilizando o processo (isso depende de mudanças no backend) e facilitando a obtenção de informações
- Se houver um problema na obtenção do extrato e do saldo, os componentes de loading permanecem. Sua lógica precisaria ser levemente refatorada.
- Uma das maiores vantagens de user styled-components é o reuso, a criação de componentes base. Vários elementos poderiam ser ajustados e refatorados nesse sentido.
Sugestões ao teste
- Tornar o link da API da Ewally clicável no pdf do exercício
- Ter um teste completo para referência (não precisa ser "Golden Standard"), para garantir que o desafio é passível de completação (vide erro na documentação de API)
- O escopo está bem abrangente, visto que existem várias considerações de UX que não necessariamente estão documentadas. Por exemplo: Existe tempo de expiração do token? Se sim, qual o comportamento esperado? Se não há um comportamento esperado, pode-se analisar o que a pessoa optou por fazer. Algo que pode ajudar a reduzir o escopo é descrever mais as interações desejadas ou delimitar o que será analisado. Claro - se o objetivo é obser as soluções de UX que a pessoa vai propor, o formato atual é bom. Acredito só que poderia ser um pouco mais enxuto.
- O teste, atualmente, pode ser entregue via e-mail ou Git. Eu recomendaria fazer exclusivamente via Git, porque assim é possível olhar para os commits e a evolução do projeto.
Pontos interessantes de observar com candidatos
- Por que optou por essa estrutura de projeto?
- Usou classes ou hooks? Por que?
- Como lidou com os formatos de data? Usou lib? Se sim, qual e por que?
- Quais melhorias faria, com mais tempo para o projeto?
- O que sentiu falta no briefing do projeto?
- Que pontos achou mais difícil? Por que?