Sobre el proyecto

Licitarium es un programa informático para Windows que refleja en la máquina del ente lo que el municipio publica en el PNCP (Portal Nacional de Contrataciones Públicas). Reúne contrataciones (convocatorias y avisos), contratos, actas de registro de precios, el Plan Anual de Contrataciones (PCA) y los ítems de cada compra, con precio unitario pagado y proveedor ganador. El acervo es consultable, sin conexión a internet y permanente: resolvería la necesidad de consultar el historial proceso a proceso en el portal, que no es consultable ni está disponible sin internet. El piloto funciona en Orindiúva-SP y nada está fijado en el código respecto al municipio. Acervo e interface La interfaz cuenta con cinco pestañas con búsqueda, filtros por año, modalidad, situación y órgano, ordenamiento por clic, columnas ajustables y exportación en .xlsx: Contrataciones (convocatorias y avisos de las modalidades de la Ley 14.133), Contratos (proveedor, valor global, vigencia y distintivo de situación vigente/venza en 60 días/cerrado), Actas (objeto y vigencia, con el mismo distintivo), PCA (ítems del plan de cada órgano) y Precios (búsqueda por ítem, resumen estadístico con mediana, cuartiles y alerta de atípico, selección y descarte con motivo, y municipios de referencia). Al hacer clic en una fila se abre el detalle completo, incluyendo el registro integral en JSON tal como consta en el PNCP y enlace directo al proceso oficial. La pantalla inicial muestra tres indicadores clicables (total de contrataciones, valor homologado en el año, contratos vigentes) y alertas de vencimiento en 60 días y de propuestas en apertura. Montagem do PCA El módulo de PCA utiliza el historial de ítems ya contratados para sugerir el plan del ejercicio siguiente: agrupa ítems similares por radical de la descripción, descartando prefijos burocráticos, y fusiona grupos de radical diferente con descripción muy superpuesta; corrige valores por la serie del IPCA (Banco Central) antes de proyectar; proyecta la cantidad por promedio, último año, mayor valor, suma o tendencia por regresión lineal; estima el precio por mediana, promedio, valor más reciente o menor; aplica un margen de seguridad estándar del 10%, editable por ítem; clasifica en curva ABC y agrupa por familia; y señala unidad divergente, ocurrencia única, precio disperso, ítem ya cubierto por acta vigente y variación contra el plan anterior. Permite fusionar y dividir grupos, con precio ponderado por volumen, y preserva ajustes manuales en nueva generación. La entrega es un anteproyecto para revisión humana, no un archivo de importación. Relatórios Se describen ocho informes en HTML con membrete (listos para imprimir en PDF) y, cuando corresponde, también en .xlsx: Relación de Contrataciones, Relación de Contratos, Relación de Actas, Resumen Ejecutivo Anual, Alerta de Fraccionamiento (autocontrol que agrupa dispensas por similitud de objeto y controla los límites del art. 75, con ventana por ejercicio o período móvil), Anteproyecto del PCA e Investigación de Precios (subsidio al art. 23). La impresión siempre sale clara, independientemente del tema elegido en la pantalla. Sincronização e operação En la primera ejecución el usuario selecciona el municipio (tabla IBGE integrada con 5.571 municipios) y el programa descarga el historial publicado desde 2021. Cada vez que se abre sincroniza solo lo que cambió, respetando un intervalo de 10 minutos desde la última recolección; el botón Sincronizar recoge siempre. Los órganos del municipio se descubren automáticamente a partir de las contrataciones, y otros pueden agregarse por CNPJ. Los datos quedan en una base SQLite local en %LOCALAPPDATA%\Licitarium, tratada como caché reconstruible. Sin internet, el programa se abre con los datos locales y avisa que no actualizó. El README reporta que la sincronización en el acervo del piloto llevó 33 segundos con 69 consultas al portal, con tres fases en paralelo y reconexión solo de ítems alterados. En caso de falla del portal, el cliente intenta cinco veces con espera creciente (30 a 90 s), sortea el intervalo entre intentos y reduce conexiones simultáneas bajo sobrecarga; lo que falla se registra y se rehace en la recolección siguiente. Painel La pantalla inicial resume el ejercicio en cuatro visiones (Ejecución, Análisis, Vigilancia y Economía), con alertas encima que llevan a la lista ya filtrada. Los gráficos son SVG dibujados por el propio programa, sin biblioteca ni red, en paleta descrita como validada para daltónicos y contraste, y pueden imprimirse en A3 horizontal. El README menciona que la consulta que alimenta las cuatro visiones cuesta alrededor de 120 ms en un acervo de 114 MB (3.360 contrataciones, 25 mil ítems) y que los gráficos se redibujan cuando la ventana cambia de tamaño. Privacidade El programa solo lee datos públicos del PNCP: no envía datos de la computadora, no tiene telemetría ni cuenta de usuario y no abre puerto de red. Las únicas conexiones de salida son hacia pncp.gov.br y hacia la API pública de GitHub, usada para verificar versiones nuevas. Instalação e arquitetura La vía recomendada es el ejecutable de la página de releases, sin instalación, sin Python y sin derechos de administrador; el README observa que SmartScreen puede alertar por ser ejecutable nuevo y no firmado, y que Smart App Control de Windows 11 bloquea binarios sin firma digital, desactivando la actualización automática en ese caso. Alternativamente, se ejecuta desde el código con pip install -r requirements.txt y python licitarium.py, en Windows 10/11 con WebView2; las dependencias externas citadas son pywebview, openpyxl y motor_pncp, con todo lo demás en la librería estándar de Python, y la versión indicada es Python 3.12. La arquitectura es de un único proceso: ventana pywebview/WebView2 dialogando con Python por un puente js_api, sin servidor HTTP, puerto ni firewall; el JSON bruto de cada registro se guarda como fuente de la verdad y las columnas de la base son proyección de él. El repositorio incluye licitarium.py, pncp.py, pca_builder.py, relatorios.py, archivos de interfaz en ui/ (con cuatro temas por data-theme y fuentes vendorizadas), pruebas en tests/ con pytest e HTTP simulado, pruebas de interfaz en tests-e2e/ con Playwright, además de DESIGN.md, design/IDENTIDADE.md y design/DASHBOARD.md. El CI ejecuta pruebas de Python e de interfaz en Windows en cada push y, al marcar tag v*, compila el ejecutable y lo anexa al release mediante PyInstaller. En Configuración, Guardar copia... y Restaurar copia... guardan y devuelven el acervo entero en .zip, verificando el archivo y preservando la base anterior. Autoria e licença La licencia es MIT (© 2026 Túlio Ribeiro de Moura e Silva). Cada versión recibe DOI en Zenodo, con cita sugerida en el README. Los datos exhibidos son públicos, originarios del PNCP, en los términos de la Ley 14.133/2021 y de la Ley de Acceso a la Información, y el proyecto declara no ser producto oficial del PNCP ni del Gobierno Federal.