Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/JuanM84/gestor-visitas/llms.txt

Use this file to discover all available pages before exploring further.

El sistema ofrece cinco tipos de exportación en formato PDF, generados en el servidor mediante puppeteer-core con @sparticuz/chromium en modo headless. Todos los PDFs se descargan directamente al navegador del usuario sin necesidad de abrir una nueva pestaña. Cada tipo de exportación tiene un endpoint dedicado, un nombre de archivo predefinido y un punto de acceso específico en la interfaz.

Tipos de exportación disponibles

Cronograma Diario

Genera el cronograma completo de visitas de un día específico en formato de tabla. Incluye todos los grupos activos ordenados por horario con sus datos de gestor, grupo, tipo, cantidad de personas y estado.

Reporte Mensual

Consolida todas las visitas del mes y año indicados en un documento PDF. Incluye resumen de KPIs (visitas totales, personas, cruces, cancelaciones) y el listado detallado.

Reporte por Rango

Genera un listado de visitas para cualquier rango de fechas personalizado. Útil para informes periódicos que no coinciden con un mes calendario.

Comprobante de Visita

Comprobante individual de una visita registrada. Incluye todos los datos de la reserva: turno, gestor, grupo, institución, accesibilidad y estado. Se descarga automáticamente al confirmar el registro.

Informe Estadístico

Informe estadístico personalizable con secciones seleccionables de gráficos y rankings. Disponible exclusivamente para el rol Admin. Formato A4 horizontal.

Detalle de cada exportación

1. Cronograma Diario

Accede al botón de impresora (ícono print) en la barra superior del Dashboard Operativo (/dashboard).
ParámetroDescripción
EndpointGET /api/estadisticas/exportar/diario?fecha=YYYY-MM-DD
Archivo descargadoCronograma_YYYY-MM-DD.pdf
Rol requeridoGuía o Admin
El PDF incluye el cronograma completo del día con todos los grupos activos (excluye canceladas) ordenados por horario de inicio.

2. Reporte Mensual

Accede al botón “Exportar Mensual” en la barra de herramientas del Dashboard de Estadísticas (/estadisticas), junto al selector de mes y año.
ParámetroDescripción
EndpointGET /api/estadisticas/exportar?anio=YYYY&mes=MM
Archivo descargadoReporte_MM_YYYY.pdf (p. ej.: Reporte_4_2025.pdf)
Rol requeridoGuía o Admin
El botón “Exportar Mensual” está ubicado en /estadisticas, ruta a la que solo pueden acceder usuarios con rol Admin. Sin embargo, el endpoint GET /api/estadisticas/exportar en sí mismo acepta cualquier token válido; la restricción es de navegación UI, no de API.

3. Reporte por Rango de Fechas

Accesible desde dos lugares en la interfaz:
  • Calendario (/calendario): botón “Imprimir Listado” en la barra superior → modal de selección de rango → “Descargar PDF”.
  • Dashboard de Estadísticas (/estadisticas): dentro del modal “Consultar Rango”, botón “Exportar PDF” que aparece después de consultar las estadísticas del rango.
ParámetroDescripción
EndpointGET /api/estadisticas/exportar/rango?desde=YYYY-MM-DD&hasta=YYYY-MM-DD
Archivo descargadoReporte_Visitas_YYYY-MM-DD_a_YYYY-MM-DD.pdf
Rol requeridoGuía o Admin
La fecha desde debe ser estrictamente anterior a la fecha hasta. El frontend valida esto antes de enviar la petición. Si las fechas son iguales o el orden es incorrecto, se muestra un mensaje de error y no se realiza la llamada al servidor.

4. Comprobante de Visita Individual

El comprobante se genera en dos situaciones:
  1. Automáticamente al registrar una nueva visita: al confirmar el formulario de registro, el sistema descarga el comprobante sin acción adicional del usuario.
  2. Manualmente desde el detalle: en la página /visitas/:id, el botón “Imprimir comprobante” permite re-descargar el documento en cualquier momento posterior.
ParámetroDescripción
EndpointGET /api/estadisticas/exportar/visita/:id
Archivo descargadoComprobante_visita_DD-MM-AAAA.pdf (fecha formateada como DD-MM-AAAA)
Rol requeridoGuía o Admin
El comprobante incluye: número de visita, fecha y hora del turno, tipo de visita, nombre del grupo, datos del gestor, institución educativa (si aplica), nivel educativo o tipo de grupo, cantidad de personas, indicadores de accesibilidad y cruce de túnel, y estado de la visita.

5. Informe Estadístico Personalizado

Accede desde el menú de navegación → “Confección de Informes” (/informes). Esta pantalla permite generar un informe PDF A4 horizontal con secciones estadísticas seleccionables.
El informe estadístico es exclusivo para el rol Admin. Los usuarios con rol Guía no tienen acceso a la ruta /informes. El endpoint también requiere un token de administrador; el servidor responde 403 Forbidden para tokens de rol Guía.
ParámetroDescripción
EndpointGET /api/estadisticas/exportar/informe?desde=YYYY-MM-DD&hasta=YYYY-MM-DD&titulo=...&secciones=...
Archivo descargado{Titulo_personalizado}.pdf (si se ingresó título) o Informe_DD/MM/AAAA_-_DD/MM/AAAA.pdf / Informe_DD/MM/AAAA_-_DD/MM/AAAA_-_Instituciones.pdf (si no hay título)
Rol requeridoAdmin

Parámetros del informe

Query paramObligatorioDescripción
desdeFecha de inicio del período en formato YYYY-MM-DD
hastaFecha de fin del período en formato YYYY-MM-DD
tituloTítulo personalizado del informe. Si se omite, se genera automáticamente como Informe DD/MM/AAAA - DD/MM/AAAA (o con sufijo - Instituciones para la pestaña Instituciones).
seccionesLista de claves separadas por coma. Al menos una sección debe estar seleccionada.

Secciones del informe (pestaña Geográficas)

ClaveTítulo en PDFContenido
nacionalesVisitantes NacionalesGráfico de barras horizontales con visitantes por provincia argentina
extranjerosVisitantes ExtranjerosGráfico de barras con visitantes de países distintos a Argentina
entreriosVisitantes de Entre RíosDetalle por localidades de la provincia de Entre Ríos
santafeVisitantes de Santa FeDetalle por localidades de la provincia de Santa Fe

Secciones del informe (pestaña Instituciones)

ClaveTítulo en PDFContenido
inst_nacionalesInstituciones NacionalesVisitantes de instituciones agrupados por provincia de origen
inst_nivelesNiveles EducativosVisitantes de instituciones desglosados por nivel educativo
inst_entreriosEntre Ríos (Localidades)Visitantes de instituciones según localidades de Entre Ríos
inst_santafeSanta Fe (Localidades)Visitantes de instituciones según localidades de Santa Fe
inst_crucesCruces de TúnelLista de visitas institucionales que realizaron el cruce de túnel
Si el informe es de tipo “Instituciones” y el título personalizado no termina con ”- Instituciones”, el sistema agrega ese sufijo automáticamente para distinguir ambos tipos de informe en el nombre del archivo descargado.

Generación de PDF en el servidor

Todos los PDFs son generados en el servidor usando puppeteer-core con @sparticuz/chromium. Esto garantiza que el documento tenga el mismo aspecto independientemente del navegador o sistema operativo del usuario.
El proceso de generación es completamente transparente para el usuario: el botón de exportación muestra un indicador de carga (progress_activity giratorio) mientras el servidor genera el archivo. Una vez listo, el blob se descarga directamente mediante la API de URL.createObjectURL() sin intermediarios.
El flujo técnico de descarga es idéntico en todos los tipos de exportación:
// Patrón de descarga usado en todos los componentes de exportación
const res = await fetch(endpoint, { headers: { Authorization: `Bearer ${token}` } });
if (!res.ok) throw new Error('Error al generar el PDF');
const blob = await res.blob();
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = nombreArchivo;
a.click();
URL.revokeObjectURL(url); // Liberar memoria

Build docs developers (and LLMs) love