Skip to content

Naneshoru/desafio-front-end

Repository files navigation

Este projeto teve como objetivo o desenvolvimento do desafio proposto de construir a visualização de uma tabela com os dados vindos de uma api simulada do json server.

Foi adotada uma abordagem de menor uso de bibliotecas externas, e um maior uso do Typescript com componentes modularizados para simplificação do fluxo de dados.

1. Funcionalidades

a. Processamento dos dados para exibição (e.g. formato de datas e telefone)
b. Filtragem (por nome, cargo, data de admissão ou telefone) no front
c. Ordenação (campos ordenáveis) via query params

2. Responsividade

Tamanhos web e mobile, adaptando a tabela para uma melhor UX ao comparar as informações (e.g. Sticky cards). Animações ao expandir informações, adaptações e pontos de quebras de linha oportunas nos textos das diferentes colunas, além da área de ação no botão aumentada no mobile.

3. Testes

Foram criados testes visando aumentar a confiabilidade das funcionalidades do projeto em qualquer uma das configurações que permite (e.g. mobile ou web, default ou custom table) com destaque para as operações de filtragem e ordenação, além dos estados como o de carregamento, exibição dos dados e sem dados, visto que são partes importantes do funcionamento e precisam ser detectados rapidamente qualquer possível incongruência.

Ferramentas de teste

Foi utilizado o Jest e Testing Library / React para isso, provendo o ferramental básico de teste para rodar e simular a DOM, respectivamente, além de eventos de usuário com o user-event. As demais bibliotecas utilizadas são de suporte adicional para os testes, como suporte para uso de typescript, svg ou path aliases, por exemplo.


📄 Pré-requisitos

• Node.js versão 20 ou superior
• Package manager (e.g. npm, yarn)
• JSON Server (de preferência 0.17.4)
• Navegador compatível com ES6+ (Chrome, Edge, Firefox, etc.)


🚀 Começando

• instalação das dependências:

  npm i

       ou

  yarn

• inicie o servidor de desenvolvimento com:

  npm run dev

       ou

  yarn dev

Abra http://localhost:5173 com o browser. Esta é a porta padrão do Vite.


• instale o json server para acessar os dados via api simulada:

npm i -g json-server@0.17.4

OBS: você pode usar esta versão do json-server para uma melhor funcionalidade → v0.17.4

• inicie e deixe executando a api simulada com:

json-server --watch db.json

se tiver problemas, execute:

npx json-server db.json 

       ou

yarn dlx json-server@0.17.4 db.json

Agora pode verificar em http://localhost:3000/employees.


para executar os testes, basta rodar:

yarn test

É possível verificar de maneira gráfica os arquivos e dependências no bundle final, entre com:

yarn build

caso não abra no browser, você pode usar o live-server para abri-lo em dist\index.html


🔨 Ferramentas utilizadas


node v20.17.0
npm v8.19.4
yarn v4.6.0


react v19
vite v6.1.0
json-server v0.17.4
@uidotdev/usehooks v2.4.1 → com hooks utilitários, como um para responder a tamanhos de tela
jest v29.7.0
@testing-library/react v16.2.0
@testing-library/user-event v14.6.1


→ Context API, para gerenciamento dos estados
→ fetch API, para requisições http
→ tratamento para reduzir o número de buscas ao digitar
→ foi adicionado tratamento para nomes (abreviação dos nomes do meio)
→ e ajuste dinâmico para uma melhor exibição das fotos
(ou iniciais do nome caso não tenha uma foto → é possível verificar isso apagando alguma string do campo image no db.json)

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •