Volver a proyectos

Anti

Movilidad y Transporte

Jala — Comparte el taxi al salir

Track: Movilidad y Transporte · App: https://jala.oak4.xyz · Pitch: https://jala.oak4.xyz/pitch

Problema

Lima es la ciudad del mundo donde más horas se pierden en el tráfico (TomTom Traffic Index 2025). Aun así, cuando cientos de personas salen a la misma hora de una universidad, un concierto, un mall o una estación, cada una pide su propio taxi hacia la misma zona. Viajar solo es caro, y de noche, inseguro. Compartir el viaje sería más barato, pero hoy solo pasa entre conocidos: no hay una forma rápida de encontrar a otras personas compatibles, acordar la ruta y saber cuánto paga cada una.

Para quién

Estudiantes y trabajadores en Lima que hacen un viaje próximo desde un punto concentrado. Proponemos un piloto con un solo lugar y una franja horaria, para que haya suficientes personas al mismo tiempo.

Cómo funciona

  1. Inicias sesión e indicas desde dónde sales, a dónde vas y cuándo: lo antes posible o en 15, 30 o 60 minutos.
  2. Jala te pone en una sala con personas que salen cerca (1.5 km), van hacia un destino cercano (3 km) y parten a una hora parecida. Si no hay ninguna, crea una sala nueva.
  3. El emparejamiento es automático. Forma grupos de 2 o 3 personas con tiempos reales por calle (OSRM), y nadie se desvía más de 5 minutos frente a ir solo.
  4. El grupo ve el orden de paradas, la ruta en el mapa y cuánto le toca a cada persona: cada tramo se divide entre quienes siguen a bordo. También puede chatear, compartir una selfie validada con detección de rostro para reconocerse y recibir notificaciones push.
  5. Una persona del grupo se ofrece a pedir el taxi en su app de siempre. Todos confirman y luego inician y terminan el viaje. Si nadie confirma a tiempo, el grupo vence y las personas vuelven a buscar.

Jala no opera vehículos ni cobra el taxi; solo coordina. El modelo es de créditos: los primeros 5 viajes son gratis, después S/ 1 por pasajero, y quien pide el taxi no paga comisión.

Evidencia

  • 11 personas registradas y 5 grupos formados en la app en producción, durante el evento.
  • Ejemplo de reparto: un taxi de S/ 28.50 de Parque Kennedy a Barranco, compartido entre 2: una persona paga S/ 10.50 (37 %) y la otra S/ 18.00, según el tramo que recorre cada una.

Decisiones técnicas

  • Stack: Next.js 16, React 19, TypeScript y Drizzle sobre Postgres (Neon), en Vercel. Sesiones propias con contraseñas scrypt y tokens hasheados, además de Google OAuth.
  • Emparejamiento: prueba todos los órdenes de paradas posibles para grupos de 2 o 3 dentro de lotes de 12 personas, y luego elige los grupos de forma greedy: primero los más grandes y con menos desvío. No promete el óptimo global. Si el servidor de rutas falla, no inventa rutas en línea recta. El reparto usa puntos básicos y siempre suma 100 %.
  • Entrega segura: CI corre lint, typecheck, 280 pruebas (unitarias y de integración sobre Postgres) y verifica que el esquema coincida con las migraciones. Luego migra la base y despliega sin promover. La versión nueva solo recibe tráfico si pasa un smoke test, que incluye un health check de la versión del esquema. Las migraciones solo agregan, así la versión anterior sigue funcionando durante el cambio.
  • Privacidad: la dirección y la selfie solo las ve tu grupo. Los logs registran cada request e interacción sin emails, direcciones, coordenadas ni mensajes.

Limitaciones

  • La demanda y el ahorro real aún no están validados con suficientes usuarios. Falta comparar tarifas compartidas reales con cotizaciones individuales.
  • El emparejamiento necesita varias personas en el mismo lugar y a la misma hora. Con poco uso, muchas salas quedan con una sola persona.
  • La app no reserva ni cobra el taxi, y no hay recarga de créditos.
  • No hay verificación de identidad, calificaciones ni reportes. La selfie confirma que hay un rostro, no quién es.
  • El ruteo (OSRM) y la búsqueda de direcciones (Photon/Nominatim) usan servidores públicos de demostración.
  • En iPhone, las notificaciones push requieren instalar la app en la pantalla de inicio.

Última edición:

Bitácora del equipo

Avances, decisiones y dificultades que el equipo compartió con mentores y jurados.

  1. Keyvhinng

    RutaSegura - Prevención inteligente de riesgos en transporte interprovincial Estamos desarrollando RutaSegura, una plataforma B2B que utiliza datos de wearables, telemetría vehicular y visión computacional para prevenir accidentes asociados a fatiga y distracción en conductores de transporte interprovincial.

    Enfoque de la solución

    1. Prevención antes del viaje: Analizamos datos de sueño y recuperación obtenidos de dispositivos wearables para estimar el riesgo de fatiga antes de iniciar un turno. El sistema genera recomendaciones para habilitar el turno, solicitar revisión o impedir temporalmente su inicio, sujeto a la decisión del supervisor.
    2. Prevención durante el viaje: Combinamos telemetría del vehículo, tiempo acumulado de conducción y monitoreo facial mediante visión computacional para identificar señales de fatiga, distracción o conducción riesgosa en tiempo real.
    3. Gestión de riesgos: Generamos alertas para el conductor y notificamos al supervisor mediante un dashboard que permite visualizar incidentes y registrar las acciones tomadas.

    Decisiones técnicas y alcance del MVP Priorizamos un flujo integral que conecta la evaluación preventiva del conductor, la autorización del turno, el monitoreo durante el viaje y la gestión de alertas. El análisis de video se realizará localmente para reducir latencia y evitar transmitir continuamente grabaciones.

    Próximos pasos Implementar y demostrar el flujo completo, probar las integraciones con datos de wearables y vehículos, y evaluar escenarios de fatiga y distracción. Distinguiremos los datos simulados de los reales durante la demostración.

    Nuestra propuesta: Pasar de detectar situaciones peligrosas cuando ya están ocurriendo a anticipar riesgos antes de que el conductor inicie su jornada, manteniendo la supervisión durante todo el trayecto

  2. Keyvhinng

    🚕 Jala — Movilidad compartida inteligente para eventos masivos

    Actualización del proyecto: cambio de enfoque y nueva identidad

    Tras reevaluar nuestra propuesta inicial, decidimos cambiar el enfoque de RutaSegura y desarrollar Jala, una plataforma de movilidad colaborativa que conecta a personas que salen de conciertos, teatros y eventos masivos para compartir taxis de manera inteligente.

    El problema que buscamos resolver es la concentración de solicitudes individuales de transporte cuando cientos o miles de personas abandonan simultáneamente un evento, generando mayores costos para los pasajeros, congestión vehicular y un impacto ambiental potencialmente evitable.

    Nuestra solución: Agrupar automáticamente a pasajeros con destinos compatibles, optimizar las rutas compartidas y facilitar la coordinación del transporte sin necesidad de operar una flota de vehículos.

    Enfoque de la solución

    1. Eventos y sesiones de movilidad

    Los usuarios ingresan a la aplicación web, descubren sesiones activas asociadas a eventos o crean una nueva sesión con un tiempo de expiración.

    Cada participante indica su destino exacto y selecciona su preferencia de participación: pasajero regular o delegado.

    2. Agrupamiento inteligente de pasajeros

    Un algoritmo analiza la ubicación de los destinos, la compatibilidad de rutas, los tiempos estimados y los desvíos para formar grupos que puedan compartir un mismo vehículo.

    Inspirado en el concepto de Uber Share, nuestro sistema busca maximizar la ocupación de los vehículos sin generar desvíos excesivos.

    Cada pasajero mantiene su destino exacto, especialmente importante en desplazamientos nocturnos.

    3. Delegado y coordinación del transporte

    Cada grupo cuenta con un delegado voluntario encargado de solicitar el taxi mediante una plataforma externa, como Uber.

    Jala recomienda automáticamente:

    • El orden óptimo de las paradas.
    • El porcentaje del costo que corresponde a cada pasajero.
    • El punto de encuentro del grupo.

    No necesitamos conocer la tarifa exacta del taxi. El algoritmo calcula una distribución porcentual que puede aplicarse al precio final mostrado por el proveedor.

    Los pasajeros coordinan sus contribuciones en efectivo al inicio del viaje.

    4. Puntos de encuentro y verificación

    Para evitar que todos los pasajeros se concentren en un único lugar, Jala distribuye los grupos entre puntos de encuentro cercanos al recinto, considerando ubicaciones accesibles y seguras.

    Cada grupo dispone de una identificación visual mediante colores y códigos únicos.

    También contemplamos verificación mediante códigos QR para confirmar que cada participante pertenece al grupo correcto antes de abordar el vehículo.

    5. Modelo de negocio

    Jala contempla una pequeña comisión por viaje compartido para los pasajeros regulares.

    • Comisión propuesta: S/0.10 por pasajero regular.
    • Primeros cinco viajes gratuitos para nuevos usuarios.
    • Delegados exonerados de la comisión como incentivo por coordinar el transporte.

    Esta monetización corresponde al modelo propuesto y no requiere procesar pagos reales durante el MVP.

    Decisiones técnicas y alcance del MVP

    Hemos decidido concentrarnos exclusivamente en la coordinación inteligente de pasajeros, aprovechando plataformas de transporte existentes en lugar de construir una red propia de conductores.

    Los principales desafíos técnicos son:

    • Matching geoespacial: Agrupamiento dinámico de pasajeros con destinos compatibles.
    • Optimización de rutas: Determinación del orden eficiente de paradas, minimizando desvíos y tiempos adicionales.
    • Distribución de costos: Cálculo de porcentajes de pago según los trayectos compartidos.
    • Gestión en tiempo real: Administración de sesiones temporales, participantes, grupos y estados de viaje.
    • Coordinación física: Asignación de puntos de encuentro y verificación de participantes mediante QR.
    • Asignación de roles: Selección de delegados voluntarios y pasajeros regulares según sus preferencias.

    Próximos pasos

    Implementar y demostrar el flujo principal:

    1. Descubrir o crear una sesión asociada a un evento.
    2. Registrar destinos y preferencias de participación.
    3. Formar automáticamente grupos de pasajeros compatibles.
    4. Seleccionar un delegado para cada grupo.
    5. Calcular la ruta optimizada y los porcentajes de pago.
    6. Asignar puntos de encuentro y verificar participantes.
    7. Facilitar la solicitud del taxi mediante un proveedor externo.
    8. Registrar la finalización del viaje compartido.

    Evaluaremos el algoritmo utilizando escenarios simulados de alta concurrencia, incluyendo eventos con cientos de asistentes, y mediremos indicadores como compatibilidad de rutas, ocupación de vehículos, desvíos y ahorro estimado.

    Visión a futuro

    Nuestra estrategia contempla dos etapas:

    Fase 1 — Coordinación de pasajeros: Construir una plataforma independiente que agrupe personas y facilite viajes compartidos mediante servicios de taxi existentes.

    Fase 2 — Plataforma integral de movilidad: Una vez validada la demanda, incorporar una red de conductores, reservas y pagos integrados para ofrecer una experiencia de transporte compartido de extremo a extremo.

    Nuestra propuesta de valor

    Jala convierte pasajeros que viajan por separado en comunidades temporales que comparten una misma ruta.

    Queremos demostrar que, mediante algoritmos de agrupamiento y optimización, es posible reducir el costo individual del transporte, mejorar la ocupación de vehículos y contribuir a una movilidad urbana más eficiente y sostenible.

  3. Keyvhinng

    Jala now enables the complete taxi-sharing journey: enter your pickup and destination, automatically match with compatible passengers, review a suggested fare split, coordinate in group chat, and confirm, start, and finish the trip

    Groups of 2–3 are matched using actual road travel times with a five-minute detour cap. We’ve also enabled automatic rematching when groups dissolve, selfie sharing within matched groups to help passengers recognize each other, and opt-in push notifications when a group forms, everyone confirms, or the group dissolves

  4. Keyvhinng

    Jala — Making the shared-ride flow more reliable and private

    Since our last update, we have focused on the cases that can interrupt a shared ride or leave passengers waiting indefinitely.

    • Groups now have deadlines: five minutes to confirm and thirty minutes to start after confirmation. When a deadline is missed, the group is cancelled, passengers who confirmed can return to matching, and the remaining seats are released. After a ride has been underway for thirty minutes, any member can finish it if the delegate is unavailable.
    • Passengers can change their plans: people can leave the waiting room or volunteer to book the taxi when a group needs a delegate. We also added concurrency controls to prevent one account from occupying multiple waiting rooms or active groups.
    • Better recovery from connection problems: group chat retries automatically after timeouts and shows a reconnecting message.
    • Stronger privacy: newly created public rooms use an approximate destination area; exact destinations stay out of public room responses and sign-in URLs. Selfies are deleted when the trip finishes or their owner leaves, and we added an integration test for chat isolation between groups in the same room.

    We also improved address selection, added camera-based selfies, and adapted the passenger interface for phone and desktop screens.

    The database-backed coordination flow remains available at /ride; QR verification, ratings, and some screens in the reference passenger journey are still demonstrations. Jala does not book taxis or process payments, and demo participants are fictional. Next we will validate the flow and notifications on real phones and collect feedback from potential passengers.