sonnora@systems:~/products/rideshare$ cat README

RideShare — conductores publican viajes, pasajeros reservan asientos.

Una app de viajes compartidos estilo BlaBlaCar: los conductores publican viajes con ruta, horario, asientos y precio; los pasajeros buscan viajes cercanos y reservan un asiento. Una app Flutter con API en Rust, búsqueda PostGIS y mapas auto-hospedados.

● desarrollo activoBackend en Rust + AxumApp en Flutter

// el problema

Asientos vacíos recorren la misma autopista cada día.

Realidad

Viajar entre ciudades en Latinoamérica significa boletos caros de autobús o manejar en solitario — mientras miles de autos recorren los mismos corredores con asientos vacíos. Ese encuentro ocurre por grupos de WhatsApp y de boca en boca: sin horarios, sin asientos garantizados, sin precios justos.

Enfoque

RideShare es un marketplace con tres movimientos: publica un viaje, busca por origen y destino, reserva un asiento. El matching geoespacial encuentra viajes cerca de ambos extremos de tu ruta, y la sugerencia de precio estilo BlaBlaCar mantiene tarifas justas.

// funciones

Publica, busca, reserva

Publica un viaje

Origen, destino, hora de salida, asientos y precio por asiento. La app sugiere una tarifa justa desde la distancia y el costo operativo.

Búsqueda geoespacial

Busca por origen y destino con matching de proximidad PostGIS en ambos extremos de la ruta.

Rutas y mapa

El conductor elige entre tres rutas — recomendada, sin peajes, más corta — calculadas por un motor Valhalla auto-hospedado con datos OpenStreetMap.

Lugares reales

Autocompletado de lugares servido por un geocoder Photon auto-hospedado, potenciado con una lista local.

// bajo el capó

El stack que mueve personas

Backend

Rust con Axum en capas api a dominio a infra, persistencia rustdata sobre PostgreSQL + PostGIS.

Geo

Photon auto-hospedado para geocoding y Valhalla para ruteo sobre tiles OSM de México — sin facturas por request de mapas.

Acceso

Login delegado a UserBrew con Google OAuth, desacoplado tras un trait AuthService.

Despliegue

Una sola imagen multi-arch — nginx sirviendo la web Flutter más la API Axum — en local, dev, QA y prod.

// conectar

¿Un corredor lleno de asientos vacíos?

Hablemos de acceso anticipado, un piloto para tu ciudad u organización, o la hoja de ruta.