# 💰 Comparador de Precios Internacional

Sistema web para comparar precios entre Argentina y otros países (Brasil, Chile) con cotizaciones en tiempo real y autenticación por PIN.

## 📁 Estructura del Proyecto

```
calculos/
├── index.php               # Entrada principal (redirige a login)
├── app.php                 # Router para páginas
├── .htaccess               # URL rewriting
├── favicon.ico             # Icono del sitio
│
├── api/                    # APIs PHP
│   ├── auth.php            # Autenticación y sesiones
│   ├── brasil.php          # API para productos de Brasil
│   └── chile.php           # API para productos de Chile
│
├── config/                 # Configuración
│   ├── pins.php            # PINs de usuarios
│   └── config.php          # Configuración general
│
├── data/                   # Archivos JSON de datos
│   ├── productos_brasil.json
│   └── productos_chile.json
│
├── pages/                  # Páginas
│   ├── login.php           # Login con PIN
│   ├── brasil.html         # Contenido Brasil
│   └── chile.html          # Contenido Chile
│
└── assets/
    └── js/
        ├── auth.js         # Sistema de autenticación
        ├── layout.js       # Gestor de layout común
        └── app.js          # Lógica JavaScript común
```

## 🚀 Características

- ✅ **Autenticación con PIN** - Sistema de login con PIN de 4 dígitos + teclado numérico
- ✅ **Cotizador integrado** - Modal para convertir precios extranjeros a ARS
- ✅ **Sesiones seguras** - Gestión de sesiones con PHP
- ✅ **URLs Amigables** - `/brasil`, `/chile` (mod_rewrite)
- ✅ **Layout Unificado** - Navbar y Footer gestionados centralmente
- ✅ **Menú Hamburguesa** - Navegación móvil optimizada
- ✅ **Cotización en tiempo real** - API de exchangerate-api.com
- ✅ **Múltiples países** - Brasil (BRL) y Chile (CLP)
- ✅ **Gestión de productos** - Agregar, editar, eliminar
- ✅ **Cálculo automático** - Diferencias de precio
- ✅ **Organización por responsable** - Marce / Eli
- ✅ **Persistencia** - Datos guardados en JSON vía PHP
- ✅ **100% Responsive** - Mobile-first design con TailwindCSS

## 🛠️ Instalación

1. **Servidor PHP requerido** (XAMPP, WAMP, o similar)
2. **Habilitar mod_rewrite** en Apache
3. Copiar el proyecto en la carpeta del servidor web
4. Asegurar permisos de escritura en la carpeta `data/`
5. Verificar que `.htaccess` esté en la raíz
6. Acceder a `https://cotizador.penki.com.ar/login`

### URLs Disponibles

**Producción:** https://cotizador.penki.com.ar

- `/` (raíz) - Página de inicio de sesión
- `/login` - Redirige a la raíz
- `/brasil` - Comparador Argentina-Brasil
- `/chile` - Comparador Argentina-Chile

Ver [README_URLS.md](README_URLS.md) para más detalles sobre el sistema de URLs.

## 📖 Uso

### 1. Inicio de Sesión
1. Accede a https://cotizador.penki.com.ar
2. Introduce tu PIN de 4 dígitos
3. Puedes usar el teclado numérico en pantalla o tu teclado físico
4. Una vez autenticado, selecciona el país

**PINs predeterminados:**
- **1234** - Marce
- **5678** - Eli
- **0000** - Admin

### 2. Selección de País
- Click en la tarjeta de Brasil o Chile
- Serás redirigido a la página de comparación correspondiente

### 3. Gestión de Productos
1. Completa el formulario con:
   - Nombre del artículo
   - Precio en Argentina (ARS)
   - Precio en el país extranjero
   - Responsable
2. Click en "Agregar"
3. Edita precios directamente en la tabla
4. Elimina productos con el botón "Eliminar"

### Interpretación de Resultados
- **Verde** = Conviene comprar en el país extranjero
- **Rojo** = Conviene comprar en Argentina
- Totales por responsable y global

## 🔧 APIs

### Autenticación
**Endpoint**: `api/auth.php`

**Métodos:**
- `POST` - Autenticar con PIN
  ```json
  { "pin": "1234" }
  ```
- `GET` - Verificar sesión activa
- `DELETE` - Cerrar sesión

### Productos por País

**Brasil**: `api/brasil.php`
**Chile**: `api/chile.php`

**Métodos soportados:**
- `GET` - Obtener todos los productos
- `POST` - Guardar productos (JSON array)
- `DELETE` - Eliminar producto por ID

### Ejemplo de Producto

```json
{
    "id": 1,
    "articulo": "Producto Ejemplo",
    "precioAr": 100000,
    "precioBra": 500,
    "responsable": "Marce"
}
```

## 🎨 Tecnologías

- HTML5
- **TailwindCSS** - Framework CSS utility-first
- JavaScript ES6+ (Vanilla JS)
- PHP 7+ con sesiones
- JSON para persistencia
- Fetch API para comunicación con backend

## 🔑 Configuración de PINs

Para agregar o modificar PINs, edita el archivo `config/pins.php`:

```php
$pines_validos = [
    '1234' => 'Marce',
    '5678' => 'Eli',
    '0000' => 'Admin',
    'XXXX' => 'Nuevo Usuario'  // Agregar aquí
];
```

## 🔐 Seguridad

✅ **Implementado:**
- Sistema de autenticación con PIN
- Sesiones PHP
- Protección de páginas (requieren login).

⚠️ **Para producción se recomienda:**
- Hashear PINs en base de datos
- Validación más estricta de datos en servidor
- Protección CSRF
- HTTPS obligatorio
- Rate limiting en APIs
- Bloqueo tras intentos fallidos
- Logs de acceso

## 📝 Cambios Recientes

### v2.0 (Octubre 2025)
- ✅ Sistema de autenticación con PIN de 4 dígitos
- ✅ Migración completa a TailwindCSS
- ✅ Eliminación de Bootstrap y jQuery
- ✅ Código JavaScript moderno (ES6+, Fetch API)
- ✅ Interfaz mejorada con gradientes y animaciones
- ✅ Teclado numérico en pantalla para móviles
- ✅ Gestión de sesiones PHP
- ✅ Reorganización de estructura de archivos
- ✅ APIs separadas por país
- ✅ Botón de logout en todas las páginas

## 📄 Licencia

Proyecto personal - Uso libre

---

**Desarrollado con ❤️ | 2025**
