Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/danitocsc/transporte-unrc-web-public/llms.txt

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

El sitio de Transporte Tijuana sirve todos sus datos de transparencia como archivos JSON estáticos desde el directorio /public/data/. Estos archivos son generados por scripts de procesamiento fuera de línea y luego desplegados como parte del build. No requieren autenticación para accederse y pueden ser consumidos directamente desde cualquier cliente HTTP.
Las coordenadas geográficas expuestas en todos los archivos públicos aplican un desplazamiento aleatorio determinista (jitter) para proteger la privacidad de los estudiantes encuestados. Los puntos publicados representan ubicaciones aproximadas, no exactas, del domicilio de origen de cada respondiente.

/data/paradas.json

Este archivo contiene el catálogo de paradas de autobús propuestas para las rutas estudiantiles. La página mapa-demanda del sitio carga este archivo en el servidor y filtra únicamente las paradas con active: true (valor 1) antes de enviarlas al cliente. El archivo sigue la estructura:
{
  "meta": { ... },
  "stops": [ ... ]
}
La clave raíz stops es un arreglo de objetos de parada. La clave meta contiene metadatos de configuración del editor de paradas y no forma parte del esquema público expuesto al cliente.

Ejemplo de fetch

const res = await fetch('/data/paradas.json');
const { stops } = await res.json();
const activeStops = stops.filter(s => s.active === 1);

Esquema de cada parada (stops[])

id
string
required
Identificador único de la parada. Formato: PARADA-M-{timestamp}. Ejemplo: "PARADA-M-1775427630157".
name
string
required
Nombre legible de la parada para mostrar en el mapa. Ejemplo: "02 Paseo del Centenario".
lat
number
required
Latitud de la parada en grados decimales WGS-84. Ejemplo: 32.53682901475021.
lng
number
required
Longitud de la parada en grados decimales WGS-84. Ejemplo: -117.02453541595848.
route_id
string
required
Identificador de la ruta a la que pertenece esta parada. Hace referencia al campo id de custom_routes.json. Valores actuales: "route-centro-unrc-001" o "route-la-mesa-unrc-001".
turno
string
required
Turno académico al que está orientada esta parada. Valores posibles: "Matutino", "Intermedio", "Vespertino", "Manual".
dias_raw
string
required
Días de operación de la parada en texto libre. Valores observados: "Lunes a Miercoles", "Jueves a Sabado", "Todos los días", "Manual".
active
number
required
Indicador de si la parada está activa. 1 = activa, 0 = inactiva. La página mapa-demanda solo renderiza paradas con active === 1.
stop_number
null
Campo reservado para numeración secuencial de paradas. Actualmente null en todos los registros.
student_count
number
required
Número de estudiantes encuestados cuya ubicación de origen se aproxima a esta parada. Valor de referencia para planificación de capacidad.

/data/custom_routes.json

Este archivo define las rutas de transporte propuestas como polilíneas geográficas. La página de mapa del sitio carga este arreglo para dibujar cada ruta sobre el mapa Leaflet con su color correspondiente. El archivo es un arreglo JSON raíz (no un objeto envolvente):
[
  { "id": "route-la-mesa-unrc-001", ... },
  { "id": "route-centro-unrc-001", ... }
]

Ejemplo de fetch

const res = await fetch('/data/custom_routes.json');
const routes = await res.json();
routes.forEach(route => {
  console.log(route.id, route.color, route.points.length);
});

Rutas actuales

idnamecolorDescripción
route-la-mesa-unrc-001La Mesa → UNRC vía Camino Verde#ff9500Blvd. Díaz Ordaz (La Mesa) → Lomas del Valle → Camino Verde → UNRC. 37.3 km, ~59 min.
route-centro-unrc-001Centro → UNRC vía Corredor 2000#0011ffAv. Constitución (Centro) → Blvd. Paseo de los Héroes → Corredor 2000 → UNRC. 39.9 km, ~72 min.

Esquema de cada ruta

id
string
required
Identificador único de la ruta. Ejemplos: "route-la-mesa-unrc-001", "route-centro-unrc-001".
name
string
required
Nombre legible de la ruta para mostrar en la leyenda del mapa.
description
string
required
Descripción del recorrido incluyendo vialidades principales, distancia aproximada y tiempo estimado de viaje.
color
string
required
Color hexadecimal para la polilínea en el mapa. Ejemplo: "#ff9500".
visible
boolean
required
Indica si la ruta debe mostrarse por defecto al cargar el mapa. true en todas las rutas actuales.
points
array
required
Arreglo de coordenadas que define la geometría de la ruta. Cada elemento es un par [lat, lng] en formato numérico. El arreglo puede contener varios cientos de puntos para rutas largas.

/data/summary.json

Este archivo contiene el reporte completo de métricas y análisis de la encuesta de demanda estudiantil. Es el JSON principal que alimenta la página de reporte público del sitio. Su estructura sigue la interfaz SummaryPayload definida en web/types/transport.ts.

Ejemplo de fetch

const res = await fetch('/data/summary.json');
const summary = await res.json();

console.log(summary.metrics.totalResponses);  // 192
console.log(summary.metrics.topColonia);       // "Natura"
console.log(summary.series.turnos[0]);         // { Categoria: "Matutino", Cantidad: 96, Porcentaje: 50 }

Esquema completo (SummaryPayload)

recipientInstitution
string
required
Nombre de la institución destinataria del reporte. Ejemplo: "Universidad Nacional Rosario Castellanos Unidad Tijuana".
reportTitle
string
required
Título del reporte. Ejemplo: "Reporte de demanda de transporte estudiantil".
generatedAt
string
required
Fecha y hora de generación del archivo en formato ISO 8601 con zona horaria. Ejemplo: "2026-04-06T08:20:24.869905+00:00".
siteUrl
string
required
URL pública del sitio de transparencia. Ejemplo: "https://transporte.tijuana.cloud".
qrUrl
string
required
URL incluida en el código QR del reporte impreso. Actualmente coincide con siteUrl. Ejemplo: "https://transporte.tijuana.cloud".
institution
string
required
Nombre corto de la institución. Ejemplo: "Universidad Nacional Rosario Castellanos".
reportSubtitle
string
required
Subtítulo del reporte. Ejemplo: "Analisis territorial, operativo y de sugerencias estudiantiles".
author
object
required
Información del autor del reporte.
hosting
object
required
Información del proveedor de hosting del sitio.
methodology
string[]
required
Lista de notas metodológicas sobre el procesamiento de los datos. Describe las decisiones de anonimización, el tratamiento de coordenadas con jitter y qué información fue excluida de la publicación. Ejemplo de primer elemento: "La base original se conserva para analisis interno y la publicacion web solo usa datos anonimizados.".
downloads
object
required
Rutas a los archivos descargables del reporte.
metrics
object
required
Métricas agregadas de la encuesta de demanda.
map
object
required
Metadatos para la visualización del mapa de demanda.
series
object
required
Series de datos para las gráficas del reporte. Cada serie es un arreglo de objetos SeriesRow.
turnos
SeriesRow[]
required
Distribución de respuestas por turno académico. Categorías observadas: "Matutino", "Intermedio", "Vespertino", "Matutino (7:00 a 11:00)".
dias
SeriesRow[]
required
Distribución de respuestas por días de asistencia. Categorías observadas: "Lunes a Miercoles", "Jueves a Sabado", "Todos los días".
colonias
SeriesRow[]
required
Top de colonias de origen de los estudiantes encuestados, ordenadas por frecuencia descendente. Ejemplo de top 3: "Natura" (30), "Centro" (13), "Delicias" (13).
suggestions
object
required
Análisis de las sugerencias abiertas de los estudiantes.

/data/map_points.json

Este archivo contiene los puntos geocodificados anónimos de la encuesta, listos para renderizar en el mapa interactivo de demanda. Sigue la interfaz MapPayload de web/types/transport.ts. Las coordenadas de cada punto incluyen jitter para proteger la privacidad de los respondientes.

Ejemplo de fetch

const res = await fetch('/data/map_points.json');
const payload = await res.json();

console.log(payload.generatedAt);       // "2026-03-26T05:24:33.141747+00:00"
console.log(payload.center);            // [32.466224, -116.928478]
console.log(payload.points.length);     // 190
console.log(payload.points[0].colonia); // "Colinas de la Presa"

Esquema del archivo (MapPayload)

generatedAt
string
required
Fecha y hora de generación del archivo en formato ISO 8601. Ejemplo: "2026-03-26T05:24:33.141747+00:00".
center
[number, number]
required
Coordenadas del centro geográfico calculado para el mapa, como par [lat, lng]. Ejemplo: [32.466224, -116.928478].
focusBounds
[[number, number], [number, number]]
required
Límites del bounding box sugerido para el encuadre inicial del mapa. Formato: [[lat_sw, lng_sw], [lat_ne, lng_ne]]. Ejemplo: [[32.373491, -117.047167], [32.545445, -116.821759]].
points
PublicPoint[]
required
Arreglo de puntos anónimos geocodificados. Cada objeto sigue la interfaz PublicPoint.

/downloads/

El directorio /downloads/ expone dos archivos para descarga directa desde la página de reporte.
reporte-demanda-transporte.pdf
file
Reporte completo de demanda de transporte estudiantil en formato PDF. Incluye análisis territorial, gráficas de series, mapa de puntos y síntesis de sugerencias. Accesible en /downloads/reporte-demanda-transporte.pdf.
public_points.csv
file
Puntos geocodificados anónimos de la encuesta en formato CSV. Contiene las mismas columnas que los objetos PublicPoint del archivo map_points.json, en formato tabular para análisis en hojas de cálculo o SIG. Accesible en /downloads/public_points.csv.

Ejemplo de fetch de los archivos descargables

// Descargar el CSV de puntos públicos
const csvRes = await fetch('/downloads/public_points.csv');
const csvText = await csvRes.text();

// Descargar el PDF del reporte
const pdfRes = await fetch('/downloads/reporte-demanda-transporte.pdf');
const pdfBlob = await pdfRes.blob();
const pdfUrl = URL.createObjectURL(pdfBlob);

Build docs developers (and LLMs) love