school-feed-monitor
Herramienta Python+Docker para monitorizar noticias del sector educativo italiano (USR, USP, MIM) vía RSS y scraping HTML. Envía alertas por keywords personalizadas a Telegram/email con reportes diarios. Usa SQLite, soporta multi-usuario, gestión de fuentes y watchdog de salud.
Ficha actualizada 22 sept 2026, 17:20 · upstream 22 sept 2026, 16:53 · release sin release detectada
Qué es school-feed-monitor
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
school-feed-monitor es una aplicación Python autoalojada diseñada para monitorizar noticias del sector educativo italiano (USR, USP, MIM) mediante feeds RSS y scraping HTML. Permite configurar alertas inmediatas por palabras clave personalizadas vía Telegram y email, además de generar reportes diarios automáticos. La arquitectura utiliza Python con SQLite como base de datos principal, soportando despliegue en Docker con archivos de configuración JSON para fuentes y credenciales.
La herramienta implementa un sistema multi-usuario donde cada usuario puede gestionar sus propias fuentes, palabras clave y preferencias de notificación sin intervención manual continua. Incluye funcionalidades avanzadas como deduplicación de noticias, gestión de retención de datos, y un watchdog que monitorea la salud de las fuentes detectando fallos o silencios prolongados.
Además, ofrece una capa web opcional con Flask para autenticación, exportación de datos y gestión de cuentas con doble opt-in por email. Soporta integración con servicios de email como Brevo o Resend, y permite añadir fuentes personalizadas verificando su legibilidad mediante RSS, feeds declarados en HTML o scraping inteligente de páginas tipo Liferay/MIM.
- Monitorización automática de noticias educativas regionales (USR/USP) para instituciones públicas italianas
- Alertas inmediatas por palabras clave específicas a múltiples usuarios vía Telegram con reportes diarios opcionales
- Gestión centralizada de fuentes RSS y scraping HTML sin necesidad de mantenimiento manual constante
- Herramienta de autenticación y exportación de datos para cumplimiento normativo (GDPR) en entornos educativos
- Sistema de notificaciones escalonado con opciones de email, Telegram y reportes diarios configurables por usuario
- Soporte nativo para múltiples usuarios con configuración individual de fuentes y keywords en SQLite
- Scraping inteligente de páginas HTML sin feed RSS (ej. sitios MIM/Liferay) con detección automática de feeds alternativos
- Watchdog integrado que detecta fallos de fuentes o silencios prolongados con notificaciones a administradores
- Gestión de retención de datos configurable con eliminación automática de logs y noticias antiguas
- Capa web opcional con autenticación, exportación de datos y revocación de consentimiento para cumplimiento GDPR
- Dependencia de feeds RSS públicos o scraping HTML estable; cambios en estructura de sitios pueden romper la lectura
- Requiere configuración manual de variables de entorno para email (SMTP/Resend) sin autenticación automática
- Base de datos SQLite puede no escalar bien en entornos de alta concurrencia o almacenamiento masivo
- Soporte limitado a fuentes italianas del sector educativo; no incluye feeds internacionales por defecto
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
Desplegar con Docker usando docker-compose.yml. Copiar config.example.json y editar telegram_token, sites, daily_report_time. Configurar EMAIL_BACKEND (smtp/resend/none) en .env con credenciales verificadas. Asegurar 2 núcleos CPU, 2GB RAM, 10GB disco. Ejecutar scripts/check_sources.py para validar feeds antes de producción. Habilitar capa web opcional si se requiere autenticación y exportación de datos.
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.