Sistema de gestión de vehículos desarrollado con Laravel 12 y Filament 4 para administrar clientes y sus vehículos de manera eficiente.
# 1. Clonar e instalar
git clone <url-del-repositorio>
cd PHP-CAR
composer install
cp .env.example .env
# 2. Configurar MySQL en .env
# DB_DATABASE=vip2cars
# DB_USERNAME=root
# DB_PASSWORD=tu_contraseña
# APP_TIMEZONE=America/Lima
# 3. Crear base de datos y ejecutar
mysql -u root -p -e "CREATE DATABASE vip2cars CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
php artisan key:generate
php artisan migrate --seed
php artisan serveAcceso: http://127.0.0.1:8000/admin/login (admin@vip2cars.com / 123456)
Important
Asegúrate de cumplir con todos los requisitos antes de proceder con la instalación.
- PHP: ^8.2
- Composer: Última versión estable
- MySQL: 5.7+ o MariaDB 10.3+
- phpMyAdmin: Para administración de base de datos (recomendado)
Note
La mayoría de extensiones vienen habilitadas por defecto con PHP 8.2+. Solo necesitas instalar las marcadas como "(Instalar si es necesario)".
Extensiones incluidas por defecto en PHP 8.2+: Ver lista completa
Extensiones que requeridas por Laravel como mínimo: Requisitos Laravel
- Laravel Framework: ^12.0
- Filament: ^4.0 (Panel de administración)
- Laravel Tinker: ^2.10 (REPL para desarrollo)
git clone <url-del-repositorio>
cd PHP-CAR
composer install
cp .env.example .envCrea la base de datos vip2cars en MySQL:
CREATE DATABASE vip2cars CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;Edita el archivo .env con tus datos de MySQL:
DB_DATABASE=vip2cars
DB_USERNAME=root
DB_PASSWORD=tu_contraseña# Generar clave de aplicación
php artisan key:generate
# Crear tablas y datos de prueba
php artisan migrate --seed
# Iniciar servidor
php artisan serveTip
¡Listo! Accede a http://127.0.0.1:8000/admin/login
Usuario: admin@vip2cars.com
Contraseña: 123456
CREATE TABLE users (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL,
email_verified_at TIMESTAMP NULL,
password VARCHAR(255) NOT NULL,
remember_token VARCHAR(100) NULL,
created_at TIMESTAMP NULL,
updated_at TIMESTAMP NULL
);CREATE TABLE customers (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
first_name VARCHAR(255) NOT NULL, -- Nombre del cliente
last_name VARCHAR(255) NOT NULL, -- Apellidos del cliente
document_number VARCHAR(255) UNIQUE NOT NULL, -- Nro. de documento del cliente
email VARCHAR(255) UNIQUE NOT NULL, -- Correo del cliente
phone VARCHAR(255) NOT NULL, -- Teléfono del cliente
created_at TIMESTAMP NULL,
updated_at TIMESTAMP NULL
);CREATE TABLE vehicles (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
license_plate VARCHAR(255) UNIQUE NOT NULL, -- Placa
brand VARCHAR(255) NOT NULL, -- Marca
model VARCHAR(255) NOT NULL, -- Modelo
manufacturing_year YEAR NOT NULL, -- Año de fabricación
customer_id BIGINT UNSIGNED NOT NULL, -- Relación con cliente
created_at TIMESTAMP NULL,
updated_at TIMESTAMP NULL,
FOREIGN KEY (customer_id) REFERENCES customers(id) ON DELETE CASCADE
);- customers → vehicles: Un cliente puede tener múltiples vehículos (1:N)
- Al eliminar un cliente, se eliminan automáticamente sus vehículos (CASCADE)
Warning
La eliminación de un cliente es irreversible y eliminará todos sus vehículos asociados.
Important
Después de ejecutar php artisan db:seed, se creará automáticamente un usuario administrador.
- Email:
admin@vip2cars.com - Contraseña:
123456 - Nombre:
Administrador VIP2CARS
Clientes de ejemplo:
- Juan Carlos Pérez García (DNI: 12345678)
- María Elena Rodríguez López (DNI: 87654321)
- Carlos Alberto Mendoza Silva (DNI: 11223344)
- Ana Sofía Torres Vega (DNI: 44332211)
- Roberto Jiménez Castro (DNI: 55667788)
Vehículos de ejemplo:
- Toyota Corolla 2020 (Placa: ABC-123)
- Honda Civic 2019 (Placa: DEF-456)
- Nissan Sentra 2021 (Placa: GHI-789)
- Hyundai Elantra 2018 (Placa: JKL-012)
- Kia Rio 2022 (Placa: MNO-345)
- Chevrolet Spark 2020 (Placa: PQR-678)
- Ford Fiesta 2019 (Placa: STU-901)
- ✅ CRUD Completo: Crear, leer, actualizar y eliminar clientes
- ✅ Validaciones: Campos únicos (documento, email) y requeridos
- ✅ Búsqueda: Por nombre completo, documento y email
- ✅ Filtros: Clientes con/sin vehículos
- ✅ Ordenamiento: Por cualquier columna
- ✅ Paginación: 5, 10, 25, 50 registros por página
- ✅ Columnas Toggleables: Mostrar/ocultar columnas según preferencia
- ✅ Conteo de Vehículos: Muestra cantidad de vehículos por cliente
- ✅ CRUD Completo: Crear, leer, actualizar y eliminar vehículos
- ✅ Relación con Clientes: Cada vehículo pertenece a un cliente
- ✅ Búsqueda: Por placa, marca, modelo y datos del cliente
- ✅ Filtros Avanzados: Por marca, año reciente (2020+) y cliente
- ✅ Descripción Completa: Muestra "Marca Modelo (Año)"
- ✅ Validaciones: Placa única y campos requeridos
- ✅ Columnas Toggleables: Personalizar vista de tabla
- ✅ Interface Moderna: Desarrollado con Filament 4.0
- ✅ Autenticación: Sistema de login seguro
- ✅ Responsive: Adaptable a diferentes dispositivos
- ✅ Persistencia: Guarda filtros, búsquedas y ordenamiento
- ✅ Acciones en Lote: Eliminación múltiple de registros
- ✅ Navegación Intuitiva: Menús organizados y fáciles de usar
# Crear un nuevo usuario administrador
php artisan make:filament-user
# Recargar base de datos con datos de prueba
php artisan migrate:fresh --seed
# Limpiar cache si hay problemas
php artisan optimize:clearWarning
Para producción, configura estas variables en .env:
APP_ENV=production
APP_DEBUG=false
APP_URL=https://tu-dominio.com
# Base de datos de producción
DB_HOST=tu-servidor-mysql
DB_DATABASE=vip2cars_prod
DB_USERNAME=usuario_prod
DB_PASSWORD=contraseña_seguraComandos de despliegue:
php artisan config:cache
php artisan route:cache
php artisan view:cacheNote
Este sistema utiliza MySQL como base de datos principal. Asegúrate de tener MySQL y phpMyAdmin instalados y configurados.
Tip
Para personalizar el panel de administración, revisa la documentación de Filament en https://filamentphp.com
Important
El acceso al panel de administración es exclusivamente a través de /admin/login. No hay frontend público.