Skip to main content

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 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.
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

CapaTecnología
BackendLaravel 12 · PHP 8.2+ · SQLite · Laravel Fortify · Spatie Permission
FrontendReact 19 · TypeScript · Inertia.js · Vite 7
StylingTailwindCSS 4.0 · Radix UI · Headless UI · Lucide React
AuthLaravel Fortify · 2FA · CSRF · Ziggy (rutas tipadas)
PDFbarryvdh/laravel-dompdf · carlos-meneses/laravel-mpdf
DeployDocker · 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 mediante Inertia::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.
Solicitud HTTP


 Laravel Router (web.php)


 Controller  ──→  Eloquent Models  ──→  SQLite


 Inertia::render('Page', $props)


 React Component (SSR-capable vía Vite)


 Respuesta HTML / JSON delta (navegación SPA)
El frontend vive en 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:
ModeloDescripción
VehiculoEntidad central. Almacena matrícula, marca, modelo, año, kilometraje, procedencia, precio referencial y el evaluador asignado. Usa SoftDeletes.
AvaluoResultado 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.
InspeccionRegistra los resultados de la inspección visual asociados a un vehículo.
SistemaRepresenta la evaluación de cada sistema mecánico del vehículo (motor, transmisión, frenos, etc.).
CondicionGeneralCaptura la condición general del vehículo como parte de la evaluación.
VehiculoImagenGestiona las fotografías del vehículo subidas durante el avalúo.
MarcaVehiculoCatálogo de marcas disponibles para la clasificación del vehículo.
AvaluoCompartidoControla el acceso externo a un avalúo completado mediante enlaces de compartición.
AccesorioLista de accesorios o equipamiento adicional declarado durante el registro.

Build docs developers (and LLMs) love