https://github.com/charlie5dh/github_repos_manager
Github repo manager
https://github.com/charlie5dh/github_repos_manager
github mariadb rabbitmq typescript websockets
Last synced: 3 months ago
JSON representation
Github repo manager
- Host: GitHub
- URL: https://github.com/charlie5dh/github_repos_manager
- Owner: Charlie5DH
- Created: 2025-02-16T00:57:58.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-16T21:13:02.000Z (over 1 year ago)
- Last Synced: 2025-02-16T21:26:05.412Z (over 1 year ago)
- Topics: github, mariadb, rabbitmq, typescript, websockets
- Language: Python
- Homepage:
- Size: 10.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Gerenciamento de Repositórios do GitHub
Imagine criar uma plataforma que permita aos usuários pesquisar e gerenciar facilmente os repositórios do GitHub. Este desafio envolve a criação de um aplicativo web com duas telas distintas e um backend para processamento de dados em segundo plano, afim de atestar o conhecimento em jobs em segundo plano utilizando fila, banco de dados e api rest.
## Requisitos:
### Tela 1: Pesquisa e Exportação
Deve fornecer uma barra de pesquisa que permite aos usuários buscar por um usuário do GitHub.
Ao selecionar um usuário, deve exibir todos os seus repositórios.
Deve incluir um botão para exportar todos os repositórios do usuário no formato CSV.
### Tela 2: Importação e Visualização
Deve conter um botão para importar os repositórios exportados da tela anterior.
Deve exibir uma tabela com os repositórios importados, incluindo o nome do repositório, o nome do proprietário e a quantidade de estrelas do repositório.
Deve persistir os dados importados no banco de dados.
## Backend:
Processar os dados importados usando jobs em segundo plano e uma fila com RabbitMQ.
Notificar o frontend quando o processamento estiver completo.
Recursos Adicionais Desejáveis:
Implementar filtros para os campos da tabela, permitindo aos usuários refinar sua visualização.
Deploy
Faça um passo a passo do processo de execução do projeto, lembrando da obrigatoriedade do uso de Docker
## Tecnologias Obrigatorias:
- Typescript
- Docker
- MariaDB
- React
- RabbitMQ
## Solução
- Rodar script em Scripts/start.hs com o comando build `sh ./Scripts/start.sh build` ou alternativamente rodar `docker compose up -d --build`
- Accessar localhost:3000
- Backend: http://localhost:8000/docs (documentação interativa do FastAPI).
### Fluxo de Uso
- Tela de Pesquisa (frontend):
- Pesquise por um usuário do GitHub e visualize seus repositórios.
- Clique em “Exportar CSV” para baixar CSV.
- Na tela MyRepos, importar arquivo baixado
- Backend:
- Recebe o CSV e a envia à fila RabbitMQ com um delay de 5 segundos para simular processamento.
- Worker:
- Consome a fila, processa e grava dados no MariaDB.
- Notifica o Backend (via /api/notify).
O Frontend exibe um toast (via shadcn) com a mensagem e o horário do processamento.




