Unicanal demo
Versión reducida del portal real (Flask + SQLite) que uso para operar y reportar. Corre 100% en tu navegador con datos ficticios: nada se guarda ni se envía. Stripped-down version of the real portal (Flask + SQLite) I use to operate and report. It runs entirely in your browser on made-up data: nothing is stored or sent.
Registra el estado del día de un chip. Un registro por teléfono y día, como en el portal real.
Cómo se maneja la base de datos
- Un solo archivo SQLite compartido por dos procesos independientes: el portal web (Flask) y un scraper (Selenium) que actualiza el estado de equipos y campañas.
- Esquema idempotente: al arrancar cualquiera de los dos se ejecuta
CREATE TABLE IF NOT EXISTSy migracionesALTER TABLE ADD COLUMNguiadas porPRAGMA table_info, así que cualquiera puede iniciar primero sobre una base vacía. - SQL plano, sin ORM: cada módulo tiene su
repository.pycon las consultas, separado de las rutas HTTP. - Registros por día: los bloqueos son un registro por teléfono y fecha (
UNIQUE (telefono, fecha)), solo se agregan.
Cómo se hace la reportería
- Una vista SQL central,
combined_report, une las tablas de teléfonos, equipos y el bloqueo del día. Casi todos los reportes, el dashboard y las alertas leen de ella, no de las tablas crudas. - Los reportes son tablas filtrables exportables a CSV/Excel (pestaña Reportes).
- Las alertas persistentes son reglas evaluadas sobre esa vista tras cada ciclo del scraper: se abren al cumplirse la condición y se cierran solas cuando los datos cambian.
Demo de tabla
Alertas persistentes: se abren y se cierran solas según el estado de los datos (registra un chip como «Activo» en Bloqueos y mira cómo se cierra).
Datos generados al azar. El original es un portal Flask con scraper Selenium, SQLite y permisos por usuario; esta demo replica solo Búsqueda, Bloqueos, Reportes, Base de datos y Alertas. Randomly generated data. The original is a Flask portal with a Selenium scraper, SQLite and per-user permissions; this demo only mirrors Search, Blocks, Reports, Database and Alerts.