Files
lash_vanshy/PLAN_TECNICO.md

9.6 KiB
Executable File

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

- 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)

- 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

- 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)

- 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

- 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)

{
    "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)

{
    "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