Este proyecto ha sido desarrollado como continuación del proyecto anterior realizado en la UF3, donde se trabajó un catálogo de propiedades. En esta nueva fase, se ha añadido un sistema completo de ventas, incluyendo carrito de compra, pedidos y un historial asociado al usuario, junto con una API RESTful para integraciones modernas.
- Laravel con Breeze para autenticación
- Laravel Sanctum para autenticación por tokens en la API
- MySQL como sistema de base de datos relacional
- Blade como motor de plantillas
- Tailwind CSS para el diseño visual
- Vite para compilar los assets de frontend
Este proyecto amplía el trabajo anterior realizado en la UF3, donde ya teníamos:
- Gestión de usuarios y roles (admin/user)
- CRUD completo de propiedades con imagen, título, descripción, ubicación, tipo (venta/alquiler), etc.
Ahora se ha implementado:
- Sistema de carrito basado en sesiones
- Generación de pedidos desde el carrito
- Historial de pedidos accesible desde el frontend
- API protegida por Sanctum para registrar y ver pedidos
- Mejoras visuales y organización del código
/app/Models/→ Modelos Eloquent comoUser,Property,Order,OrderItem/app/Http/Controllers/→ Controladores para lógica de negocio (OrderController,PropertyController, etc.)/resources/views/→ Plantillas Blade con estructura responsive y estilos personalizados/routes/web.phpy/routes/api.php→ Definición de rutas frontend y API respectivamente
La API está protegida por tokens de Laravel Sanctum. Incluye:
POST /api/login→ Devuelve token a partir del email y passwordGET /api/orders→ Devuelve historial del usuario autenticadoPOST /api/orders→ Registra un nuevo pedido (recibe JSON con propiedades y cantidades)
- Ver listado de propiedades públicas y privadas
- Crear/editar/eliminar propiedades (si el usuario tiene permisos)
- Añadir propiedades al carrito desde el frontend
- Confirmar pedido desde la vista de carrito → se envía a la API con token
- Ver historial de pedidos desde una vista protegida (
/orders)
- Crear proyecto base:
laravel new darentvid
cd darentvid- Instalar Breeze:
composer require laravel/breeze --dev
php artisan breeze:install
npm install && npm run dev
php artisan migrate- Instalar Sanctum:
composer require laravel/sanctum
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
php artisan migrate- Crear modelos y migraciones:
php artisan make:model Order -m
php artisan make:model OrderItem -m- Crear controladores:
php artisan make:controller OrderController
php artisan make:controller CartController- Ejecutar servidor y Vite:
php artisan serve
npm run dev- Para probar el login y obtener el token: usar Thunder Client o Postman →
POST /api/login - Para enviar un pedido:
POST /api/orderscon token en cabeceraAuthorization: Bearer {TOKEN} - Desde el frontend, al pulsar "Confirmar pedido" se lanza automáticamente la petición