HUF 001_Registrar_vehiculo_en_el_sistema - camilo1691/proyecto_mantenimiento_automotor_bakend GitHub Wiki

HUF-001: Registrar vehículo en el sistema

Campo Contenido
ID HUF-001
Título Registrar vehículo en el sistema
Descripción Como supervisor, quiero registrar un nuevo vehículo con datos obligatorios (placa, marca, modelo, año, color, número de motor, número de chasis-VIN, tipo de combustible, capacidad de pasajeros, tipo de servicio) y documentos (tarjeta de propiedad, SOAT con fecha de vencimiento, revisión técnico-mecánica con fecha de vencimiento, seguro contractual/extracontractual, tarjeta de operación, fotos del vehículo), para darlo de alta en la flota con estado "Activo", "Inactivo" o "Pre-registro" según vigencia de documentos.
Tipo Funcional
Módulo Gestión de Flota
Estimación 13 puntos
Prioridad Must
Riesgo Medio
Criterios de Validación (Gherkin) Escenario 1: Registro exitoso completo con todos los documentos vigentes
Dado que ingreso todos los datos obligatorios válidos:
* Placa: ABC-123
* Marca: Chevrolet
* Modelo: Spark GT
* Año: 2020
* Color: Rojo
* Número de motor: MOT123456
* Número de chasis-VIN: 3HGBH41JXMN109186
* Tipo de combustible: Gasolina
* Capacidad: 4 pasajeros
* Tipo de servicio: Individual
* Adjunta documentos en PDF (máx 50MB cada uno):
* Tarjeta de propiedad
* SOAT vigente (vence en 6 meses)
* Revisión técnico-mecánica vigente (vence en 3 meses)
* Seguro contractual
* Tarjeta de operación
* Adjunto 4 fotos del vehículo (frontal, izquierda, derecha, trasera)
Cuando guarda el registro, entonces el vehículo se crea con estado "Activo" y veo el mensaje "Vehículo ABC123 registrado exitosamente" y los documentos se almacenan vinculados al vehículo

Escenario 2: Placa duplicada con sugerencia de búsqueda

Dado que ingreso la placa "ABC123" ya existente en otro vehículo, Cuando intento guardar recibo un mensaje de error "La placa ABC123 ya está registrada" y el sistema muestra una sugerencia "¿Desea consultar el vehículo existente?" y al aceptar, redirige a ficha del vehículo duplicado

Escenario 3: Chasis o motor duplicado
Dado que ingreso el número de chasis "3HGBH41JXMN109186" y/o el Número de motor: MOT123456 ya existentes, cuando intento guardar me genera mensaje de error "El número de chasis ya está registrado en vehículo placa ABC123" y no permite guardar hasta corregir, lo mismo pasara con el numero de motor.

Escenario 4: Pre-registro sin documentos completos.
Dado que ingreso todos los datos del vehículo pero no adjunto tarjeta de operación (documento obligatorio para taxis), Cuando selecciona "Guardar como pre-registro", entonces el vehículo se crea con estado "Pre-registro - Documentos pendientes"y genera alerta para completar documentación antes de poder activar

Escenario 5: Documento vencido - Estado inactivo
Dado que el SOAT adjunto venció hace 10 días, Cuando intento guardar como "Activo" el sistema bloquea y muestra error "No se puede activar vehículo con SOAT vencido" y sugiere "Guarde como Pre-registro o actualice el SOAT", Cuando guardo como "Pre-registro" el vehículo se crea con estado "Inactivo - SOAT vencido" y genera alerta crítica para actualizar SOAT

Escenario 6: Validaciones de campos y archivos
Dado que dejo vacío el campo "Número de motor" o ingreso año "1800" (fuera de rango 1990-2026) o adjunta archivo de 60MB o adjunto formato .jpg en lugar de PDF para SOAT, cuando intento guardar veo mensajes de error específicos por campo y el cursor se posiciona en el primer error y no permite guardar hasta corregir o diligenciar todos los campos correctamente.

Tabla INVEST:

Característica ¿Cumple? Justificación
I - Independent No Depende de estructura BD (HUT-003)
N - Negotiable Campos requeridos negociables
V - Valuable Core del negocio
E - Estimable CRUD estándar
S - Small 13 puntos, 1 sprint
T - Testable Validación mediante escenarios Gherkin y pruebas funcionales

Sprint Backlog - HUF-001

ID Tarea Descripción Tipo Responsable Estimación Prioridad Estado
SB-001 Diseñar modelo de datos para vehículo (campos obligatorios + estado) Backend / BD Equipo 4h Alta Pendiente
SB-002 Diseñar modelo de documentos asociados al vehículo (tipo, ruta, fecha vencimiento) Backend / BD Equipo 4h Alta Pendiente
SB-003 Crear tablas en base de datos: vehículo, documentos, tipos_documento BD Equipo 6h Alta Pendiente
SB-004 Implementar entidad Vehículo (clase modelo) Backend Equipo 4h Alta Pendiente
SB-005 Implementar entidad DocumentoVehiculo Backend Equipo 4h Alta Pendiente
SB-006 Crear endpoint API para registrar vehículo Backend Equipo 6h Alta Pendiente
SB-007 Implementar validación de placa única Backend Equipo 3h Alta Pendiente
SB-008 Implementar validación de número de motor único Backend Equipo 3h Alta Pendiente
SB-009 Implementar validación de chasis (VIN) único Backend Equipo 3h Alta Pendiente
SB-010 Implementar validaciones de campos (año, obligatorios, formatos) Backend Equipo 5h Alta Pendiente
SB-011 Implementar lógica de estados (Activo, Inactivo, Pre-registro) Backend Equipo 6h Alta Pendiente
SB-012 Implementar lógica de validación de documentos (vigencia SOAT, técnico-mecánica) Backend Equipo 6h Alta Pendiente
SB-013 Implementar carga de archivos (PDF, imágenes) Backend Equipo 8h Alta Pendiente
SB-014 Validar tamaño y formato de archivos Backend Equipo 3h Media Pendiente
SB-015 Crear formulario de registro de vehículo Frontend Equipo 8h Alta Pendiente
SB-016 Implementar carga de documentos en el frontend Frontend Equipo 6h Alta Pendiente
SB-017 Implementar validaciones en frontend (UX: mensajes, focus en error) Frontend Equipo 5h Media Pendiente
SB-018 Implementar mensajes de error y éxito (según Gherkin) Frontend Equipo 4h Alta Pendiente
SB-019 Implementar opción "Guardar como pre-registro" Frontend / Backend Equipo 4h Alta Pendiente
SB-020 Implementar redirección en caso de placa duplicada Frontend Equipo 3h Media Pendiente
SB-021 Pruebas unitarias de validaciones backend QA Equipo 5h Alta Pendiente
SB-022 Pruebas funcionales basadas en escenarios Gherkin QA Equipo 6h Alta Pendiente
SB-023 Pruebas de carga de archivos QA Equipo 4h Media Pendiente
SB-024 Ajustes y corrección de bugs General Equipo 6h Alta Pendiente
⚠️ **GitHub.com Fallback** ⚠️