DriveHub es un sistema orientado a objetos para la administración completa de una flota de vehículos, incluyendo reservas, cálculo de tarifas, gestión de mantenimiento, control de estados y reportes de uso/rentabilidad.
- Estados:
Disponible,En_Alquiler,En_Mantenimiento,Necesita_Limpieza. - Cambios automáticos de estado según reglas del sistema.
- Control del mantenimiento por diferentes estrategias:
CantViajesKilometrosParaMantenimientoUltimoMantenimiento
- Creación de reservas con validación de disponibilidad.
- Registro diario de kilómetros recorridos.
- Determinación automática de temporada (alta, baja, media).
Cada subclase implementa su propia tarifa:
CompactoSedanSUV
El sistema genera:
- Vehículo más alquilado
- Vehículo menos alquilado
- Vehículo más rentable
- Vehículo menos rentable
- Porcentaje de vehículos ocupados en una fecha determinada
Incluye tests unitarios para:
- Estados del vehículo (Patrón State)
- Estrategias de mantenimiento (Patrón Strategy)
- Cálculo de tarifas por tipo de vehículo
- Métodos clave de
Vehiculo,Reservay clases auxiliares
El sistema implementa diferentes patrones:
Representado por:
IEstadoVehiculo- Estados concretos:
DisponibleEn_AlquilerEn_MantenimientoNecesita_Limpieza
Para determinar si un vehículo requiere mantenimiento:
INecesitaMantenimiento- Estrategias concretas:
CantViajesKilometrosParaMantenimientoUltimoMantenimiento
Vehiculo(abstracta)CompactoSedanSUV
SistemaDriveHubadministra:- Vehículos
- Reservas
- Clientes
- Reportes
Ejecutá los siguientes comandos:
npm install
npm run buils
npm run start
--------------------------------------------------------------------------------------------------------------------------------------------------------
Flujo de funcionamiento del sistema
El cliente solicita una reserva
El sistema valida disponibilidad
Se crea la reserva y registra el kilometraje inicial
El cliente maneja y se registran los kilómetros por día
Al finalizar:
Se calcula la tarifa base según el tipo de vehículo
Se calcula la tarifa final y se aplica porcentaje segun temporada que se encuentra
Se evalúan todas las estrategias de mantenimiento
Si cumple alguna → va a En Mantenimiento
Si no → vuelve a Disponible
El sistema actualiza reportes de uso y rentabilidad