Volver a proyectos

PROYECTO 01 · CASO

Plataforma de reportes automatizados

En Maxcess International construí, con Python, SQL, React y Supabase, la plataforma que extrae, valida y entrega más de 110 reportes ejecutivos al mes para grandes cadenas de retail a nivel nacional, porque cada cuenta necesitaba su propio formato, a tiempo y con el dato íntegro.

En 30 segundos

Por qué

En Maxcess International automaticé los reportes ejecutivos de grandes cadenas de retail a nivel nacional, parametrizados desde inVue, CrossPoint e Indyme, líderes en seguridad.

PARA QUIÉNPersonal estratégico con visibilidad ejecutiva y roles operativos en las cadenas de retail
METAReportes ejecutivos semanales, quincenales y mensuales, con auditoría, replicabilidad y visualización: más de 110 al mes

Qué construí

  1. Fuente

    Exportaciones CSV, JSON, HTML y TXT de las plataformas de inVue, CrossPoint e Indyme, distintas por tienda y cadena. Antes se bajaban a mano en horas; hoy las extrae Python.

  2. Modelo

    Cada métrica nace en un glosario antes de ser código. Un contrato canónico y flujos SQL en Supabase y DuckDB cubren más de 10 variantes de cliente y cálculo y marcan el dato incompleto.

  3. Salida

    PPTX ejecutivo mensual, reporte analítico detallado (RAD) en PDF y Word, y paneles HTML con acceso por QR, en una plataforma con roles por cuenta y más de 4,000 pruebas.

Herramientas

  • Python
  • SQL
  • DuckDB
  • Supabase
  • React
  • Azure SQL
  • Power Automate
  • Microsoft 365
  • Cloudflare
  • Agentes de IA

Repositorio

Repositorio en GitHub, Próximamente

El caso completo

Dónde empezó

Maxcess International lleva a México tecnologías y ecosistemas líderes en el sector de la seguridad para el retail: inVue, CrossPoint e Indyme. Sus equipos protegen vitrinas, controlan el acceso a bodegas y miden la operación de las tiendas en grandes cadenas de retail a nivel nacional.

Cada dispositivo deja un rastro: aperturas, accesos, alertas y tiempos de atención. Ese rastro vale cuando llega a tiempo y en el formato de cada cliente, y cada Strategic Account Manager lleva sus cuentas con su propio calendario: reportes semanales, cada 10 días, quincenales y mensuales. Los leen el personal estratégico con visibilidad ejecutiva y los roles operativos de cada cadena.

El reto

Los datos vivían en las plataformas de cada marca y salían en exportaciones distintas por tienda y por cadena: CSV, JSON, HTML y TXT. Bajarlas, limpiarlas y armar cada reporte a mano tomaba horas, y una sola cifra equivocada le restaba confianza a todo el documento.

El reto no era hacer un reporte, sino más de 110 al mes, con más de 10 variantes de cliente y más de 10 de cálculo, sin perder la integridad del dato ni la identidad de cada cuenta.

Cómo lo abordé

Antes de escribir código, cada métrica nace en un glosario: qué mide, de dónde sale y cómo se valida. El levantamiento con cada Strategic Account Manager, el diseño y la interactividad de cada formato se documentan en especificaciones antes de volverse flujos SQL o pantallas.

Construí por capas, en local y con pruebas desde el primer día. Dirijo agentes de IA con roles definidos —arquitectura, frontend, optimización, diseño y control de calidad— y reviso cada entrega contra su especificación antes de integrarla.

De punta a punta

Extracción. Scripts de Python bajan solos las exportaciones de las plataformas, un trabajo que antes era manual y tomaba horas. En la plataforma, el Data Funnel recibe cada archivo, detecta a qué cuenta y periodo pertenece, quita duplicados y emite un dataset canónico con su reporte de calidad.

Modelo. Un contrato canónico fija las columnas que todo lote debe traer. El motor SQL corre en el navegador con DuckDB y persiste en Supabase, sobre PostgreSQL. Cada lote guarda su huella y la versión del motor que lo calculó, así que cualquier cifra se puede rastrear hasta su archivo de origen.

Salida. Report Studio guía cada entrega en seis pasos —configuración, carga de datos, métricas, contenido, vista previa y exportación— y genera tres formatos: el PPTX ejecutivo mensual, el reporte analítico detallado (RAD) en Word y PDF, y un panel HTML interactivo que se publica cada mes con acceso por QR y enlace seguro.

Lo que construí

Una plataforma multiusuario con cuatro roles —administrador, Strategic Account Manager, soporte y visitante— donde cada cuenta es un entorno aislado: cada Strategic Account Manager ve solo a sus clientes, y el administrador audita usuarios y movimientos.

  • Command Center: el estado del ciclo en una pantalla, con un asistente que responde sobre lo que tu perfil puede ver.
  • Data Funnel: carga, detección, fusión y validación de cada lote, con su reporte de calidad y su firma.
  • Report Studio: el asistente de seis pasos que arma, revisa y exporta cada reporte.
  • Panel analítico interactivo: resumen, eventos de impacto, candados, vitrinas, zonas, actividad por día y hora, y anexos, con filtros y descargas en CSV, PPTX y RAD.
  • Status por sucursal: días con dato, disponibilidad y semáforo de eventos de cada lote.
  • Levantamientos: un editor a escala para ubicar vitrinas y dispositivos en el plano de cada tienda, con mapas de calor por dispositivo.
  • Bitácora, Task Manager y Calendario del ciclo: hallazgos, decisiones, pendientes y cierres de cada mes, conectados con Microsoft 365.
  • Repositorio y Explorador de datos, Dashboard Studio, Formatos y glosarios, Centro de referencias, Mi progreso, Automatizaciones y Administrador.

Cómo sé que una cifra es correcta

Antes de salir, cada reporte pasa revisiones automáticas: que cada cifra del texto exista en el paquete de datos, que cada nombre esté en los catálogos y que no quede una alerta sin resolver. La redacción asistida con IA solo propone; si no pasa esas revisiones, el reporte usa la plantilla determinista y lo dice.

Detrás hay más de 4,000 pruebas automáticas que corren en cada cambio, con Vitest, Testing Library y Playwright.

Qué cambió

Más de 110 reportes al mes, validados y a tiempo. La extracción que tomaba horas hoy corre sola, y cada cuenta recibe su formato con su marca, su tipografía y sus gráficas.

Los formatos gustaron a los clientes y abrieron nuevos usos: hoy los consultan también operación, mercadotecnia y otras áreas de las cadenas. El panel HTML es el primer paso hacia el comparativo trimestral y anual.

Qué aprendí

Que la integridad se diseña: un glosario y un contrato antes del código ahorran semanas de correcciones. Y que automatizar bien no es esconder el proceso, sino dejar a la vista de dónde sale cada cifra.

Lo que sigue

Llevar el comparativo trimestral y anual al panel, integrar la arquitectura de Power BI que corre en paralelo y publicar el repositorio cuando esté listo.

Stack de punta a punta

  1. Extracción y fuentes

    Bajar y leer las exportaciones de cada plataforma

    • Python
    • CSV
    • JSON
    • HTML
    • TXT
    • Excel
    • SheetJS (xlsx)
    • PapaParse
  2. Modelo y SQL

    Contrato canónico, cálculo y persistencia

    • SQL
    • DuckDB-WASM
    • Apache Arrow
    • Supabase
    • PostgreSQL
    • Azure SQL
  3. Backend y automatización

    Servicios, flujos y conexiones

    • Supabase Auth y Storage
    • Funciones serverless en Node.js
    • Power Automate
    • Microsoft 365
    • Llaves de API
  4. Frontend

    La plataforma y sus módulos

    • React
    • JavaScript
    • Vite
    • React Router
    • Tailwind CSS
    • PostCSS
    • Lucide
  5. Visualización

    Gráficas, mapas y paneles

    • D3
    • Recharts
    • react-simple-maps
    • Matplotlib
    • squarify
  6. Documentos y salidas

    PPTX, RAD, panel HTML y descargas

    • PptxGenJS
    • docx
    • jsPDF
    • html2canvas
    • PowerShell
    • JSZip
    • qrcode
  7. IA

    Asistente, redacción y desarrollo dirigido

    • Modelos de lenguaje por API: Llama, GPT, Claude, DeepSeek y Gemini
    • Agentes de IA
    • Spec Driven Development
  8. Calidad

    Pruebas en cada cambio

    • Vitest
    • Testing Library
    • jsdom
    • Playwright
    • jsQR
    • ESLint
    • Husky
    • GitHub Actions
  9. Entrega

    Publicar y servir

    • Vercel
    • Cloudflare Pages
    • Wrangler
    • GitHub

Capturas · 21

Datos de prueba o difuminados: sin cifras reales de clientes.