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.

Todos los datos del proyecto Transporte Tijuana se publican como archivos estáticos servidos directamente por la aplicación Next.js. No se requiere API key, token de autenticación ni registro previo para acceder a ellos. Los archivos están disponibles en dos rutas públicas: /data/ para los JSON de operación y /downloads/ para los archivos de descarga masiva.
Estos archivos son activos estáticos incluidos en el build de Next.js (public/data/ y public/downloads/). Se sirven desde el CDN de Vercel con cabeceras de caché estándar. No existe ningún endpoint de API dinámico — una petición GET a la URL es suficiente para obtener el archivo completo.

Archivos disponibles

paradas.json

Lista de todas las paradas de las rutas piloto con sus coordenadas y metadatos de operación. URL pública:
https://transporte-unrc.vercel.app/data/paradas.json
Estructura del documento:
{
  "meta": {
    "persistEditorStops": true,
    "source": "sqlite"
  },
  "stops": [ ...array de paradas... ]
}
Cada objeto en el array stops expone los siguientes campos tras la sanitización del servidor:
id
string
required
Identificador único de la parada. Formato: PARADA-M-{timestamp}. Ejemplo: "PARADA-M-1775431175287".
name
string
required
Nombre descriptivo de la parada con referencia geográfica. Ejemplo: "01 Calzapato Carrousel".
lat
number
required
Latitud WGS-84 del punto de parada. Ejemplo: 32.49661292537429.
lng
number
required
Longitud WGS-84 del punto de parada. Ejemplo: -116.96284946188071.
route_id
string
required
ID de la ruta piloto a la que pertenece esta parada. Valores posibles: "route-la-mesa-unrc-001" o "route-centro-unrc-001".
turno
string
required
Turno de mayor demanda en esta parada. Valores: "Matutino", "Intermedio", "Vespertino" o "Manual" (parada de servicio sin turno asignado).
dias_raw
string
required
Días de operación de la parada en texto libre. Valores típicos: "Lunes a Miercoles", "Jueves a Sabado", "Todos los días", "Manual".
active
number
required
Flag de visibilidad pública. Solo las paradas con active: 1 son expuestas por el servidor y aparecen en el mapa. Las paradas inactivas (active: 0) no se incluyen en la respuesta del cliente.
El campo student_count existe en el archivo fuente interno pero no se expone al cliente. El servidor descarta este campo durante la sanitización para no revelar cuántos estudiantes están asociados a cada parada.

custom_routes.json

Definición de los trazados GeoJSON de las dos rutas piloto. URL pública:
https://transporte-unrc.vercel.app/data/custom_routes.json
El archivo es un array JSON de objetos de ruta. Cada ruta tiene los siguientes campos:
id
string
required
Identificador único de la ruta. Valores: "route-la-mesa-unrc-001" y "route-centro-unrc-001".
name
string
required
Nombre legible de la ruta. Ejemplos:
  • "La Mesa → UNRC vía Camino Verde"
  • "Centro → UNRC vía Corredor 2000"
description
string
Descripción de la ruta con información de distancia y tiempo estimado. Ejemplos:
  • "Blvd. Díaz Ordaz (La Mesa) → Lomas del Valle → Camino Verde → UNRC. 37.3 km, ~59 min."
  • "Av. Constitución (Centro) → Blvd. Paseo de los Héroes → Corredor 2000 → UNRC. 39.9 km, ~72 min."
color
string
required
Color hexadecimal para renderizar la ruta en el mapa. Naranja (#ff9500) para La Mesa; azul (#0011ff) para Centro.
points
array
required
Array de coordenadas [lat, lng] que definen el trazado de la ruta. El mapa convierte estos pares a [lng, lat] antes de pasarlos a MapLibre GL JS como LineString. La ruta La Mesa tiene más de 500 puntos; la ruta Centro supera los 600 puntos.
Ejemplo de elemento:
{
  "id": "route-la-mesa-unrc-001",
  "name": "La Mesa → UNRC vía Camino Verde",
  "description": "Blvd. Díaz Ordaz (La Mesa) → Lomas del Valle → Camino Verde → UNRC. 37.3 km, ~59 min.",
  "color": "#ff9500",
  "points": [
    [32.496628, -116.962863],
    [32.496492, -116.962629]
  ]
}

summary.json

Archivo maestro de métricas, series estadísticas, sugerencias y metadatos del proyecto. URL pública:
https://transporte-unrc.vercel.app/data/summary.json
Este archivo es el más completo. Su estructura de alto nivel es:
interface SummaryPayload {
  siteUrl: string;
  generatedAt: string;           // ISO 8601 timestamp
  recipientInstitution: string;
  reportTitle: string;
  author: { name: string; email: string };
  hosting: { brand: string; url: string; logo: string; label: string };
  downloads: { pdf: string; csv: string };
  metrics: {
    totalResponses: number;      // 192
    geolocated: number;          // 190
    geolocatedPct: number;       // 98.96
    comments: number;            // 146
    commentsPct: number;         // 76.04
    uniqueColonias: number;      // 70
    topTurno: string;            // "Matutino"
    topColonia: string;          // "Natura"
  };
  series: {
    turnos: SeriesRow[];
    dias: SeriesRow[];
    colonias: SeriesRow[];
  };
  suggestions: {
    totalComments: number;
    themes: Array<{ label: string; count: number; percentage: number }>;
    fareSummary: string;
    topFareValues: Array<{ value: number; count: number }>;
    wordCloud: Array<{ text: string; count: number; weight: number }>;
    highlights: Array<{ text: string; colonia: string; turno: string }>;
  };
  methodology: string[];
  map: { count: number; center: [number, number] };
}

interface SeriesRow {
  Categoria: string;
  Cantidad: number;
  Porcentaje: number;
}
Ejemplo de uso en JavaScript:
const res = await fetch('https://transporte-unrc.vercel.app/data/summary.json');
const summary = await res.json();

console.log(summary.metrics.totalResponses); // 192
console.log(summary.metrics.topColonia);     // "Natura"
console.log(summary.metrics.geolocatedPct); // 98.96

// Iterar sobre colonias más frecuentes
summary.series.colonias.forEach(row => {
  console.log(`${row.Categoria}: ${row.Cantidad} estudiantes (${row.Porcentaje.toFixed(1)}%)`);
});

// Ver temas de sugerencias
summary.suggestions.themes.forEach(theme => {
  console.log(`${theme.label}: ${theme.count} menciones`);
});

map_points.json

Puntos geocodificados en formato MapPayload para renderizar el mapa de calor de demanda. URL pública:
https://transporte-unrc.vercel.app/data/map_points.json
Estructura:
interface MapPayload {
  generatedAt: string;
  center: [number, number];                           // [32.464653, -116.924751]
  focusBounds: [[number, number], [number, number]];  // [[latMin, lngMin], [latMax, lngMax]]
  points: PublicPoint[];                              // 190 elementos
}

interface PublicPoint {
  punto_id: string;
  colonia: string;
  turno: string;
  dias: string;
  licenciatura: string;
  lat_publica: number;    // coordenada con jitter aplicado
  lon_publica: number;    // coordenada con jitter aplicado
  fuente_coordenada_publica: string;
  sugerencia_publica: string;
}
Las coordenadas lat_publica y lon_publica de este archivo no son las ubicaciones reales de los domicilios. El pipeline de Python aplica un desplazamiento aleatorio determinista (jitter) de pocos metros a cada punto antes de publicar, de modo que el mapa muestre la densidad geográfica correctamente sin revelar la dirección exacta de ningún estudiante.

Archivos de descarga

reporte-demanda-transporte.pdf

El reporte imprimible completo del estudio, generado automáticamente con fpdf2 y matplotlib desde los datos procesados por Python. URL de descarga:
https://transporte-unrc.vercel.app/downloads/reporte-demanda-transporte.pdf
Contenido del PDF:
  • Portada con logo de la UNRC y datos del autor
  • Métricas clave de la encuesta
  • Gráficas de distribución (turnos, días, colonias)
  • Diseño de las dos rutas piloto con mapas estáticos
  • Resumen de sugerencias y propuestas de tarifa
  • Código QR que apunta al mapa interactivo en transporte-unrc.vercel.app

public_points.csv

Dataset de puntos geocodificados anónimos en formato CSV, pensado para análisis externos en Excel, Python, R o herramientas GIS. URL de descarga:
https://transporte-unrc.vercel.app/downloads/public_points.csv
Las columnas corresponden a los campos de PublicPoint (punto_id, colonia, turno, dias, licenciatura, lat_publica, lon_publica, fuente_coordenada_publica, sugerencia_publica). Al igual que en map_points.json, las coordenadas llevan jitter aplicado.

Ejemplo completo: consumir los datos

// Obtener métricas del estudio
const res = await fetch('https://transporte-unrc.vercel.app/data/summary.json');
const summary = await res.json();
console.log(summary.metrics.totalResponses); // 192

// Obtener paradas de una ruta específica
const paradasRes = await fetch('https://transporte-unrc.vercel.app/data/paradas.json');
const { stops } = await paradasRes.json();
const laMesa = stops.filter(s => s.route_id === 'route-la-mesa-unrc-001' && s.active);
console.log(`Paradas La Mesa: ${laMesa.length}`); // 28

Resumen de URLs

ArchivoURLTipo
paradas.jsonhttps://transporte-unrc.vercel.app/data/paradas.jsonJSON
custom_routes.jsonhttps://transporte-unrc.vercel.app/data/custom_routes.jsonJSON
summary.jsonhttps://transporte-unrc.vercel.app/data/summary.jsonJSON
map_points.jsonhttps://transporte-unrc.vercel.app/data/map_points.jsonJSON
PDF reportehttps://transporte-unrc.vercel.app/downloads/reporte-demanda-transporte.pdfPDF
CSV puntoshttps://transporte-unrc.vercel.app/downloads/public_points.csvCSV

Build docs developers (and LLMs) love