BrandPulse
Autorjun – jul 2026
Motor de monitorizacion de marca y curacion de contenido con capa de fuentes enchufable. Rastrea palabras clave/marcas en multiples fuentes (RSS, Hacker News, Reddit, Mastodon), normaliza todo a un modelo de dominio y deduplica y rankea con scoring explicable. FastAPI + CLI, SQLAlchemy 2.0 async, tipado estricto (mypy) y Docker.
Sobre el proyecto
Motor de monitorizacion de marca y curacion de contenido construido sobre una capa de fuentes enchufable: se le indican palabras clave o marcas, despliega la busqueda por varias fuentes, normaliza todo a un unico modelo de dominio y deduplica y rankea los resultados en una lista curada. Pequeno pero construido como un servicio de produccion: capas limpias, fronteras tipadas, inyeccion de dependencias, degradacion elegante y tests que verifican comportamiento. El contrato clave es SourceConnector: cada plataforma se reduce a 'dada una consulta, emite ContentItems normalizados', y nada downstream importa un conector directamente, lo pide al registro.
Características
- Capa de fuentes enchufable via el contrato SourceConnector y un registro; anadir Reddit, Mastodon o un adaptador de Instagram es un cambio localizado, no un refactor
- Conectores abiertos (RSS, Hacker News, Reddit, Mastodon) e Instagram/LinkedIn acotados a lo que permiten sus APIs oficiales
- Dominio puro sin I/O (modelos como ContentItem); el ORM (SQLAlchemy 2.0 async) queda fuera del dominio via repositorios
- Curacion con scoring explicable y deduplicacion (Scorer intercambiable por ML)
- Doble adaptador sobre el mismo servicio: API FastAPI (con campanas) y CLI con Typer
- Configuracion tipada twelve-factor, tipado estricto con mypy, linting con Ruff, migraciones con Alembic y despliegue con Docker
