Avalúo Vehicular follows a monolithic full-stack architecture — a single Laravel 12 application handles all routing, business logic, and appraisal calculations on the server, while delivering a fully reactive React 19 interface to the browser. There is no separate REST API; instead, Inertia.js acts as the bridge between Laravel controllers and React page components, allowing developers to write server-side PHP code that drives a seamless SPA experience without the overhead of maintaining two independent services.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.
Inertia.js Pattern
Inertia.js replaces the traditional JSON API + client-side data-fetching pattern with a protocol that lets Laravel controllers render React components directly. The server owns the routing — every URL maps to a Laravel route and a PHP controller method. When the controller is done processing, it callsInertia::render(), passing the component name and a data array. Inertia serializes that array as JSON props, and the React component receives them as first-class TypeScript props on every page load and navigation.
Ziggy (
tightenco/ziggy) compiles all named Laravel routes into a JavaScript object that is injected on every page. This means you can call route('dashboard') or route('vehiculos.show', { id: 1 }) in React components exactly as you would in a Blade view, with no hardcoded URL strings.Directory Structure
The project is organized so that the PHP domain and the React domain mirror each other conceptually.| Path | Purpose |
|---|---|
app/Http/Controllers/Registro/ | Vehicle registration & appraisal controllers |
app/Http/Controllers/Inspeciones/ | Inspection (faults & technical sections) controllers |
app/Http/Controllers/Share/ | Appraisal sharing & public token controllers |
app/Http/Controllers/RolesPermisos/ | Spatie role & permission management |
app/Http/Controllers/User/ | User profile & administration |
app/Http/Controllers/Accesorios/ | Vehicle accessory management |
app/Http/Controllers/Reciclaje/ | Soft-deleted record recovery |
app/Models/ | Eloquent models (one per database table) |
resources/js/pages/ | React page components (mapped 1:1 to Inertia::render() calls) |
resources/js/components/ | Shared, reusable React components |
resources/js/layouts/ | Top-level page layout wrappers |
routes/web.php | All application routes (no api.php is used) |
database/migrations/ | Ordered schema migrations |
Frontend Stack
The React layer is written entirely in TypeScript and uses the following dependencies (frompackage.json):
| Package | Version | Role |
|---|---|---|
react | ^19.2.3 | UI framework |
@inertiajs/react | ^2.1.4 | Inertia adapter for React |
tailwindcss | ^4.0.0 | Utility-first CSS |
@radix-ui/* | various | Accessible headless UI primitives (Dialog, Select, Dropdown, Tooltip, etc.) |
lucide-react | ^0.475.0 | Icon library |
recharts | ^3.5.0 | Dashboard data visualisation charts |
ziggy-js | ^2.6.0 | Laravel route helpers in JS |
typescript | ^5.7.2 | Static typing |
class-variance-authority | ^0.7.1 | Component variant styling |
clsx | ^2.1.1 | Conditional class name helper |
tailwind-merge | ^3.0.1 | Merge Tailwind classes without conflicts |
Build Tooling
Assets are compiled with Vite 7, configured viavite.config.ts:
laravel-vite-plugin handles hot-module replacement during development and asset hashing for production. Server-side rendering is supported via ssr.tsx and can be started with php artisan inertia:start-ssr.