Aplicação React para gerenciar e acompanhar seus repositórios favoritos do GitHub.
- Descrição Geral
- Funcionalidades
- Estrutura de Pastas
- Principais Dependências
- Configuração do Ambiente
- Scripts Disponíveis
- Fluxo Principal da Aplicação
- Detalhes das Páginas
- Estilização
- Integração com a API do GitHub
- Observações de Segurança
- Referências
Este projeto é uma aplicação React criada para permitir ao usuário salvar, pesquisar e acompanhar seus repositórios favoritos do GitHub de forma simples e rápida. O usuário pode adicionar repositórios, visualizar detalhes e issues, filtrar por status e navegar por páginas de issues.
- Adicionar repositórios favoritos via busca pelo nome completo (
owner/repo). - Listar repositórios salvos com opção de remoção.
- Visualizar detalhes do repositório e suas issues.
- Exibir quantidade de estrelas do repositório.
- Paginação das issues (5 por página).
- Filtragem das issues por status: todas, abertas ou fechadas.
- Persistência local dos repositórios favoritos via
localStorage. - Integração com a API do GitHub (com suporte a token pessoal).
favoriterepos/
├── public/
│ ├── index.html
│ └── robots.txt
├── src/
│ ├── pages/
│ │ ├── Main/
│ │ │ ├── index.js
│ │ │ └── styles.js
│ │ └── Repositorio/
│ │ ├── index.js
│ │ └── styles.js
│ ├── services/
│ │ └── api.js
│ ├── styles/
│ │ ├── colors.js
│ │ └── global.js
│ ├── App.js
│ ├── index.js
│ └── routes.js
├── .env
├── .env.example
├── .gitignore
├── .prettierrc
├── package.json
└── README.md
- React: Biblioteca principal para construção da interface.
- react-router-dom: Roteamento entre páginas.
- styled-components: Estilização dos componentes.
- axios: Requisições HTTP para a API do GitHub.
- react-icons: Ícones SVG.
- prettier: Padronização de código.
-
Clonar o repositório e instalar as dependências:
git clone https://github.com/andreluizdasilvaa/Favorite-Repos favoriterepos cd favoriterepos npm install -
Configurar o token do GitHub:
- Crie um arquivo
.envna raiz do projeto. - Adicione sua chave pessoal:
REACT_APP_GITHUB_TOKEN=seu_token_aqui - Um exemplo está disponível em
.env.example.
- Crie um arquivo
-
Iniciar o projeto:
npm start
npm start: Inicia o servidor de desenvolvimento.npm run build: Gera a versão de produção.npm run eject: Eject do Create React App.
- Adicionar repositório: O usuário digita o nome completo do repositório e clica em adicionar.
- Listagem: Exibe todos os repositórios salvos localmente.
- Remover: O usuário pode remover um repositório da lista.
- Navegar para detalhes: Ao clicar no ícone de barras, o usuário é redirecionado para a página de detalhes do repositório.
- Exibe informações do repositório: Nome, descrição e avatar da organização (se houver).
- Exibe a quantidade de estrelas do repositório.
- Lista de issues: Mostra as issues do repositório, 5 por página.
- Paginação: Botões para avançar e voltar páginas.
- Filtro de status: Botões para filtrar issues por "All", "Open" ou "Closed".
- Gerencia o estado dos repositórios favoritos.
- Usa
localStoragepara persistência. - Faz requisições à API do GitHub para validar e obter dados do repositório.
- Permite remoção de repositórios.
- Busca detalhes do repositório e suas issues.
- Exibe a quantidade de estrelas do repositório.
- Permite filtrar issues por status.
- Implementa paginação das issues.
- Exibe informações do usuário que abriu a issue, labels e estado.
- Utiliza
styled-componentspara criar componentes estilizados reutilizáveis. - Cores principais definidas em
src/styles/colors.js. - Estilos globais em
src/styles/global.js.
- As requisições são feitas via
src/services/api.jsusandoaxios. - O token do GitHub é lido do arquivo
.envpara evitar limites baixos de requisições. - Endpoints utilizados:
GET /repos/:owner/:repoGET /repos/:owner/:repo/issues
- Nunca compartilhe seu token do GitHub publicamente. O arquivo
.envestá no.gitignore, mas evite subir o token para repositórios públicos. - O token presente no arquivo
.envdeste projeto deve ser removido antes de qualquer publicação.