Este proyecto es una plataforma completa para la gestión de rutas de transporte, diseñada para tres tipos de usuarios:
- Administrador
- Motorista
- Pasajero (no autenticado)
La aplicación permite administrar:
- Rutas
- Horarios de ruta
- Viajes
- Motoristas
- Anuncios y comentarios
- Autenticación con roles
El sistema está compuesto por:
- Frontend: React + Vite
- Backend: Laravel 11 + Sanctum + Spatie Permission
- Base de Datos: MySQL
- Documentación automática: Swagger (OpenAPI)
- Deploy: Railway (db), Render (backend), Vercel (frontend)
El frontend está construido con React + Vite, usando:
- React Router
- Axios para consumir la API
- Context/Auth Provider
- Bootstrap
- Ver rutas disponibles
- Ver horarios por ruta
- Ver anuncios
- Comentar anuncios
- Crear una solicitud de viaje (POST /viajes)
- Ver viajes asignados
- Actualizar estado de un viaje (ej. completado)
- Eliminar un viaje
- CRUD de rutas
- CRUD de horarios
- CRUD de motoristas/usuarios
- CRUD de anuncios
El backend está construido en Laravel 11, implementando:
- Sanctum → Autenticación por tokens
- Spatie Permissions → Control de roles (administrador, motorista)
- Resource Controllers → Endpoints RESTful
- Swagger → Documentación pública en /api/documentation
La autenticación se realiza mediante: POST /auth/login Retorna un token de Sanctum.
Rutas protegidas usan: middleware: auth:sanctum middleware: role:administrador | motorista
Si el usuario intenta entrar sin token: GET /token → { "message": "Necesitas un token" }
- users
- rutas
- horarios
- viajes
- anuncios
- comentarios
- roles
- permissions
- role_has_permissions
- model_has_roles
Usado en Railway:
- PHP 8.x
- Laravel 11
- MySQL
- Deploy con Dockerfile y entrypoint personalizado
- Port 8000 expuesto usando php artisan serve
- API → https://la-combi-backend.onrender.com
- LACOMBI → https://lacombi.vercel.app/
- Josué Mauricio → https://github.com/JosuMelara21
- Luis Martínez → https://github.com/BlckXI
- Steven Trujillo → https://github.com/imTrujillo