Go to file
Marcelo d293a760b4 se modifico la url 2026-05-27 15:59:30 -03:00
api version en produccion 2026-05-27 09:55:55 -03:00
assets/js version en produccion 2026-05-27 09:55:55 -03:00
config version en produccion 2026-05-27 09:55:55 -03:00
data version en produccion 2026-05-27 09:55:55 -03:00
pages agregue un punto al titulo 2026-05-27 15:10:04 -03:00
.env version en produccion 2026-05-27 09:55:55 -03:00
.htaccess version en produccion 2026-05-27 09:55:55 -03:00
CHANGELOG.md version en produccion 2026-05-27 09:55:55 -03:00
INSTRUCCIONES.md version en produccion 2026-05-27 09:55:55 -03:00
PERMISOS_LINUX.md version en produccion 2026-05-27 09:55:55 -03:00
README.md se modifico la url 2026-05-27 15:59:30 -03:00
RESUMEN_FINAL.md version en produccion 2026-05-27 09:55:55 -03:00
app.php version en produccion 2026-05-27 09:55:55 -03:00
favicon.ico version en produccion 2026-05-27 09:55:55 -03:00
home.php version en produccion 2026-05-27 09:55:55 -03:00
index.php version en produccion 2026-05-27 09:55:55 -03:00
layout.html version en produccion 2026-05-27 09:55:55 -03:00
remotoip.php version en produccion 2026-05-27 09:55:55 -03:00

README.md

💰 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 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
    { "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

{
    "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