Files
Sistema-Web-Rotiseria/readme.md
T
2026-06-30 16:01:52 -03:00

171 lines
8.3 KiB
Markdown

# 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.