andredovale / marvel-heroes

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Marvel Heroes

Netlify Status

Como executar

Como foi utilizado os recursos de monorepo do Yarn v1, caso haja a necessidade de rodar o projeto localmente, recomendo as seguintes versões (versões quais desenvolvi o projeto por inteiro):

"node": "12.16.1"
"yarn": "1.19.1"

Para instalar as dependências, na raiz:

yarn

Antes de executar a aplicação web, é necessário configurar as variáveis de ambiente no arquivo applications/web/.env.development.local (ou diretamente nas variáveis globais de sua máquina), com a seguinte estrutura:

REACT_APP_MARVEL = http://gateway.marvel.com/
REACT_APP_MARVEL_PUBLIC = ${publicKey}
REACT_APP_MARVEL_PRIVATE = ${privateKey}

Para executar a aplicação web, na raiz:

yarn web start

Ou, na pasta applications/web:

yarn start

Para executar o StoryBook onde foi desenvolvido os componentes visuais, na raiz:

yarn ds storybook

Ou, na pasta shared/design-system:

yarn storybook

Testes

Para rodar todos os testes, na raiz:

yarn test

Ou, individualmente:

yarn web test
yarn ds test
yarn utils test

Também tendo a opção de executar localmente pelas pastas applications/web, shared/design-system ou shared/utils:

yarn test

Requisitos

  • Deve ser uma SPA “single page application” (dar preferencia ao React);
  • Não utilizar bibliotecas de UI como: bootstrap, semantic-ui, antdesign e etc;
  • Utilizar API da Marvel (https://developer.marvel.com/docs);
  • Disponibilizar em uma URL pública do projeto rodando para avaliação;
  • Disponibilizar código em repositório Git de sua preferência, commitando cada fase do seu processo de desenvolvimento;
  • Seguir layout da pasta ./assets, respeitando as páginas, features e componentes (não será avaliado “pixel perfect”).

Requisitos funcionais

Página de listagem de personagens (home):
  • Exibir os 20 primeiros resultados da API;
  • Permitir ordenação por nome do personagem;
  • Permitir filtrar por nome, pelo campo de busca;
  • Permitir mostrar apenas os personagens favoritos;
  • Permitir o usuário favoritar/desfavoritar até 5 personagens;
Página de detalhe do personagem:
  • Exibir dados do personagem;
  • Exibir últimos 10 quadrinhos lançados deste personagem (onSaleDate);
  • Permitir o usuário favoritar/desfavoritar (dentro do limite de 5).

Bônus

  • Adicionar paginação a listagem para exibir além dos 20 personagens iniciais;
  • Persistir os dados de favoritos (para manter os dados após o reload da página);
  • Layout responsivo;
  • Utilização de ES6+;
  • Utilização de ferramentas para garantir a qualidade do código;
  • Teste e2e;
  • CI/CD.

About


Languages

Language:TypeScript 96.6%Language:JavaScript 1.7%Language:HTML 1.5%Language:CSS 0.3%