¡Bienvenido a ProtoUber Fusa! Este proyecto es una solución Full-Stack diseñada para modernizar el flujo de transporte en Fusagasugá, Colombia. Sustituye los stickers y mensajes desordenados en grupos de WhatsApp por un sistema automatizado de geolocalización y un panel de control profesional.
- Asignación por Cercanía: Utiliza la fórmula Haversine para encontrar conductores en un radio real.
- Flujo Automatizado: El pasajero comparte su ubicación y el bot notifica a los 3 conductores más cercanos.
- Confirmación en Tiempo Real: Notifica al pasajero con el nombre del conductor y el tiempo estimado de llegada.
- Diseño Profesional: Interfaz moderna en modo claro, optimizada para azul corporativo y 100% responsive para móviles.
- Mapa en Vivo: Visualización satelital de conductores (iconos azules) y pasajeros esperando (iconos cian animados).
- Mapa de Calor (Heatmap): Identificación visual de "zonas calientes" de alta demanda (ideal para noches de fiesta).
- Gestión de Flota: Control de estado Online/Offline y disponibilidad de cada unidad.
- Página del Conductor (
/driver): Los conductores vinculan su celular al sistema mediante un código único de 4 dígitos. - Transmisión en Vivo: Envío constante de coordenadas GPS desde el navegador del conductor al servidor.
- Backend: Node.js v24 + Express.
- Frontend: React.js + Vite + Tailwind CSS.
- Mapas: Leaflet.js + Leaflet.Heat.
- Base de Datos: SQLite (Rápida y local para prototipos).
- Comunicaciones: Fetch nativo (sin dependencias externas pesadas).
- Node.js v18.0.0 o superior.
- Una instancia activa de Evolution API.
- Clona el repositorio.
- Instala las dependencias en la raíz:
npm install
- Configura el archivo
.env:PORT=3000 EVOLUTION_API_URL=https://tu-api.com EVOLUTION_API_KEY=tu_api_key EVOLUTION_INSTANCE=tu_instancia
- Inicializa la base de datos con conductores de prueba:
node seed.js
- Inicia el servidor:
node src/index.js
Este proyecto está configurado para ser desplegado en Vercel mediante el archivo vercel.json. Recuerda configurar las variables de entorno en el panel de control de tu hosting.
/src: Lógica del servidor, base de datos y chatbot./admin: Código fuente del Dashboard en React.vercel.json: Configuración para despliegue en la nube.seed.js: Script para poblar datos iniciales.
Para registrar un nuevo conductor:
- Pide al conductor que entre a
tu-link.com/driver. - Él te dictará el código neón que aparece en su pantalla.
- Ingresa ese código en la pestaña "Gestionar Flota" del panel administrativo.
Hecho con ❤️ para la comunidad de Fusagasugá.