Portfolio · Full-stack · Open Source
💼 LinkedIn ✉️ Email

Proyecto destacado · Product Engineering · Full Stack

KAVANA BusRoad — planificación de rutas para autobuses y camiones

Proyecto portfolio de full-stack. Mi hermano es conductor de autobús recién titulado. Cuando planifica una ruta, Google Maps le dice por dónde ir en coche, sin saber que su vehículo mide 3,5 metros de alto, 2,5 de ancho y 12 de largo. Un puente bajo o una calle estrecha pueden convertir una ruta normal en un problema serio.

Diseñé un servicio que combina OpenRouteService, OpenStreetMap y la navegación de Google Maps/Waze para ofrecer rutas adaptadas a las dimensiones reales del vehículo. Ver capacidades técnicas →

2
Rutas en pantalla (segura + coche)
4
Restricciones (alto·ancho·largo·peso)
k3s
Kubernetes en producción
6
Waypoints forzando tu ruta en Maps
📚 README 🔗 API en producción
El origen

Por qué construí esto

Mi hermano acababa de sacarse el carné de autobús. Cuando le pregunté cómo planificaba las rutas, me enseñó Google Maps como todo el mundo, y me dijo una frase que lo cambió todo: "esto me lleva por sitios por donde no puedo pasar".

Los navegadores convencionales están pensados para turismos: la altura de un puente, la anchura de una calle, el peso máximo de un tramo o el largo en una rotonda no entran en sus cálculos. Esos datos existen en el mapa (los pone OpenStreetMap), pero la mayoría de navegadores de consumo no los tienen en cuenta para vehículos pesados.

Así nació Kavana BusRoad. Un proyecto personal que resuelve un problema real y muy concreto: una ruta segura para un vehículo de dimensiones conocidas, y la comparación honesta con la ruta que seguiría un coche normal.

Lo que demuestra

Capacidades técnicas visibles en este proyecto

🧭

Navegación con waypoints

La app no se queda en la ruta: decodifica el polyline calculado y lo convierte en puntos de paso para Google Maps y Waze, forzando al navegador a seguir exactamente el itinerario seguro en lugar de recalcular por la ruta de coche.

⚖️

Comparativa segura vs convencional

Calcula la ruta optimizada para el vehículo y la ruta convencional de coche con las mismas coordenadas, y muestra la diferencia de km y minutos. Si coinciden, no hay obstáculos: la app lo dice.

🚌

API REST con FastAPI

Backend en Python con FastAPI. Recibe origen, destino y dimensiones del vehículo, geocodifica las direcciones y calcula la ruta con restricciones. Health check público en producción.

🗺️

OpenRouteService (driving-hgv)

Motor de rutas para vehículos pesados con restricciones reales de altura, anchura, largo y peso en Europa, usando los datos de OpenStreetMap. 2.000 rutas gratis al día.

☸️

Kubernetes (k3s) en producción

Backend desplegado en un clúster Kubernetes (k3s) en el VPS, detrás de nginx con certificado TLS real de Let's Encrypt. Despliegue con Dockerfile + kubectl.

📱

Frontend PWA con Vue 3

Aplicación web moderna con Vue 3 + Vite + TypeScript. Acepta direcciones completas de Google Maps, dimensiones del vehículo y muestra los pasos en español.

Cómo funciona

Del problema a la ruta segura

1

Escribe origen y destino

Direcciones completas como las pegas en Google Maps: "C. de Ing. Tamarit, 9, 46170 Villar del Arzobispo, Valencia".

2

Pon las dimensiones de tu vehículo

Altura, anchura, largo y peso. Son las restricciones que el motor aplica a cada tramo de la ruta.

3

Obtén tu ruta segura + la convencional

La app calcula la ruta optimizada para tu vehículo y la de coche normal, con distancia, duración y pasos en español.

4

Navega con tu ruta

Pulsa el botón para abrir Google Maps o Waze con puntos de paso que fuerzan tu ruta segura. Nada de desvíos por la ruta de coche.

Prueba BusRoad

Escribe un origen y un destino, pon las dimensiones de un autobús o camión, y mira la diferencia entre tu ruta y la de un coche.