/star-wars

A small SPA that consumes de Star Wars API (SWAPI) using React, Typescript, SASS.

Primary LanguageTypeScript

Star Wars

Uma aplicação para praticar o uso de filtros complexos, contextAPI e hooks.

Esse projeto foi desenvolvido inicialmente como um projeto do curso Trybe em 2022, e agora estou refatorando o projeto aplicando tudo que aprendi até agora.

deploy:

Clique aqui para acessar o deploy do projeto no navegador

Dependências

  • Dependencias: React, Typescript.

  • Dependencias de desenvolvimento: ESLint, Prettier, Vitest, Istambul, React Testing Library.


Aplicação

Desenvolvida uma SPA(Single Page Application) consumindo a SWAPI.

O projeto consiste uma uma única página, onde é possível consumir os dados da SWAPI (Star Wars API), popular uma tabela e a partir daí gerar filtros complexos.

Estado global utilizando contextAPI.

Aplicação é testada com testes de integração usando React Testing Library.

Instalação da aplicação

Pré Requisitos:

  • Node 16^
  • npm 8.5.0^

Rodando a aplicação localmente


  1. Abra o terminal e clone o repositório:
git clone git@github.com:ThiagoBarbosaDev/star-wars.git

  1. Entre na pasta do repositório referente ao projeto
cd star-wars

  1. Instale as dependência
npm install

  1. Rode a aplicação
npm start

  1. Acesse a página no navegador pelo endereço padrão do vite:
http://localhost:5173

Rodando testes de integração

  1. Abra o terminal na raíz do projeto

  2. Digite o comando para rodar os testes de integração:

npm test

Rodando cobertura dos testes

  1. Abra o terminal na raíz do projeto

  2. Digite o comando para rodar os testes de integração:

npm run coverage

todos:

  • Implementar o CSS (SASS + css modules)
  • Criar customHooks (useFetch)
  • implementar React Query
  • Implementar React Hook Forms
  • Criar componente de botão genérico
  • Impĺementar react-router
  • Criar rota de planetDetails
  • Migrar o projeto para Typescript
  • Remover testes E2E da Trybe
  • Implementar meus próprios testes E2E (cypress.io)
  • Dockerizar o projeto