Avalúo Vehicular es una aplicación web de pila completa diseñada para llevar a cabo avalúos técnicos de vehículos de forma estructurada, precisa y auditable. Construida sobre Laravel 12 y React 19, la plataforma guía al evaluador a través de un flujo multi-paso que cubre el registro del vehículo, la evaluación mecánica, la inspección visual y la generación de un reporte profesional en PDF — todo desde un único dashboard responsivo con soporte para modo oscuro. Avalúo Vehicular elimina la dependencia de hojas de cálculo o formularios en papel, centralizando la información, los cálculos de depreciación y los registros fotográficos en una sola herramienta confiable.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/alber1802/AvaluoVehicular/llms.txt
Use this file to discover all available pages before exploring further.
Avalúo Vehicular es un Proyecto de Grado 🎓. Fue desarrollado con fines académicos como demostración de una solución real de software para el sector de peritaje automotriz. Para consultas o contribuciones, contacta directamente al autor.
Características Clave
Flujo de Avalúo Multi-Paso
El proceso de avalúo se divide en etapas claramente definidas: registro del vehículo, evaluación mecánica por sistemas, inspección visual y subida de imágenes. Cada paso guarda el progreso de forma independiente.
Cálculo de Depreciación
El modelo
Avaluo aplica tres factores de depreciación automáticos — por modelo (depre_modelo), por kilometraje (depre_kilometraje) y por inspección (depre_inspeccion) — junto con un factor de reposición para producir la estimación final del valor del vehículo.Reportes en PDF
Una vez completado el avalúo, el sistema genera un reporte descargable en PDF usando barryvdh/laravel-dompdf y carlos-meneses/laravel-mpdf, listo para ser presentado a clientes o entidades financieras.
Control de Acceso por Roles
La gestión de permisos se implementa con spatie/laravel-permission, permitiendo definir roles diferenciados (p. ej., evaluador, administrador) y controlar el acceso a recursos del sistema de forma granular.
Autenticación con 2FA
La autenticación es gestionada por Laravel Fortify e incluye soporte para autenticación de dos factores (2FA) opcional, protección CSRF, y defensa contra XSS e inyección SQL gracias al ORM Eloquent.
Sistema de Compartición de Avalúos
Cada avalúo completado puede ser compartido mediante el modelo
AvaluoCompartido, que registra los enlaces o permisos de acceso para que terceros (clientes, aseguradoras) puedan consultar el resultado sin necesitar una cuenta.Modo Oscuro y Diseño Responsivo
La interfaz está construida con TailwindCSS 4.0 y componentes accesibles de Radix UI, ofreciendo modo oscuro nativo y un diseño completamente responsivo que funciona en escritorio, tablet y móvil.
Despliegue con Docker
La aplicación incluye un
Dockerfile, un docker-compose.yml y scripts de gestión (docker.sh para Linux/Mac y docker.ps1 para Windows) que permiten levantar todo el entorno con un solo comando, sin configuración manual de servidor.Stack Tecnológico
| Capa | Tecnología |
|---|---|
| Backend | Laravel 12 · PHP 8.2+ · SQLite · Laravel Fortify · Spatie Permission |
| Frontend | React 19 · TypeScript · Inertia.js · Vite 7 |
| Styling | TailwindCSS 4.0 · Radix UI · Headless UI · Lucide React |
| Auth | Laravel Fortify · 2FA · CSRF · Ziggy (rutas tipadas) |
| barryvdh/laravel-dompdf · carlos-meneses/laravel-mpdf | |
| Deploy | Docker · Docker Compose · Scripts Bash/PowerShell |
Arquitectura General
Avalúo Vehicular sigue el patrón Laravel MVC + Inertia.js SPA. No existe una API REST separada: en lugar de exponer endpoints JSON para ser consumidos por el frontend, los controladores de Laravel renderizan componentes React directamente medianteInertia::render(), pasando los datos del servidor como props tipadas en TypeScript. Esto combina la solidez del routing y la autorización de Laravel con la reactividad de React, sin la complejidad de mantener dos proyectos desacoplados.
resources/js/ y se organiza en pages/ (una página por ruta de Inertia), components/ (componentes reutilizables) y layouts/ (estructuras de pantalla compartidas). El routing del lado del cliente es manejado por Inertia, y las rutas con nombre de Laravel son accesibles en TypeScript a través de Ziggy y Laravel Wayfinder.
Modelos de Datos
El dominio de la aplicación está representado por los siguientes modelos Eloquent:| Modelo | Descripción |
|---|---|
Vehiculo | Entidad central. Almacena matrícula, marca, modelo, año, kilometraje, procedencia, precio referencial y el evaluador asignado. Usa SoftDeletes. |
Avaluo | Resultado económico del proceso. Contiene los tres factores de depreciación, el factor de reposición y la estimación final en la moneda seleccionada. Tiene relación uno-a-uno con Vehiculo. |
Inspeccion | Registra los resultados de la inspección visual asociados a un vehículo. |
Sistema | Representa la evaluación de cada sistema mecánico del vehículo (motor, transmisión, frenos, etc.). |
CondicionGeneral | Captura la condición general del vehículo como parte de la evaluación. |
VehiculoImagen | Gestiona las fotografías del vehículo subidas durante el avalúo. |
MarcaVehiculo | Catálogo de marcas disponibles para la clasificación del vehículo. |
AvaluoCompartido | Controla el acceso externo a un avalúo completado mediante enlaces de compartición. |
Accesorio | Lista de accesorios o equipamiento adicional declarado durante el registro. |