first commit
This commit is contained in:
commit
4916940e2b
|
|
@ -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**
|
||||
Loading…
Reference in New Issue