# Sistema Web - La Pecosa Rotisería

Sistema web para la rotisería **La Pecosa** (Paraná, Entre Ríos). El proyecto está compuesto por un sitio público donde los clientes pueden ver el catálogo de productos y armar un pedido, y un panel de administración para la gestión interna del negocio (productos, categorías, pedidos y copias de seguridad).

## Tecnologías

- **Backend:** PHP 8.x
- **Base de datos:** MySQL / MariaDB
- **Frontend:** HTML5, CSS3 y JavaScript
- **Servidor de desarrollo:** Apache (XAMPP, WampServer o Laragon)
- **Control de versiones:** Git

## Estructura del proyecto

```
pecosa/
├── index.php                   Página principal del sitio público
├── productos.php               Catálogo de productos y armado del pedido
├── carrito.php                 Carrito de compras
├── gestionar_carrito.php       Lógica para agregar, quitar y actualizar ítems del carrito
├── formulario_entrega.php      Datos de entrega del pedido
├── procesar_pago.php           Procesamiento del pago / confirmación del pedido
├── verificar_promo.php         Validación de promociones existentes (duración 24hs)
├── login.php                   Inicio de sesión de usuarios
├── registro.php                Registro de nuevos usuarios
├── recuperar_contraseña.php    Recuperación de contraseña
├── logout.php                  Cierre de sesión
├── captcha.php                 Generación del captcha de seguridad
├── ayuda.php                   Página de ayuda del sitio público
├── privacidad.php              Política de privacidad
├── consultar_bot.php           Endpoint del asistente virtual / chatbot
├── importar_csv.php            Importación de productos desde CSV
├── productos.csv               Archivo de ejemplo para la carga masiva de productos
├── script.js                   Lógica de interfaz del sitio (carrito, slider, etc.)
├── diseño.css                  Estilos generales del sitio público
├── db.php                      Conexión a la base de datos
├── config_example.php          Plantilla de configuración (copiar a config.php)
├── config.php                  Configuración real (no se versiona)
├── css                         Archivos descargados en la carpeta .zip de font awesome
    ├── all.min.css
    ├── ... el resto de archivos descargados en la carpeta .zip de font awesome
├── webfonts                    Archivos descargados en la carpeta .zip de font awesome
│
├── admin/                      Panel de administración
│   ├── dashboard.php           Tablero principal del panel
│   ├── sidebar.php             Menú lateral del panel
│   ├── inventario.php          Gestión de productos y stock
│   ├── pedidos.php             Listado y seguimiento de pedidos
│   ├── cambiar_estado.php      Actualización del estado de un pedido
│   ├── procesar_manual.php     Carga manual de pedidos
│   ├── ver_detalle.php         Detalle de un pedido
│   ├── obtener_detalle.php     Consulta de datos de un pedido
│   ├── imprimir_ticket.php     Generación del ticket de un pedido
│   ├── buscar_clientes.php     Búsqueda de clientes en sección Pedidos activos
│   ├── promo.php               Gestión de promociones
│   ├── chart.js                Archivo para generación de tablas de artículos más vendidos
│   ├── importar_csv.php        Importación de productos desde CSV (admin)
│   ├── asistente.php           Configuración del asistente virtual
│   ├── ayuda_admin.php         Ayuda del panel de administración
│   ├── backup.php              Generación de copias de seguridad
│   ├── descargar_file.php      Descarga de archivos y respaldos
│   ├── admin_style.css         Estilos del panel de administración
│   ├── backups_files/          Copias de seguridad de la base de datos (.zip)
│   └── comprobantes/           Comprobantes generados por el sistema
│
├── imagenes/                   Recursos gráficos del sitio (logo, banners, etc.)
├── img/                        Imágenes de productos
├── logs-sistema-lapecosa/      Registros de actividad del sistema
└── README.md
```

## Requisitos previos

Antes de comenzar, asegúrate de tener instalado en tu entorno local:

- Un servidor local con soporte para PHP 8.x y MySQL/MariaDB (XAMPP, WampServer o Laragon).
- Git.
- Un editor de código (por ejemplo, Visual Studio Code).

## 1. Clonar el proyecto

Abre la terminal (o Git Bash) en la carpeta pública de tu servidor local y ejecuta:

```bash
git clone https://github.com/brisagarcia03/Proyecto-TI.git pecosa
```

Reemplaza la URL por la de tu repositorio. Luego ingresa a la carpeta del proyecto:

```bash
cd pecosa
```

## 2. Configuración de la conexión

El proyecto incluye un archivo de ejemplo con la configuración de la base de datos. Para activarlo:

1. Ubica el archivo `config_example.php` en la raíz del proyecto.
2. Haz una copia y renómbrala como `config.php`.
3. Abre `config.php` con tu editor y completa los datos de tu servidor local:

```php
<?php
// Configuración de la base de datos
define('DB_HOST', 'localhost');
define('DB_USER', 'root');          // Usuario por defecto
define('DB_PASS', '');              // Contraseña por defecto (vacía)
define('DB_NAME', 'lapecosa');  // Nombre de la base de datos
// Configuración de la API Resend
define('RESEND_API_KEY', 'tu_resend_api_key_aqui'); //Genera tu propia key y pégala acá
define('RESEND_FROM',    'onboarding@resend.dev');
```

El archivo `db.php` utiliza estos valores para establecer la conexión con la base de datos, por lo que no es necesario modificarlo: basta con completar `config.php`.

## 3. Importar la base de datos

El proyecto incluye un respaldo de la base de datos dentro del panel administrativo.

1. Inicia Apache y MySQL desde el panel de control de tu servidor.
2. Ingresa a phpMyAdmin desde el navegador: `http://localhost/phpmyadmin/`.
3. Crea una base de datos nueva con el nombre definido en `config.php` con el cotejamiento `utf8mb4_general_ci`.
4. Selecciona la base de datos recién creada en la barra lateral.
5. Abre la pestaña **Importar**.
6. En **Seleccionar archivo**, elige el volcado SQL ubicado en:
   `admin/backups_files/[nombre_del_archivo].zip`
7. Confirma con el botón **Importar**.

## 4. Ejecutar el proyecto

Con el proyecto clonado, `config.php` configurado y la base de datos importada, ya podés acceder:

- **Sitio público:** `http://localhost/pecosa/index.php`
- **Panel de administración:** `http://localhost/pecosa/admin/`

## Credenciales de acceso

El panel de administración requiere iniciar sesión. Las credenciales se encuentran en la tabla de usuarios de la base de datos importada.

- Usuario por defecto: usuario@gmail.com
- Contraseña por defecto: usuario123

## Funcionalidades principales

Sitio público:

- Catálogo de productos con imágenes, precios, detalle individual y control de stock.
- Carrito de compras con agregado, modificación y eliminación de ítems.
- Aplicación y verificación de promociones.
- Formulario de entrega, procesamiento del pedido y confirmación del pago.
- Registro de usuarios, inicio de sesión, cierre de sesión y recuperación de contraseña.
- Captcha de seguridad en los formularios.
- Asistente virtual / chatbot de consultas.
- Importación de productos mediante archivos CSV.

Panel de administración:

- Tablero principal con acceso a las distintas secciones de gestión.
- Gestión de inventario (alta, edición y control de stock de productos).
- Administración de pedidos: listado, cambio de estado, carga manual e impresión de tickets.
- Búsqueda de clientes y gestión de promociones.
- Configuración del asistente virtual.
- Generación y descarga de copias de seguridad de la base de datos.
- Registro de actividad del sistema mediante logs.

## Solución de problemas frecuentes

- **Pantalla en blanco o error de conexión:** revisa que los datos de `config.php` coincidan con los de tu servidor y que MySQL esté activo.
- **No se ven imágenes o estilos:** confirma que la carpeta del proyecto se llame `pecosa` y que la URL incluya esa ruta exacta.
- **Error al importar el SQL:** verifica que la base de datos exista y use el cotejamiento `utf8mb4_general_ci` antes de importar.
