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 sistema de Transporte Tijuana maneja varios tipos de datos que se mueven desde la encuesta original hasta la visualización pública. Esta página documenta cada interfaz TypeScript definida en web/types/transport.ts, así como las formas de objeto que se leen en tiempo de servidor para /mapa-demanda. Comprender estos esquemas es esencial para quienes deseen auditar la metodología, reutilizar los archivos JSON publicados, o contribuir al proyecto.

Tipos públicos

Los tipos públicos son los que se serializan en los archivos JSON dentro de web/public/data/ y se entregan al cliente. Ninguno de ellos contiene información de identificación personal.

Turno

Unión de cadena que representa los tres turnos académicos en UNRC Unidad Tijuana.
export type Turno = 'Matutino' | 'Intermedio' | 'Vespertino';
ValorDescripción
'Matutino'Turno de mañana
'Intermedio'Turno de medio día
'Vespertino'Turno de tarde

PublicPoint

Un punto de demanda anonimizado que representa la ubicación de origen de un estudiante. Las coordenadas publicadas han sido desplazadas aleatoriamente (jitter) respecto a la ubicación real para proteger domicilios exactos. Este tipo llena el arreglo points dentro de MapPayload.
export interface PublicPoint {
  punto_id: string;
  colonia: string;
  turno: string;
  dias: string;
  licenciatura: string;
  lat_publica: number;
  lon_publica: number;
  fuente_coordenada_publica: string;
  sugerencia_publica: string;
}
punto_id
string
required
Identificador único del punto. Generado durante el procesamiento Python; no corresponde a ninguna matrícula ni ID de estudiante.
colonia
string
required
Colonia de origen del estudiante, tal como fue normalizada durante el procesamiento. Ejemplo: "Natura", "Delicias", "Centro".
turno
string
required
Turno de asistencia declarado por el estudiante. Aunque puede contener cualquier cadena por legibilidad, los valores canónicos son "Matutino", "Intermedio" y "Vespertino" (ver tipo Turno).
dias
string
required
Días de asistencia a clases. Valores comunes: "Lunes a Miercoles", "Jueves a Sabado", "Todos los días".
licenciatura
string
required
Nombre de la carrera que cursa el estudiante, tal como fue capturado en la encuesta.
lat_publica
number
required
Latitud del punto de origen, desplazada aleatoriamente unos metros respecto a la coordenada real del domicilio. Rango aproximado para el área metropolitana de Tijuana: 32.3532.55.
lon_publica
number
required
Longitud del punto de origen, desplazada aleatoriamente. Rango aproximado: -117.10-116.80.
fuente_coordenada_publica
string
required
Fuente del proceso de geocodificación. Indica el proveedor utilizado para convertir la dirección a coordenadas (por ejemplo, "nominatim"), no la cadena de dirección original.
sugerencia_publica
string
required
Texto libre de la sugerencia del estudiante, tal como fue capturado en la encuesta. Puede estar vacío (""). Este campo se publica sin redacción adicional; los estudiantes enviaron sus propias palabras de forma voluntaria.

MapPayload

Carga útil completa del mapa de demanda. Se lee desde web/public/data/map_points.json mediante loadSiteData() y se pasa al componente DashboardMapLoader en el servidor.
export interface MapPayload {
  generatedAt: string;
  center: [number, number];
  focusBounds: [[number, number], [number, number]];
  points: PublicPoint[];
}
generatedAt
string
required
Fecha y hora en formato ISO 8601 en que se generó el archivo. Ejemplo: "2026-04-06T08:20:24.869905+00:00".
center
[number, number]
required
Coordenada central del mapa como tupla [lat, lng]. El mapa se inicializa centrado en este punto. Ejemplo real: [32.464653, -116.924751].
focusBounds
[[number, number], [number, number]]
required
Límites geográficos de interés como tupla de dos esquinas [[latSW, lngSW], [latNE, lngNE]]. Usado para ajustar el zoom inicial al área con datos.
points
PublicPoint[]
required
Arreglo de todos los puntos de demanda anonimizados. En la generación actual contiene 190 puntos (el 98.96 % de las 192 respuestas que pudieron ser geocodificadas).

SeriesRow

Fila de datos agregados para una categoría dentro de una serie estadística. Se usa en las tres series de SummaryPayload: turnos, días y colonias.
export interface SeriesRow {
  Categoria: string;
  Cantidad: number;
  Porcentaje: number;
  [key: string]: string | number;
}
Categoria
string
required
Etiqueta de la categoría. Ejemplos: "Matutino", "Lunes a Miercoles", "Natura".
Cantidad
number
required
Número absoluto de estudiantes que pertenecen a esta categoría.
Porcentaje
number
required
Porcentaje que representa esta categoría sobre el total de respuestas. Se calcula sobre metrics.totalResponses (192 en la generación actual).

SummaryPayload

Carga útil completa del reporte. Se lee desde web/public/data/summary.json. Es el objeto más rico del sistema y alimenta prácticamente toda la página /informe.
export interface SummaryPayload {
  recipientInstitution: string;
  reportTitle: string;
  generatedAt: string;
  author: { name: string; email: string; [k: string]: string };
  hosting: { brand: string; url: string; logo: string; label: string; [k: string]: string };
  downloads: { pdf: string; csv: string; [k: string]: string };
  metrics: { ... };
  map: { count: number; [k: string]: unknown };
  series: { turnos: SeriesRow[]; dias: SeriesRow[]; colonias: SeriesRow[]; [k: string]: SeriesRow[] };
  suggestions: { ... };
  [key: string]: unknown;
}

SuggestionWord y SuggestionHighlight

Tipos auxiliares para datos de nube de palabras y citas destacadas. Definidos en transport.ts; se usan para tipar los subarreglos wordCloud y highlights dentro de SummaryPayload.
export interface SuggestionWord {
  text: string;
  weight: number;
  [k: string]: string | number;
}

export interface SuggestionHighlight {
  text: string;
  colonia: string;
  turno: string;
  [k: string]: string;
}

Tipo interno (no público)

SurveyRecord

Este tipo representa la estructura del dataset interno de procesamiento. Nunca se serializa a ningún archivo en web/public/ y nunca se expone a través de ninguna ruta o API del sitio. Su única función es tipar los datos durante el análisis en Python y en el procesamiento interno.
export interface SurveyRecord {
  matricula: string;
  turno: Turno | null;
  dias_asistencia: string | null;
  licenciatura: string | null;
  lugar_origen: string | null;
  lat: number | null;
  lng: number | null;
  // Campos futuros (opcionales)
  hora_toma_transporte?: string;
  tipo_transporte?: string;
  tiempo_trayecto?: string;
  hora_ideal_parada?: string;
  preferencia_servicio?: string;
}
matricula
string
required
Matrícula del estudiante. Dato sensible — nunca publicado.
turno
Turno | null
required
Turno declarado por el estudiante. Puede ser null si no fue capturado.
dias_asistencia
string | null
required
Días de asistencia tal como respondidos. Puede ser null.
licenciatura
string | null
required
Carrera del estudiante. Puede ser null.
lugar_origen
string | null
required
Dirección o referencia de origen tal como la escribió el estudiante en la encuesta. Dato sensible — nunca publicado.
lat
number | null
required
Latitud real geocodificada a partir de lugar_origen. Dato sensible — nunca publicado. En los archivos públicos esta coordenada es reemplazada por lat_publica (con jitter).
lng
number | null
required
Longitud real geocodificada a partir de lugar_origen. Dato sensible — nunca publicado. En los archivos públicos esta coordenada es reemplazada por lon_publica (con jitter).

Tipos de paradas y rutas

Estas formas de objeto están definidas como interfaces TypeScript con nombre en web/components/maps/PublicStopsMap.tsx. web/app/mapa-demanda/page.tsx construye los objetos y los pasa al componente PublicMapPage, que a su vez los importa de PublicStopsMap.tsx.

PublicStop

Subconjunto sanitizado de cada entrada en web/public/data/paradas.json. La página /mapa-demanda aplica un .map() que selecciona exclusivamente estos campos antes de pasar los datos al cliente. Tipo definido en web/components/maps/PublicStopsMap.tsx.
// web/components/maps/PublicStopsMap.tsx
export interface PublicStop {
  id: string;
  name: string;
  lat: number;
  lng: number;
  route_id: string;
  turno: string;
  dias_raw: string;
}
id
string
required
Identificador único de la parada. Generado con un prefijo "PARADA-M-" seguido de un timestamp. Ejemplo: "PARADA-M-1775427630157".
name
string
required
Nombre descriptivo de la parada, basado en referencias geográficas locales. Ejemplo: "13 Plaza Paseo 2000", "17 Parada Sendero".
lat
number
required
Latitud de la parada. A diferencia de los puntos de demanda, estas coordenadas corresponden a ubicaciones de infraestructura pública (puentes peatonales, tiendas de referencia, intersecciones) y no a domicilios de estudiantes.
lng
number
required
Longitud de la parada.
route_id
string
required
ID de la ruta a la que pertenece esta parada. Vincula la parada con una entrada de PublicRoute. Valores actuales: "route-centro-unrc-001" y "route-la-mesa-unrc-001".
turno
string
required
Turno de mayor demanda en esa parada, según el análisis espacial. Puede ser "Matutino", "Intermedio", "Vespertino" o "Manual" para paradas de infraestructura colocadas manualmente.
dias_raw
string
required
Días de mayor demanda en esa parada. Ejemplo: "Lunes a Miercoles". Puede ser "Manual" para paradas sin datos de demanda asociados.

PublicRoute

Objeto de ruta tal como se lee de web/public/data/custom_routes.json y se pasa al cliente. El archivo raíz es un arreglo de estas rutas. Tipo definido en web/components/maps/PublicStopsMap.tsx.
// web/components/maps/PublicStopsMap.tsx
export interface PublicRoute {
  id: string;
  name: string;
  description?: string;
  color: string;
  points: [number, number][];
}
id
string
required
Identificador único de la ruta. Ejemplos actuales: "route-centro-unrc-001", "route-la-mesa-unrc-001".
name
string
required
Nombre legible de la ruta. Ejemplos: "Centro → UNRC vía Corredor 2000", "La Mesa → UNRC vía Camino Verde".
description
string
Descripción de la ruta incluyendo los tramos principales, distancia y tiempo estimado. Campo opcional. Ejemplo: "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 polilínea en el mapa. Valores actuales: "#0011ff" (Ruta Centro) y "#ff9500" (Ruta La Mesa).
points
[number, number][]
required
Arreglo de coordenadas [lat, lng] que forman el trazado de la ruta. Las rutas actuales contienen cientos de puntos para seguir fielmente las vialidades reales.

Build docs developers (and LLMs) love