Sistema Universal de Validación Excel

Plataforma híbrida (PyQt + React) que automatiza extracción, validación y visualización de tablas Excel educativas

Descripción General

Plataforma integral que automatiza la extracción, combinación, validación y presentación de tablas educativas en Excel, con una arquitectura compartida y reusable entre una app de escritorio (PyQt) y una interfaz web moderna (React + Flask). El núcleo implementa un algoritmo bidimensional de detección de celdas combinadas a partir de marcadores [valor], generando spans precisos, datos limpiamente combinados y una base robusta para validaciones universales.

Algoritmo Bidimensional de Celdas Combinadas

Detecta spans horizontal/vertical basados en marcadores [valor] con limpieza y generación de mergedCells precisos

Arquitectura Multiplataforma con Core Reutilizable

Desktop (PyQt) y Web (React/Flask) comparten módulos de negocio con controladores especializados

Validaciones Educativas Sofisticadas y UI de 4 Pasos

Coherencia, subtotales, totales con flujo Paso 1-4 y tabla tipo Excel con selección de rango

Demostración del Sistema

Demostración del Sistema Híbrido

Observa cómo el sistema procesa archivos Excel complejos tanto en la interfaz desktop (PyQt) como en la interfaz web (React). Incluye demostración del algoritmo de detección de celdas combinadas, validaciones automáticas y flujo completo de 4 pasos.

Resumen Ejecutivo

Sistema híbrido que automatiza completamente el procesamiento de tablas Excel educativas complejas. Arquitectura compartida entre desktop (PyQt) y web (React + Flask) con algoritmo bidimensional de detección de celdas combinadas. Reduce 90-95% el tiempo de procesamiento manual.

Arquitectura Híbrida Innovadora

Combina la potencia del desktop con la accesibilidad web, compartiendo el mismo core de negocio para garantizar consistencia y mantenibilidad.

Algoritmo Bidimensional

Detección de Marcadores

Identifica patrones [valor] en celdas para determinar spans horizontales y verticales

Generación de Spans

Calcula mergedCells precisos y limpia datos combinados automáticamente

Validación Universal

Coherencia, subtotales y totales con evidencia de estados

Arquitectura Híbrida

Desktop (PyQt)

Interfaz nativa con controladores especializados y acceso directo al sistema de archivos

Web (React + Flask)

API REST con interfaz moderna, tabla tipo Excel y selección de rangos

Core Compartido

Módulos de negocio puros sin dependencias de UI, reutilizables entre plataformas

Detalles Técnicos

Arquitectura

  • Separación por capas con controladores especializados
  • MVC/MVP híbrido en Desktop, cliente-servidor REST en Web
  • Core puro sin dependencias de UI
  • Aislamiento por pestaña y por archivo

Optimización

  • Algoritmo bidimensional de detección de celdas combinadas
  • Función pura memoizada (useMemo/useCallback) en Web
  • Sistema de logs "rastreador" con evidencia de estados
  • Configuración centralizada por periodo y modo

Características Avanzadas

  • Validaciones universales (coherencia, subtotales, totales)
  • UI de 4 pasos con datos crudos como fuente canónica
  • Interfaz web tipo Excel con selección de rango
  • Configuración dinámica vía JSON (roadmap)

Stack Tecnológico

Frontend

React 18 CSS Módulos Functional Components Hooks

Backend

Flask Blueprints CORS API REST

Desktop

PyQt5 Python 3.8+ pandas

Herramientas

Node.js/npm start_web_development.py Modular Architecture

Desafíos y Soluciones

Aislamiento Perfecto entre Pestañas

La segunda pestaña no detectaba correctamente archivos ya procesados y compartía estado global.

Datos específicos por pestaña/archivo en app_controller con verificación dual y guardado de proceso_secuencial_activo.

Paso 4 Incorrecto por Fallbacks

Paso 4 mostraba datos del Paso 3 (fallback a datos_numericos) y mapeos incompletos.

Priorizar datos_paso4, eliminar fallback problemático y mapeo completo para compatibilidad.

Portar Lógica de Combinaciones a Web

Replicar combinación bidimensional sin bucles infinitos ni re-renders en React.

Función pura memoizada (useMemo/useCallback), estructura mergedCells + dataToRender con eventos controlados.

Flujo de Trabajo de 4 Pasos

Paso 1: Vista Combinada

Visualización de celdas combinadas detectadas

Paso 2: Datos Crudos

Extracción y limpieza de datos originales

Paso 3: Recorte Visual

Selección y ajuste de rangos de datos

Paso 4: Datos Finales

Validación y presentación de resultados

Información del Proyecto

Código Privado Arquitectura híbrida con algoritmos propietarios
Documentación Técnica Guía completa de arquitectura híbrida
Sistema Híbrido Desktop y Web con core compartido