# 🛠️ Stack Tecnológico y Arquitectura

## Frontend

| Tecnología | Versión | Propósito |
|------------|---------|-----------|
| **Blade** | Laravel 12 | Motor de plantillas server-side |
| **Tailwind CSS** | 4.x | Framework CSS responsivo |
| **Vite** | 7.x | Bundler y hot-reload |
| **Axios** | 1.11 | Cliente HTTP para APIs |

## Backend

| Tecnología | Versión | Propósito |
|------------|---------|-----------|
| **PHP** | 8.2+ | Lenguaje de programación |
| **Laravel** | 12.x | Framework PHP |
| **Composer** | latest | Gestor de dependencias PHP |

## Base de Datos

| Tecnología | Propósito |
|------------|-----------|
| **SQLite** | Desarrollo - Base de datos embebida (predeterminado para pruebas rápidas) |
| **MySQL/MariaDB** | Desarrollo y Producción - Motor relacional alternativo |
| **PostgreSQL** | Producción - Motor relacional recomendado (escalabilidad) |
| **Eloquent ORM** | ORM de Laravel para acceso a datos |

## Librerías Externas

| Paquete | Propósito |
|---------|-----------|
| **picqer/php-barcode-generator** | Generación de códigos de barras |
| **phpoffice/phpspreadsheet** | Lectura/escritura de archivos Excel/CSV |

## Patrón de Arquitectura

**MVC (Model-View-Controller)**

```
┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   Models     │────▶│ Controllers  │────▶│   Views      │
│ (Eloquent)   │◀────│   (Laravel) │◀────│   (Blade)    │
└─────────────┘     └─────────────┘     └─────────────┘
```

## Estructura del Proyecto

```
almacen2/
├── app/
│   ├── Http/
│   │   ├── Controllers/           # Controladores HTTP
│   │   │   ├── AdministracionController.php
│   │   │   ├── AlmacenController.php
│   │   │   ├── AsignacionController.php
│   │   │   ├── AsignacionOperacionController.php
│   │   │   ├── ReporteInventarioController.php
│   │   │   ├── ReporteLegacyController.php
│   │   │   ├── GraficasController.php
│   │   │   ├── DashboardController.php
│   │   │   ├── TestingCrud/       # ⚠️ Controlador de pruebas CRUD
│   │   │   │   └── ModelCrudController.php
│   │   │   ├── Administracion/    # CRUD genérico
│   │   │   │   └── Crud/ModelCrudController.php
│   │   │   ├── Auth/              # Autenticación (Breeze)
│   │   │   └── Middleware/       # Middlewares personalizados
│   ├── Models/                   # Modelos Eloquent
│   └── Providers/                # Proveedores de servicios
├── bootstrap/                     # Inicialización
├── config/                       # Configuración
├── database/
│   ├── factories/                # Factorías para tests
│   ├── migrations/               # Migraciones
│   └── seeders/                 # Seeders
├── lang/                        # Archivos de idioma (ES)
├── public/                      # Archivos públicos
├── resources/views/             # Plantillas Blade
├── routes/web.php               # Rutas web
├── storage/                     # Archivos almacenados
└── tests/                      # Pruebas PHPUnit/Pest
```

## Descripción de Directorios Clave

| Directorio | Propósito |
|------------|-----------|
| `app/Http/Controllers` | Toda la lógica de controladores |
| `app/Models` | Modelos Eloquent con relaciones y métodos |
| `database/migrations` | Esquema de base de datos versionado |
| `resources/views` | Plantillas Blade organizadas por módulo |
| `routes/web.php` | Definición de todas las rutas web |

---

*Última actualización: Marzo 2026*
