!
Arquitectura e implementación
De 4 PDF oficiales del gobierno bonaerense a una tabla de horarios navegable: descarga, parsing y modelo de datos detrás de Lanchas.
Ministerio de Infraestructura (GBA)
4 PDF publicados por el gobierno bonaerense, mismo motor de generación
LINEA_450.pdf · LINEA_451.pdf · LINEA_452.pdf · LINEA_453.pdf
LA APP DESCARGA
- Jilguero (450), Interisleña (451+452 combinada) y Delta Argentino (453)
- Hash SHA-256 por archivo — combinado para el par 451/452 — para detectar cambios reales
Un motor común, 3 parsers
Los 3 PDF comparten layout — BaseGobiernoParser extrae, cada parser solo ajusta lo propio
Consistencia entre fuentes
Cada ajuste sigue un criterio explícito y documentado, no una inferencia automática
Django ORM — PostgreSQL
Sin cache de archivos: los horarios se normalizan y persisten en modelos reales
Tecnologías aplicadas
ORM, views, service layer y management commands.
Extracción de tablas por coordenadas, no texto plano.
Mismo motor en dev y prod, vía DATABASE_URL.
Acordeón de líneas, buscador y filtros, sin dependencias.
Favoritos 100% client-side, sin cuentas ni sesión.
Temas Día / Noche en tiempo real.
Management commands
Actualización y validación del catálogo sin depender de la interfaz web.
lanchas_inicializar
Crea Empresa/Línea en la base — se corre una sola vez.
lanchas_descargar_pdfs [--linea N]
Descarga los PDF oficiales del gobierno.
lanchas_parsear_pdfs [--linea N] [--forzar]
Parsea y carga los horarios en la base.
lanchas_actualizar [--linea N] [--forzar]
Descarga + parseo en un solo paso — cron semanal.
lanchas_validar
Chequeo de integridad del catálogo cargado.
lanchas_listar [--empresa] [--via]
Exploración rápida de los datos cargados.