Skip to content
André da Silva Freitas edited this page Jun 5, 2023 · 6 revisions

Welcome to the BugSearch wiki!

image Interface gráfica feita por Vinicius Schneider https://github.com/1mrschneider/bug_search_ui

BugSearch V2 é um motor de pesquisa de páginas indexadas pelo crawler BugSearch.Crawler. Ele consiste em duas partes principais: o lado do Bot e o lado do Cliente.

O lado do Bot é responsável pela execução do crawler, que explora páginas da web e verifica recursivamente os links contidos nelas. Os dados são persistidos em duas coleções no MongoDB: uma para armazenar o dicionário de termos e outra para armazenar os EventCrawlers. O EventCrawler é um modelo que contém informações sobre cada evento encontrado, como URL, favicon, título, descrição, corpo, termos e pontuação.

O lado do Bot utiliza um sistema de mensageria RabbitMQ, onde os eventos são enfileirados. Várias instâncias do BugSearch.Crawler podem ser criadas usando Kubernetes, apontando para um único serviço do RabbitMQ na exchange BugSearch.

No lado do Cliente, há uma interface gráfica feita em Flutter, que permite consultar os sites catalogados. Ele oferece um resumo da quantidade de sites e termos armazenados no banco de dados, bem como um endpoint de prompt para o OpenAI.

O endpoint de Search permite pesquisar sites no MongoDB com base em uma consulta e um limite/profundidade. Ele utiliza um algoritmo de pontuação para reorganizar os links a serem exibidos na resposta.

O endpoint de Summary retorna um resumo dos sites catalogados e a quantidade de termos registrados.

O endpoint de Prompt pode ser chamado em paralelo com a pesquisa e retorna uma resposta gerada por uma IA, com base na consulta fornecida.

Todos os serviços do lado do Cliente são contidos em containers Docker e podem ser implantados continuamente no AKS (Azure Kubernetes Service).

O projeto BugSearch V2 possui arquitetura distribuída, com o lado do Bot e o lado do Cliente interagindo por meio de serviços e bancos de dados. O MongoDB é utilizado para armazenar os dados coletados pelo crawler, o RabbitMQ para o envio e recebimento de eventos e o Seq para registro de logs.

Para contribuir com o projeto BugSearch, é possível abrir issues e enviar pull requests no repositório do GitHub.

BugSearch drawio

BugSearch V2

Repo UI

Interface gráfica feita em flutter https://github.com/1mrschneider/bug_search_ui

Repo V1

Projeto depreciado desenvolvido com typescript https://github.com/andrrff/ifma-webcrawler

Clone this wiki locally