commit 4916940e2b2b365ae6e6e83ccfbad114745eed8a Author: Penki Date: Wed May 27 09:54:54 2026 -0300 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..2e5cb6f --- /dev/null +++ b/README.md @@ -0,0 +1,200 @@ +# 💰 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 `http://localhost/calculos/login` + +### URLs Disponibles + +**Producción:** https://calculos.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://calculos.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**