All routes in Avalúo Vehicular are web routes — there is no separate REST API. Every route returns an Inertia.js response that renders a React component on the client, sharing Laravel session state seamlessly. With the exception of the public appraisal viewer and the authentication routes, every route is protected by theDocumentation 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.
auth and verified middleware, ensuring only authenticated and email-verified users can access the application. Routes are defined in routes/web.php and routes/auth.php.
Dashboard
The root entry point for authenticated users, rendered byDashboardController@index.
| Method | Path | Controller | Route Name | Description |
|---|---|---|---|---|
GET | /dashboard | DashboardController@index | dashboard | KPI summary, vehicle list with progress, admin/evaluator-scoped view |
Registro (Appraisal Creation)
All routes under the/registro prefix handle the multi-step appraisal workflow: creating a vehicle record, choosing an evaluation method, filling in mechanical and visual-inspection data, uploading photos, and viewing the final result. Every route in this group requires auth and verified middleware.
| Method | Path | Controller | Route Name | Description |
|---|---|---|---|---|
GET | /registro/crear | CreateRegistroController@index | registro.index | Show the new vehicle form (loads all brands for select) |
POST | /registro/avaluo | CreateRegistroController@store | registro.store | Persist a new vehicle and its general condition, redirect to method selector |
GET | /registro/seleccionar/{id} | CreateRegistroController@seleccionar | registro.seleccionar | Method-selection screen (mechanical vs inspection) for a vehicle |
POST | /registro/evaluacion/mecanica/store/{id} | MecanicaController@store | evaluacion.mecanica.store | Bulk-insert mechanical system evaluation records |
GET | /registro/evaluacion/mecanica/{id} | MecanicaController@index | evaluacion.mecanica | Show the mechanical evaluation form for a vehicle |
GET | /registro/evaluacion/mecanica/edit/{id} | MecanicaController@edit | evaluacion.mecanica.edit | Show prefilled edit form for a completed mechanical evaluation |
POST | /registro/evaluacion/mecanica/update/{id} | MecanicaController@update | evaluacion.mecanica.update | Update existing mechanical system records (updateOrCreate) |
GET | /registro/evaluacion/inspeccion/{id} | InspeccionController@index | evaluacion.inspeccion | Show the visual fault inspection form |
POST | /registro/evaluacion/inspeccion/store/{id} | InspeccionController@store | evaluacion.inspeccion.store | Bulk-insert visual inspection records |
GET | /registro/evaluacion/inspeccion/edit/{id} | InspeccionController@edit | evaluacion.inspeccion.edit | Show prefilled edit form for a completed inspection |
POST | /registro/evaluacion/inspeccion/update/{id} | InspeccionController@update | evaluacion.inspeccion.update | Update existing inspection records (updateOrCreate) |
GET | /registro/imagenes/vehiculo/{id} | ImagenesController@index | imagenes.vehiculo | Show the vehicle image upload form |
POST | /registro/imagenes/vehiculo/store/{id} | ImagenesController@store | imagenes.vehiculo.store | Upload and persist vehicle images to storage/app/public/vehiculos |
GET | /registro/imagenes/vehiculo/edit/{id} | ImagenesController@edit | imagenes.vehiculo.edit | Show image management screen (replace/delete individual photos) |
POST | /registro/imagenes/vehiculo/update/{id} | ImagenesController@update | imagenes.vehiculo.update | Sync image set: delete removed files, insert new uploads |
GET | /registro/resultado/avaluo/{id} | AvaluoController@index | resultados.avaluo | Calculate depreciation factors and render the final appraisal result |
GET | /registro/resultados/avaluo/edit/{id} | CreateRegistroController@seleccionarEditar | resultados.avaluo.seleccionarEditar | Edit-mode method selector (requires continuar policy) |
GET | /registro/avaluo/editDatosVehiculo/{id} | CreateRegistroController@edit | avaluo.editDatosVehiculo | Load vehicle edit form with existing data and brands |
POST | /registro/avaluo/editDatosVehiculo/update/{id} | CreateRegistroController@update | avaluo.editDatosVehiculo.update | Apply updates to vehicle and general condition records |
GET | /registro/resultados/avaluo/continuar/{id} | CreateRegistroController@show | resultados.avaluo.continuar | Smart redirect: determines next incomplete step in the workflow |
GET | /registro/continuar/avaluo/{id} | ContinuarController@continuar | continuar.avaluo | Resume an in-progress appraisal from the dashboard |
Archivos (PDF Generation)
Generates and stores a PDF report for a completed appraisal usingmccarlosen/laravel-mpdf. The generated file is saved to storage/app/public/pdfReportes/ and the path is persisted in the archivos table.
| Method | Path | Controller | Route Name | Description |
|---|---|---|---|---|
GET | /archivos/generarPdf/{id} | ArchivoControler@generarPdf | archivos.generarPdf | Generate (or regenerate) the PDF appraisal report for vehicle {id} |
Usuarios
User management is restricted to administrators.UserRegistroController delegates role assignment to the Spatie Permission package via syncRoles().
| Method | Path | Controller | Route Name | Description |
|---|---|---|---|---|
GET | /usuarios/listado | UserRegistroController@index | usuarios.listado | List all users with their Spatie roles |
POST | /usuarios/crear | UserRegistroController@store | usuarios.store | Create a new user and assign an initial role |
POST | /usuarios/actualizar/{id} | UserRegistroController@update | usuarios.update | Update name, email, and phone |
POST | /usuarios/cambiar-password/{id} | UserRegistroController@changePassword | usuarios.changePassword | Reset a user’s password (admin only) |
POST | /usuarios/cambiar-rol/{id} | UserRegistroController@changeRole | usuarios.changeRole | Swap a user’s Spatie role (cannot self-modify) |
POST | /usuarios/suspend/{id} | UserRegistroController@changeSuspension | usuarios.suspend | Toggle a user’s is_suspended flag |
DELETE | /usuarios/eliminar/{id} | UserRegistroController@destroy | usuarios.destroy | Soft-delete a user (admins cannot be deleted) |
Reciclaje (Recycle Bin)
Manages soft-deleted vehicles. Therestore and forceDelete routes use ->withTrashed() so that Laravel’s model scoping allows accessing trashed records.
| Method | Path | Controller | Route Name | Description |
|---|---|---|---|---|
GET | /reciclaje/listado | ResourceReciclajeController@index | reciclaje.index | List all soft-deleted vehicles for the current user (or all if admin) |
GET | /reciclaje/restore/{id} | ResourceReciclajeController@restore | reciclaje.restore | Restore a vehicle and all its related records |
DELETE | /reciclaje/forceDelete/{id} | ResourceReciclajeController@forceDelete | reciclaje.forceDelete | Permanently delete a vehicle and its files (admin only) |
DELETE | /reciclaje/destroy/{id} | ResourceReciclajeController@destroy | reciclaje.destroy | Move all vehicle relations to trash and soft-delete the vehicle |
Depreciacion
Manages theMarcaVehiculo catalog that drives depreciation calculations. Each brand stores a tasa_k (annual depreciation rate) and a valor_residual (minimum floor value).
| Method | Path | Controller | Route Name | Description |
|---|---|---|---|---|
GET | /depreciacion/consultar | MarcasController@index | depreciacion.consultar | List all brands ordered by name |
POST | /depreciacion/crear | MarcasController@store | depreciacion.store | Create a new brand with depreciation rates |
POST | /depreciacion/actualizar/{id} | MarcasController@update | depreciacion.update | Update rates for an existing brand |
DELETE | /depreciacion/eliminar/{id} | MarcasController@destroy | depreciacion.destroy | Delete a brand record |
Avaluo Compartido (Sharing)
Handles sharing appraisals with other users. Whenmotivo is "acceso publico", a random 40-character token is generated and stored, enabling the unauthenticated public view route below.
| Method | Path | Controller | Route Name | Description |
|---|---|---|---|---|
GET | /avaluo/share | ShareController@index | avaluo.share.index | List appraisals shared by me and shared with me |
POST | /avaluo/share/{id} | ShareController@store | avaluo.share.store | Share an appraisal with one or more users; generates token if public |
POST | /avaluo/share/update/{id} | ShareController@update | avaluo.share.update | Update sharing dates, status, or motivo (requires update_avaluocompartido permission) |
POST | /avaluo/share/renovar/{id} | ShareController@renovar | avaluo.share.renovar | Renew an expired share link with a new fecha_fin |
DELETE | /avaluo/share/destroy/{id} | ShareController@destroy | avaluo.share.destroy | Revoke a shared appraisal entry (requires delete_avaluocompartido permission) |
Roles & Permisos
Full Spatie Permission management for roles and permissions. All routes are admin-only, enforced inside the controller viahasRole('admin') checks.
| Method | Path | Controller | Route Name | Description |
|---|---|---|---|---|
GET | /roles/listado | RolesController@index | roles.index | List all roles with their permissions (paginated) |
POST | /roles/crear | RolesController@store | roles.store | Create a new role and assign permissions |
POST | /roles/actualizar/{id} | RolesController@update | roles.update | Rename a role and sync its permissions |
POST | /roles/asignarPermisos | RolesController@asignarPermisos | roles.asignarPermisos | Bulk-assign a permission set to an existing role |
POST | /roles/crearPermiso | RolesController@storePermission | roles.storePermission | Create a new named permission |
POST | /roles/actualizarPermiso/{id} | RolesController@updatePermission | roles.updatePermission | Rename an existing permission |
DELETE | /roles/eliminar/{id} | RolesController@destroyRole | roles.destroy | Delete a role (the admin role cannot be deleted) |
DELETE | /roles/eliminarPermiso/{id} | RolesController@destroyPermission | roles.destroyPermission | Delete a permission |
Secciones
Manages the inspection catalog — theSeccionFalla (visual faults) and SeccionTecnica (mechanical systems) master data that drives evaluation forms. Also handles accessory catalog entries.
| Method | Path | Controller | Route Name | Description |
|---|---|---|---|---|
GET | /secciones/listado | InspecionesController@index | secciones.index | List all sections, faults, technical items, and accessories |
POST | /secciones/actualizar/{id} | InspecionesController@updateFalla | secciones.update | Update a visual fault entry |
POST | /secciones/actualizarTecnica/{id} | InspecionesController@updateTecnica | secciones.updateTecnica | Update a technical system entry |
POST | /secciones/actualizarAccesorio/{id} | InspecionesController@updateAccesorio | secciones.updateAccesorio | Update an accessory catalog entry |
POST | /secciones/crearAccesorio | InspecionesController@createAccesorio | secciones.createAccesorio | Create a new accessory catalog entry |
DELETE | /secciones/eliminarAccesorio/{id} | InspecionesController@deleteAccesorio | secciones.deleteAccesorio | Remove an accessory catalog entry |
Accesorios
Manages per-vehicle accessory checklists associated with each appraisal record.| Method | Path | Controller | Route Name | Description |
|---|---|---|---|---|
GET | /accesorios/listado/{id} | AccesorioController@index | accesorios.index | List all accessories for vehicle {id} |
POST | /accesorios/crear/{id} | AccesorioController@store | accesorios.store | Add an accessory record to a vehicle |
GET | /accesorios/edit/{id} | AccesorioController@edit | accesorios.edit | Load the accessory edit form |
POST | /accesorios/actualizar/{id} | AccesorioController@update | accesorios.update | Update an existing accessory record |
Ruta Pública (No Auth)
This is the only route outside of authentication middleware. It allows external stakeholders to view a completed appraisal via a secure, time-limited token without creating an account.| Method | Path | Controller | Route Name | Description |
|---|---|---|---|---|
GET | /avaluo/publico/{token} | AvaluoPublicoController@verPublico | avaluo.publico | Render a full appraisal result for public viewers using a share token |
This is the only unauthenticated application route (outside of
routes/auth.php). The token is a random 40-character string generated by ShareController@store when motivo is set to "acceso publico". The controller validates that the link is activo or renovado and that fecha_fin has not passed; expired links return an HTTP 403.Auth Routes
Authentication routes live inroutes/auth.php and are handled by Laravel Breeze. Public guest-only routes include login and password reset; routes requiring auth middleware handle email verification and logout. Note: User self-registration is commented out — new accounts are created exclusively by an administrator via /usuarios/crear.
| Method | Path | Middleware | Description |
|---|---|---|---|
GET | /login | guest | Show login form |
POST | /login | guest | Authenticate user session |
GET | /forgot-password | guest | Show password reset request form |
POST | /forgot-password | guest | Send password reset link email |
GET | /reset-password/{token} | guest | Show new password form |
POST | /reset-password | guest | Store new password |
GET | /verify-email | auth | Email verification notice prompt |
GET | /verify-email/{id}/{hash} | auth | Confirm email verification link |
POST | /email/verification-notification | auth | Resend verification email (throttled) |
POST | /logout | auth | Destroy authenticated session |