(Readme está em PT-BR, código em inglês)
- REACT_APP_API_PUBLIC_KEY - Generate here
- REACT_APP_SENTRY_TOKEN - Optional Sentry here
- nodejs >= 14
- yarn > 1.12
- Docker (Optional)
Este projeto contém uma implementação da API da Marvel de quadrinhos, em que podemos listar o total de quadrinhos, e filtrar a busca já realizada por personagem, nome do quadrinho e autor, também é possível realizar uma busca de heróis. Sistema foi construido mobile first, porém responsivo.
Este projeto foi criadoo utilizando yarn packages, este possui testes, eslint, babel e storybook disponíveis para todos os projetos, da forma que está separado em dois pacotes principais:
Package | folder | Feature |
---|---|---|
@oliveiras-well/es-shared | shared | Javascript util functions |
well-dev-playground-react-ui | react-ui | A Mavel comic list display build with react |
Um projeto react,
- utilizando quase que estritamente componentes funcionais e hooks
material ui
como framework de componentes, styled components ou styles inline como constantes- Componentes funcionais em sua grande maioria, somente error boundary como class
- React router com separação das rotas via lazy
- Classes services separadas
- Absolute imports
- eslint, pritter e pre commit hooks
- Storybook
- Documentationjs
- Testes com jest
- Cypress (beta) nenhum teste implementado ainda
- Docker (beta)
- envs - Exemplo de arquivo env
- src
- assets - Images e etc
- components - Componentes reutilizaveis
- constants - Constantes
- context - Contextos globais como alerta
- hooks - Hoooks
- pages - Componetes das paginas presentas nas rotas, e também o template com barra e menu (App)
- routes - rotas
- services - serviços de api
- utils - etc
- .env - Arquivo necessário com as properties, pode
- Foi desabilitado a barra de rolagem, estoou forcando o scroll do mouse ou então swipe
- Refactor em alguns hooks
- Add useCallback, useMemo em alguns lugares
- FIXME no problema de findNode no
<React.strict/>
- Google Analytics
- Typescript
- Testes com Cypress
Para todos os comandos é necessárioo primeiro que xecute yarn
na raiz do projeto para instalar as dependencias
- Execute
yarn web:start
para subir na porta 3000
- Execute
yarn storybook:start"
para subir na porta 5555
- Execute
yarn docs:serve
para subir na porta 4001
Foram criados testes utilizando jest
- Execute
yarn jest
Utilizamos Cypress para criação de testes e2e, sua implementação está na pasta cypress/integration
Para abrir a suite do cypress execute yarn cy:open
Para rodar todos os testes localmente sem a interface do cypress execute yarn cy:run
A interface react pode ser utilizada com docker, utilizando o comando docker-compose up -d
Utilizamos o firebase para hosting do front-end, e travis para CI, pipeline está definido como
- eslint:fix
- test
- build
- Deploy
Funções que podem ser reutilizadas em outros pacotes, para mais informações verifique o documentationjs
Qualquer dúvida contactar well.oliveira.snt@gmail.com