👨💻 Monitoramento de tweets por filtragem a partir de tags 👨💻
Sistema de monitoramento de tweets por filtragem a partir de tags. A aplicação é baseada em quatro microserviços: Kafka Connect, backend em NestJS, frontend em NextJS e serviço de envio de e-mails em Golang.
O Twitter é monitorado através de um conector do Kafka Connect e os novos tweets encontrados são salvos no banco de dados da aplicação por meio de outro conector. A API acompanha a entrada de dados no banco e aciona o serviço do envio de e-mails quando uma determinada quantidade é atingida. Além disso, é papel da API prover por meio de endpoints REST as informações mostradas no frontend.
Os microserviços foram desenvolvidos para executar em containers Docker e, quando em produção, utilizando Kubernetes.
Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas: Git, Docker e Docker Compose. Para trabalhar com o código, é recomendável o uso de um bom editor, como o VSCode.
# Clone este repositório
$ git clone https://github.com/emanuelmassafera/imersao-fc6.git
# Acesse a pasta do projeto pelo terminal/cmd
$ cd imersao-fc6
# Acesse a pasta de cada microserviço
$ cd kafka-connect
# Execute a aplicação
$ docker-compose up
Ao rodar localmente, todas as variáveis de ambiente já serão criadas e atribuídas através dos arquivos docker-compose de cada microserviço. As únicas exceções são das variáveis referentes ao serviço de envio de e-mail, que deverão ser substituídas.
A ordem de execução recomendada para os microserviços é kafka-connect > nestjs > golang > nextjs.
Para executar a aplicação com Kubernetes, é necessário que você o tenha instalado em sua máquina, substitua as variáveis de ambiente para uso dos serviços do Kafka, MongoDB e Redis em cloud e suba as imagens Docker de produção dos microserviços do NestJS, NextJS e Golang para o Docker Hub.
Emanuel Massafera
Esse repositório está licenciado pela MIT LICENSE. Para informações detalhadas, leia o arquivo LICENSE.
Made with ♥ by Emanuel Massafera 👋 Get in touch!