5.7 KiB
5.7 KiB
💰 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
- Servidor PHP requerido (XAMPP, WAMP, o similar)
- Habilitar mod_rewrite en Apache
- Copiar el proyecto en la carpeta del servidor web
- Asegurar permisos de escritura en la carpeta
data/ - Verificar que
.htaccessesté en la raíz - 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 para más detalles sobre el sistema de URLs.
📖 Uso
1. Inicio de Sesión
- Accede a https://cotizador.penki.com.ar
- Introduce tu PIN de 4 dígitos
- Puedes usar el teclado numérico en pantalla o tu teclado físico
- 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
- Completa el formulario con:
- Nombre del artículo
- Precio en Argentina (ARS)
- Precio en el país extranjero
- Responsable
- Click en "Agregar"
- Edita precios directamente en la tabla
- 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{ "pin": "1234" }GET- Verificar sesión activaDELETE- Cerrar sesión
Productos por País
Brasil: api/brasil.php
Chile: api/chile.php
Métodos soportados:
GET- Obtener todos los productosPOST- Guardar productos (JSON array)DELETE- Eliminar producto por ID
Ejemplo de Producto
{
"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:
$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