Una solución Full Stack robusta para la administración de flotas de autobuses. Desarrollada con una arquitectura desacoplada utilizando ASP.NET Core Web API para el backend y React para una experiencia de usuario fluida e intuitiva.
- ✅ CRUD Completo para Autobuses, Rutas, Horarios y Reservas
- ✅ Validación Robusta de Modelos con manejo nullable de referencias
- ✅ Endpoints RESTful con soporte a operaciones asincrónicas
- ✅ Entity Framework Core con migraciones versionadas
- ✅ CORS Habilitado para conexión frontal desde localhost:3000
- ✅ Documentación Swagger interactiva en
/swagger
- ✅ Componentes Reutilizables modularizados y escalables
- ✅ Sistema de Notificación Inline para feedback usuario (éxito/error)
- ✅ Soporte Multiidioma (English/Español) integrado en navbar
- ✅ Modo Oscuro con persistencia en localStorage
- ✅ Gestión de Estado con Context API y Hooks
- ✅ Formularios Validados con manejo de errores mejorado
El proyecto está organizado en dos capas principales:
-
📂
BusManagementAPI/(Backend):- API RESTful construida con C# y .NET Core 8.
- Uso de Entity Framework Core para el manejo de datos (ORM).
- Implementación de patrones de diseño limpio y controladores REST.
- Modelos con propiedades navegables opcionales para flexibilidad.
- Conexión a base de datos SQL Server con migraciones automáticas.
-
📂
BusManagementAPI/frontend/bus-management-frontend/(Frontend):- SPA (Single Page Application) desarrollada en React 19.
- Consumo de API mediante Axios con manejo de promesas.
- Componentes modulares con props validation y state management.
- Sistema de notificaciones inline reemplazando alerts del navegador.
- Tema oscuro/claro con persistencia de preferencias.
Sigue estos pasos para levantar el proyecto en tu entorno de desarrollo:
- Navega a la carpeta del API:
cd BusManagementAPI - Configura tu base de datos en
appsettings.json(Connection Strings). - Aplica las migraciones para crear la base de datos:
dotnet ef database update
- Ejecuta el servidor:
La API estará disponible en
dotnet run
http://localhost:5231
- Abre una nueva terminal y navega a la carpeta del frontend:
cd BusManagementAPI/frontend/bus-management-frontend - Instala las dependencias (solo la primera vez):
npm install
- Inicia la aplicación:
La aplicación se abrirá automáticamente en
npm start
http://localhost:3000
GET /api/buses- Obtener todos los autobusesPOST /api/buses- Crear nuevo autobúsPUT /api/buses/{id}- Actualizar autobúsDELETE /api/buses/{id}- Eliminar autobús
GET /api/routes- Obtener todas las rutasPOST /api/routes- Crear nueva rutaPUT /api/routes/{id}- Actualizar rutaDELETE /api/routes/{id}- Eliminar ruta
GET /api/schedules- Obtener todos los horariosPOST /api/schedules- Crear nuevo horarioPUT /api/schedules/{id}- Actualizar horarioDELETE /api/schedules/{id}- Eliminar horario
GET /api/reservations- Obtener todas las reservasPOST /api/reservations- Crear nueva reservaPUT /api/reservations/{id}- Actualizar reservaDELETE /api/reservations/{id}- Eliminar reserva
- Backend: C#, .NET 8, Entity Framework Core 8, Swagger/OpenAPI
- Frontend: React 19, Axios, React Router, React Icons, Context API
- Estilos: CSS3 moderno con soporte dark mode
- Base de Datos: Microsoft SQL Server
- Herramientas: Visual Studio 2022, VS Code, Git, npm
- ✅ Corrección de Modelos: Las propiedades de navegación (
Schedule,Route) ahora son opcionales en POST - ✅ Nuevo Endpoint: POST
/api/schedulescompletamente funcional - ✅ FormNotification Component: Feedback inline reemplazando alerts
- ✅ Consolidación de Controles: Selector de idioma unificado en navbar
- ✅ Mejora de Errores: Mensajes de validación personalizados en UI
Harold Toribio - Ingeniero de Software & Desarrollador Full Stack