SIIED · Oferta de software de código abierto
Documentación del código de toda la plataforma, archivo por archivo, y manuales de operación
El Sistema Integrado de Información Estadística Distrital se construyó íntegramente en la Subdirección de Desarrollo Integral del Departamento Administrativo de Planeación con herramientas libres — Python, Django, PostgreSQL y Three.js. Publicamos su código, su modelo de datos y sus manuales para que cualquier ciudad o institución pueda montar su propio sistema estadístico sobre esta base.
¿Qué se comparte y cómo usarlo?
Esta página es el README de la plataforma: funciona como portada de la documentación open source y se mantiene al día porque sus métricas se calculan sobre el código que corre en el servidor oficial, no sobre una copia congelada.
Documentación del código
Cada módulo del repositorio explicado: qué hace, quién lo usa y con qué se conecta — del núcleo Django hasta los asistentes de carga.
Manuales de operación
Guías paso a paso para instalar, cargar datos, operar los módulos, respaldar y desplegar la plataforma en producción.
Modelo de datos abierto
El esquema completo de la base de datos, introspectado en vivo desde el ORM, se explora como diagrama interactivo en /modelo/.
Arquitectura de la plataforma
Una aplicación monolítica modular: un solo despliegue fácil de operar desde una institución pública, con módulos internos desacoplados por carpeta.
Backend · Python + Django
ORM, admin y vistas modulares (views_*.py). Cada módulo de negocio — recolección, validación, editorial, satisfacción, taller — vive en su propio archivo.
Base de datos · PostgreSQL
Esquema versionado con 109 migraciones Django. Núcleo estadístico, catálogo SDMX, ICED y taller del ecosistema conviven con relaciones explícitas.
Frontend · HTML + CSS + JS
Plantillas Django con Tailwind CSS, Font Awesome y Chart.js para los gráficos oficiales. Sin frameworks de cliente: la página funciona sin pasos de compilación.
3D · Three.js
La Maquila de Datos (presentación), la navegación 3D del catálogo y los gráficos interactivos con Don Datico volando entre los datos (modelo GLB animado por rig).
IA · Transformers + embeddings
El asistente Don Datico responde en lenguaje natural sobre indicadores y conjuntos de datos; la ingesta detecta esquemas de archivo automáticamente.
Infraestructura · Whitenoise + WSGI
Estáticos servidos por Whitenoise (en producción vía collectstatic), aplicación desplegable con gunicorn sin configurar un servidor de estáticos aparte.
El código, archivo por archivo
El repositorio en su orden natural: primero el andamiaje del proyecto, luego el modelo de datos, las vistas por módulo, los formularios y asistentes, y las utilidades de soporte.
Núcleo del proyecto
manage.py— utilitario de línea de comandos de Django: migraciones, servidor de desarrollo, shell y comandos de administración.myproject/settings.py— configuración: base de datos PostgreSQL, estáticos con Whitenoise, modo DEBUG por entorno, correo y prefijo de despliegue.myproject/urls.py— enrutador raíz: delega enindicadores/urls.pyy en el admin de Django.myproject/wsgi.py·asgi.py— puntos de entrada para gunicorn/uWSGI en producción.requirements-base.txt— dependencias mínimas para operar la plataforma en desarrollo.requirements-production.txt— dependencias del servidor de producción.requirements-ml.txt— dependencias de IA (modelos de lenguaje y embeddings) para el asistente Don Datico.
Modelo de datos (ORM)
models.py— el núcleo estadístico: Dominio, Tema, Subtema, Indicador, Gráfico, Dato, Desagregación, Organismo, Menú de dominios, conjuntos de datos y microdatos, noticias, eventos, productos educativos y académicos, satisfacción y calendario de difusión.models_catalogo.py— metadatos del catálogo de datos: dominios y fuentes de referencia (estándar SDMX).models_iced.py— módulo ICED: operaciones, variables y subíndices del índice de capacidades estadísticas.models_taller.py— taller del ecosistema: organismos, asistentes y sesiones del wizard de censo.migrations/— 109 migraciones que versionan el esquema PostgreSQL: instalar la plataforma es ejecutarmigrate.
Vistas por módulo
views.py— el portal público: home, dominios/temas/subtemas, fichas de indicadores, gráficos, explorador de conjuntos, visor comparativo, API abierta, páginas 3D, presentación y modelo de datos.views_import.py— ingesta asistida de conjuntos de datos y microdatos.views_recoleccion.py— operación estadística de campo (módulo de recolección).views_validacion.py— control de calidad y validación de datos.views_editorial.py— línea editorial: noticias, eventos y productos académicos.views_delegado.py— módulo delegado: gestión por organismo.views_satisfaccion.py— módulo de satisfacción: encuestas de experiencia de usuario.views_taller.py— taller del ecosistema: wizard del censo de organismos, dashboard y metodología.views_educativos.py— contenidos educativos interactivos: secciones, quizzes y progreso por usuario.views_iced.py— cálculo y visualización del índice ICED.views_catalogo.py— catálogo de datos y explorador de conjuntos.views_chat.py— Don Datico: asistente de IA que responde en lenguaje natural sobre indicadores y datos.views_chat_config.py— administración del asistente: intenciones, respuestas y umbrales.views_monitoring.py— monitoreo del sistema: salud y uso de la plataforma.
Formularios
forms_grafico.py— alta y edición de gráficos e indicadores.forms_import.py— pasos de la ingesta de conjuntos de datos.forms_recoleccion.py— operación estadística de campo.forms_satisfaccion.py— encuestas de satisfacción.forms_editorial.py— noticias, eventos y productos.forms_taller.py— censo y prediagnóstico del taller.forms_iced.py— módulo ICED.forms_chat_config.py— configuración del asistente.
Asistentes de carga (wizards)
wizard_admin_unificado.py— wizard unificado de administración: guía al usuario paso a paso (fuente → esquema → datos).wizard_parsers.py— lectura de CSV/Excel y normalización de columnas.wizard_helpers.py— utilidades comunes de los asistentes.wizard_taller.py— wizard del censo de organismos del taller del ecosistema.wizard_unificado_forms.py·utils_wizard.py— formularios y utilidades del wizard unificado.
Utilidades y soporte
admin.py·admin_eventos.py— registro del admin de Django para todo el modelo de datos.apps.py— configuración de la aplicación Django.middleware.py— middleware propio de la plataforma.context_processors.py— variables globales disponibles en todas las plantillas.background.py— tareas en segundo plano.cache_utils.py— utilidades de caché para consultas frecuentes.calcular_iced.py— motor de cálculo del índice ICED.chat_config.py·embeddings.py— configuración semántica y vectores de búsqueda del asistente.catalogo_datalake.py— puente con el datalake institucional.data_validation.py·schema_detection.py— validación de datos y detección automática de esquemas de archivo.decorators.py— decoradores de acceso (equipo estadístico, staff).notifications.py— notificaciones internas.procesamiento_normalizado.py— normalización de series de datos.search.py— búsqueda en el catálogo y los contenidos.utils.py— utilidades generales transversales.templatetags/·management/commands/— filtros de plantilla propios y comandos de mantenimiento.
Frontend 3D y estáticos
templates/indicadores/presentacion.html— La Maquila de Datos: presentación 3D de la fábrica de datos del SIIED (línea de tiempo con actos, máquinas y Don Daticos operarios).templates/indicadores/subtema_detalle_3d.html— visualización 3D interactiva de los gráficos con Don Datico volador y modos de juego por tipo de gráfico.templates/indicadores/dominios_3d.html·dominio_detalle_3d.html·tema_detalle_3d.html— navegación tridimensional del catálogo de dominios y temas.templates/indicadores/modelo_datos.html— el diagrama interactivo del ORM al que enlaza esta documentación.static/indicadores/js·css— librerías y estilos del frontend (Three.js, Chart.js, utilidades).static/indicadores/models/dondaticolite.glb— el modelo 3D real de Don Datico (esqueleto animado: vuelo estacionario y en movimiento).static/indicadores/audio/— ambiente sonoro de las páginas 3D (ambiente de Cali, recolección).media/— archivos cargados en operación (microdatos, documentos, imágenes).
Plantillas HTML
233 plantillas organizadas por módulo funcional (el conteo de cada carpeta se calcula en vivo):
templates/indicadores/
Portal público: dominios, fichas de indicadores, gráficos, páginas 3D, presentación y modelo de datos
templates/admin/
Personalización del admin de Django para el equipo estadístico
templates/editorial/
Línea editorial: noticias, eventos y productos académicos
templates/recoleccion/
Operación estadística de campo
templates/delegado/
Módulo delegado por organismo
templates/taller/
Taller del ecosistema: wizard del censo, dashboard y metodología
templates/reportes/
Informes y reportes
templates/validacion/
Control de calidad de los datos
templates/satisfaccion/
Encuestas de satisfacción
templates/tecnico/
Plantillas de la aplicación
templates/workspace/
Área de trabajo interna
Manuales de operación
Cómo se instala, opera y mantiene la plataforma — del entorno del desarrollador al servidor de producción.
1 · Instalación para desarrolladores
- Clonar el repositorio (GitHub: próximamente) o solicitar el código al Sistema Estadístico Distrital.
python -m venv venv, activarlo e instalarrequirements-base.txt(yrequirements-ml.txtpara el asistente de IA).- Crear la base PostgreSQL y registrar el acceso en
myproject/settings.py. python manage.py migrate→createsuperuser→runserver.
2 · Carga de datos e indicadores
- Ingresar al asistente de ingesta con cuenta del equipo estadístico.
- Subir el archivo (CSV/Excel):
schema_detection.pypropone el esquema. - Mapear dominio → tema → subtema → indicador y completar la ficha técnica.
- Publicar: el gráfico aparece en el portal con sus desagregaciones y descargables.
3 · Publicación editorial
- Noticias, eventos y productos académicos desde el módulo editorial o el admin.
- El calendario de difusión programa su publicación en portada.
- Los banners del home toman automáticamente las últimas noticias activas.
4 · Módulos de operación
- Recolección — operación estadística de campo.
- Validación — control de calidad de los datos.
- Delegado — gestión por organismo.
- Satisfacción — encuestas de experiencia de usuario.
- Taller del ecosistema — censo y prediagnóstico de organismos (DADII).
5 · Asistente Don Datico
- Chat en lenguaje natural sobre indicadores y conjuntos de datos.
- Motor:
views_chat.py+embeddings.py; administración enviews_chat_config.py. - Modelos de lenguaje según
requirements-ml.txt.
6 · Respaldos y mantenimiento
- Respaldo de la base con
pg_dump. - Respaldar
media/(archivos cargados) ysentence_models/(modelos IA). - Al actualizar el código:
python manage.py migratey revisar las migraciones nuevas.
7 · Despliegue a producción
DEBUG = FalseyALLOWED_HOSTSenmyproject/settings.py.python manage.py collectstatic: Whitenoise sirve todo desdestaticfiles/.- Servir con gunicorn desde
myproject.wsgi. - Verificar los estáticos pesados:
models/*.glbyaudio/de las páginas 3D.
8 · Páginas de divulgación
/presentacion/— La Maquila de Datos: el show 3D con su línea de tiempo y controles de reproducción./modelo/— el diagrama interactivo del modelo de datos./dominios-3d/— navegación tridimensional del catálogo.- Las páginas 3D de cada subtema incluyen modo de juego con Don Datico.
El modelo de la base de datos
El esquema completo se explora como diagrama interactivo — introspectado en vivo desde el ORM, con búsqueda, filtros por familia y el detalle de cada tabla. Las cuatro familias del modelo:
Núcleo SIIED
Dominios, temas, subtemas, indicadores, gráficos, datos, desagregaciones, organismos, conjuntos y microdatos.
Catálogo de datos
Metadatos SDMX: fuentes, series y dominios de referencia.
ICED
Operaciones, variables y subíndices del índice de capacidades.
Taller Ecosistema
Censo de organismos, asistentes y sesiones del taller (DADII).
Repositorio público en GitHub
El código completo de la plataforma se publicará en un repositorio abierto acompañado de esta documentación, su licencia de software libre y las guías de contribución. Mientras tanto, esta página documenta el código exactamente como corre en el servidor oficial del SIIED.
Enlace · próximamente
sistemaestadistico@cali.gov.co · Subdirección de Desarrollo Integral — Sistema Estadístico Distrital · Alcaldía de Santiago de Cali