Este é um projeto de teste para o processo seletivo de desenvolvedor full stack da Khiza. Para saber mais sobre a empresa, acesse nosso site.
Desenvolva uma aplicação full stack para gerenciar e visualizar dados de coleções de NFTs. A aplicação deve incluir um backend para processar e armazenar dados da API da Reservoir, e um frontend para exibir e interagir com esses dados.
Você terá até 2 dias para completar o projeto. Organize seu tempo de forma eficiente e priorize as funcionalidades mais importantes.
-
Implemente endpoints para:
- Cadastrar coleções de NFTs para monitoramento
- Sincronizar dados das coleções cadastradas com a API da Reservoir
- Recuperar dados de coleções específicas
-
Utilize um banco de dados para armazenar os dados das coleções.
-
Projete uma arquitetura manutenível, utilizando design patterns apropriados (por exemplo, MVC, Repository, Factory).
-
Desenvolva uma interface de usuário responsiva utilizando um framework moderno (por exemplo, React, Vue.js, ou Angular).
-
Implemente as seguintes funcionalidades:
- Adicionar novas coleções de NFTs para monitoramento
- Visualizar lista de coleções monitoradas
- Exibir detalhes básicos de uma coleção específica
-
Integre o frontend com os endpoints do backend.
-
Implemente gerenciamento de estado eficiente.
- Forneça instruções claras no README sobre como configurar e executar o projeto.
- Documente as principais decisões de arquitetura e design patterns utilizados.
- Adicione logging e tratamento de erros adequados.
Inclua uma breve seção no README discutindo:
- Como você abordaria a escalabilidade do projeto para lidar com um grande volume de dados e usuários.
- Como você integraria múltiplas fontes de dados além da API da Reservoir.
- Sugestões de novas funcionalidades e possíveis evoluções do projeto.
- Implementar um mecanismo de cache para otimizar as consultas frequentes.
- Adicionar testes unitários para componentes críticos.
- Implementar um sistema básico de autenticação.
- Criar um dashboard no frontend para visualizar estatísticas agregadas das coleções.
- Adicionar gráficos de desempenho na página de detalhes de cada coleção.
- Implementar logging e tratamento de erros mais robusto.
- Otimizar o desempenho do frontend.
- Adicionar funcionalidade de busca de coleções.
- Implementar paginação na lista de coleções.
- Criar uma funcionalidade de exportação de dados (por exemplo, para CSV).
- Disponibilize o código-fonte em um repositório GitHub público.
- Inclua um arquivo DECISIONS.md explicando as principais escolhas técnicas.
- Se possível, forneça um link para uma versão demo da aplicação hospedada.
- Qualidade e organização do código
- Funcionalidade da solução dentro do prazo dado
- Usabilidade básica da interface
- Clareza da documentação e das decisões tomadas
- Capacidade de priorização e gestão de tempo
- Bônus para requisitos opcionais implementados
- Documentação da API Reservoir: https://docs.reservoir.tools/reference/getcollectionsv6
- Como criar sua chave de API: https://docs.reservoir.tools/reference/dashboard-sign-up
Em caso de dúvidas, entre em contato via e-mail com wagner@khizadao.com ou entre em nosso servidor do Discord clicando aqui.
Boa sorte!