Cara, não tá open source, o código tá uma bagunça hahaha
Eu sinceramente foquei mais no valor para o usuário do que na qualidade do código / escalabilidade da aplicação.
Talvez seja o caso de eu fazer um post mais pra frente mostrando como eu fiz em detalhes. Mas pra dar um contexto, basicamente usei uma arquitetura 100% serverless.
Usei AWS CDK pra construir a infra como código, que é:
- EventBridge, que trigga meu lambda de 1 em 1 minuto. Esse lambda faz um get no site do Workana (praticamente fica fazendo um polling pra pegar projetos novos).
- Eu parseio o HTML do workana e extraio as infos dos projetos (incluindo a categoria), consulto se o projeto já não foi extraído antes e mantenho somente os novos projetos pro próximo passo.
- Pra cada projeto novo eu faço o match ou não com o usuário (de acordo com as preferencias de categorias).
- Se o match der certo, eu envio a mensagem pro usuário.
Acho que principal gargalo tá no match Projeto x Usuário, pq se o número de usuário aumentar demais vai dar ruim hahhaha
Basicamente foi isso, qualquer dúvida tamo ae