# 💰 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**