Initial commit: Lash Vanshy - Complete project with admin panel, gallery, products, and contact

This commit is contained in:
2026-04-08 00:23:16 -06:00
commit e07e065791
111 changed files with 17939 additions and 0 deletions

352
PLAN_TECNICO.md Executable file
View File

@@ -0,0 +1,352 @@
# PLAN DE DESARROLLO: Lash Vanshy
## 1. Estructura del Proyecto
```
lash/
├── app/
│ ├── Http/
│ │ ├── Controllers/
│ │ │ ├── Frontend/
│ │ │ │ ├── HomeController.php
│ │ │ │ ├── GaleriaController.php # Modelos
│ │ │ │ ├── ProductoController.php
│ │ │ │ └── ContactoController.php
│ │ │ └── Admin/
│ │ │ ├── DashboardController.php
│ │ │ ├── GaleriaController.php
│ │ │ ├── ProductoController.php
│ │ │ ├── ContactoController.php
│ │ │ └── AdminUserController.php
│ │ ├── Middleware/
│ │ │ └── AdminAuth.php
│ │ └── Requests/
│ │ ├── GaleriaRequest.php
│ │ ├── ProductoRequest.php
│ │ └── AdminUserRequest.php
│ ├── Models/
│ │ ├── Galeria.php
│ │ ├── Producto.php
│ │ ├── Mensaje.php
│ │ ├── Configuracion.php
│ │ └── AdminUser.php
│ └── Providers/
├── database/
│ └── migrations/
├── public/
│ ├── assets/
│ │ ├── css/
│ │ ├── js/
│ │ └── images/
│ └── uploads/
│ ├── galeria/
│ └── productos/
├── resources/
│ ├── views/
│ │ ├── frontend/
│ │ │ ├── layouts/
│ │ │ ├── home/
│ │ │ ├── galeria/
│ │ │ ├── productos/
│ │ │ └── contacto/
│ │ └── admin/
│ │ ├── layouts/
│ │ ├── dashboard/
│ │ ├── galeria/
│ │ ├── productos/
│ │ ├── mensajes/
│ │ └── usuarios/
│ └── assets/
│ └── sass/
├── routes/
│ ├── web.php
│ └── admin.php
└── config/
```
---
## 2. Modelos de Base de Datos
### Tabla: admin_users
```sql
- id (bigint, PK)
- name (varchar 255)
- email (varchar 255, unique)
- password (varchar 255)
- rol (enum: 'super_admin', 'admin')
- avatar (varchar 255, nullable)
- created_at (timestamp)
- updated_at (timestamp)
```
### Tabla: galerias (Modelos - fotos/videos)
```sql
- id (bigint, PK)
- titulo (varchar 255)
- descripcion (text, nullable)
- tipo (enum: 'imagen', 'video')
- archivo (varchar 255)
- thumbnail (varchar 255, nullable) - para videos
- orden (int, default 0)
- activo (boolean, default true)
- created_at (timestamp)
- updated_at (timestamp)
```
### Tabla: productos
```sql
- id (bigint, PK)
- nombre (varchar 255)
- descripcion (text)
- precio (decimal 10,2)
- imagen (varchar 255, nullable)
- categoria (varchar 100)
- destacado (boolean, default false)
- activo (boolean, default true)
- orden (int, default 0)
- created_at (timestamp)
- updated_at (timestamp)
```
### Tabla: mensajes (contacto)
```sql
- id (bigint, PK)
- nombre (varchar 255)
- email (varchar 255)
- telefono (varchar 50, nullable)
- mensaje (text)
- leido (boolean, default false)
- created_at (timestamp)
- updated_at (timestamp)
```
### Tabla: configuraciones
```sql
- id (bigint, PK)
- clave (varchar 100, unique)
- valor (text)
- descripcion (varchar 255)
- created_at (timestamp)
- updated_at (timestamp)
```
---
## 3. Rutas y Endpoints
### Rutas Frontend (Públicas)
| Método | URL | Controlador | Acción |
|--------|-----|-------------|--------|
| GET | / | HomeController | index |
| GET | /modelos | GaleriaController | index |
| GET | /productos | ProductoController | index |
| GET | /contacto | ContactoController | index |
| POST | /contacto | ContactoController | send |
### Rutas Admin
| Método | URL | Controlador | Acción |
|--------|-----|-------------|--------|
| GET | /admin/login | AuthController | showLogin |
| POST | /admin/login | AuthController | login |
| POST | /admin/logout | AuthController | logout |
| GET | /admin | DashboardController | index |
| GET | /admin/modelos | GaleriaController | index |
| GET | /admin/modelos/create | GaleriaController | create |
| POST | /admin/modelos | GaleriaController | store |
| GET | /admin/modelos/{id}/edit | GaleriaController | edit |
| PUT | /admin/modelos/{id} | GaleriaController | update |
| DELETE | /admin/modelos/{id} | GaleriaController | destroy |
| GET | /admin/productos | ProductoController | index |
| GET | /admin/productos/create | ProductoController | create |
| POST | /admin/productos | ProductoController | store |
| GET | /admin/productos/{id}/edit | ProductoController | edit |
| PUT | /admin/productos/{id} | ProductoController | update |
| DELETE | /admin/productos/{id} | ProductoController | destroy |
| GET | /admin/mensajes | MensajeController | index |
| GET | /admin/mensajes/{id} | MensajeController | show |
| PUT | /admin/mensajes/{id}/leido | MensajeController | markRead |
| DELETE | /admin/mensajes/{id} | MensajeController | destroy |
| GET | /admin/usuarios | AdminUserController | index |
| GET | /admin/usuarios/create | AdminUserController | create |
| POST | /admin/usuarios | AdminUserController | store |
| GET | /admin/usuarios/{id}/edit | AdminUserController | edit |
| PUT | /admin/usuarios/{id} | AdminUserController | update |
| DELETE | /admin/usuarios/{id} | AdminUserController | destroy |
---
## 4. Componentes Frontend
### Estructura Visual (Rosa Pastel + Blanco)
**Paleta de colores:**
- Primario: Rosa pastel (#F8B4C4 o similar)
- Fondo: Blanco (#FFFFFF)
- Acento: Rosa más oscuro (#E89AAD)
- Texto: Gris oscuro (#4A4A4A)
- Secundario: Crema (#FFF5F7)
### Páginas Frontend
1. **Home** (`/`)
- Hero con imagen de pestañas
- Breve descripción del negocio
- Servicios destacados
- Call to action (reservar cita)
- Testimonios (gestionado desde admin)
- Footer con contacto básico
2. **Modelos (Galería)** (`/modelos`)
- Grid de imágenes/videos de trabajos
- Filtro por tipo (imagen/video)
- Lightbox para ampliar imágenes
- Videos con thumbnail reproducibles
3. **Productos** (`/productos`)
- Lista de servicios/tratamientos
- Precio visible
- Descripción del servicio
- Imagen representativa
- NO tiene carrito, solo mostrar
4. **Contacto** (`/contacto`)
- Formulario: nombre, email, teléfono, mensaje
- Datos de contacto (teléfono, ubicación)
- Mapa (opcional)
- Horario de atención
---
## 5. Módulos de Administración
### Dashboard
- Estadísticas básicas (mensajes nuevos, modelos, productos)
- Acceso rápido a secciones
### Gestión Modelos (CRUD)
- Listado con paginación
- Crear: título, descripción, tipo, archivo, orden
- Editar: todos los campos
- Eliminar (soft delete)
- Reordenar mediante drag & drop o campo orden
### Gestión Productos (CRUD)
- Listado con paginación
- Crear: nombre, descripción, precio, imagen, categoría, destacado
- Editar: todos los campos
- Eliminar
- Filtrar por categoría
- Marcar como destacado
### Gestión Mensajes
- Listado de mensajes recibidos
- Ver mensaje completo
- Marcar como leído/no leído
- Eliminar mensaje
- Contador de mensajes sin leer
### Gestión Administradores
- Listado de usuarios admin
- Crear nuevo admin (solo super_admin)
- Editar admin
- Eliminar admin
- Cambiar rol (admin/super_admin)
### Configuración
- Datos del negocio (nombre, teléfono, email, dirección)
- Redes sociales
- Textos personalizados del Home
---
## 6. Dependencias Necessárias
### Composer (Laravel)
```json
{
"require": {
"php": "^8.1",
"laravel/framework": "^10.0",
"intervention/image": "^2.7", // Manejo de imágenes
"laravel/sanctum": "^3.3" // Autenticación API
}
}
```
### NPM (Frontend)
```json
{
"devDependencies": {
"sass": "^1.69",
"bootstrap": "^5.3",
"axios": "^1.6"
}
}
```
---
## 7. Pasos de Implementación
### Fase 1: Configuración Inicial
1. Crear proyecto Laravel nuevo
2. Configurar conexión BD en `.env`
3. Configurar Apache (VirtualHost)
4. Instalar dependencias composer
5. Configurar黏膜 Storage para uploads
### Fase 2: Base de Datos
1. Crear migrations para todas las tablas
2. Ejecutar migraciones
3. Crear seeders con datos iniciales
### Fase 3: Modelos y Controladores Backend
1. Crear modelos Eloquent
2. Crear controladores de admin
3. Crear requests para validación
4. Implementar lógica CRUD
### Fase 4: Autenticación Admin
1. Implementar login/logout
2. Crear middleware de autenticación
3. Proteger rutas de admin
4. Manejo de sesiones seguras
### Fase 5: Vistas Frontend
1. Crear layouts (header, footer)
2. Implementar Home con diseño pastel
3. Implementar Galería Modelos
4. Implementar Productos
5. Implementar Contacto
### Fase 6: Vistas Admin
1. Crear layout admin
2. Dashboard con estadísticas
3. CRUD Modelos con upload de archivos
4. CRUD Productos con upload de imágenes
5. Gestión de Mensajes
6. Gestión de Usuarios Admin
### Fase 7: Funcionalidades Extras
1. Configuraciones editables
2. Reordenar elementos (drag & drop)
3. Exportar/marcar mensajes como leídos
### Fase 8: Seguridad y Optimización
1. Validación CSRF en formularios
2. Sanitización de inputs
3. Headers de seguridad
4. Optimización de imágenes
5. Cache de rutas
---
## 8. Consideraciones de Diseño
- **Estilo**: Elegante, minimalista, profesional
- **Colores**: Rosa pastel (#F8B4C4), Blanco, acentos en gris suave
- **Tipografía**: Sans-serif limpia (ej: Poppins, Open Sans)
- **Imágenes**: Alta calidad, optimizadas
- **Responsive**: Mobile-first, funcional en todos dispositivos
- **UX**: Navegación intuitiva, tiempos de carga rápidos