Manual de uso - OpenCodeISPC/Sistema-de-Gestion-de-Mesas GitHub Wiki

Manual de Uso - Sistema de Gestión de Mesas para Bares (SGMB)

Este manual describe el funcionamiento, flujo operativo y uso general del Sistema de Gestión de Mesas para Bares (SGMB) para todos los perfiles de usuario.


Tabla de Contenidos


1. Introducción y Descripción General

El Sistema de Gestión de Mesas para Bares (SGMB) es una aplicación web responsiva diseñada para optimizar la operación diaria en bares y restaurantes. Permite administrar el estado de las mesas en tiempo real, tomar comandas, coordinar la preparación de pedidos en cocina y barra, procesar cobros en caja con emisión de comprobantes en PDF y registrar auditorías de eventos críticos.


2. Roles de Usuario y Niveles de Acceso

El sistema implementa un esquema de Control de Acceso basado en Roles (RBAC):

  1. Administrador (ADMIN):
    • Acceso completo a la configuración global, gestión de usuarios, productos, mesas, caja y logs de auditoría.
  2. Mozo (MOZO):
    • Gestión del mapa de mesas (apertura, edición y reservas).
    • Toma y modificación de pedidos en tiempo real.
    • Recepción de notificaciones cuando las comandas están listas para servir.
  3. Personal de Cocina / Barra (COCINA / BARRA):
    • Visualización del tablero Kanban de comandas asignadas a su sector.
    • Cambio de estado de preparación (PENDIENTE -> EN PREPARACIÓN -> LISTO).
  4. Cajero (CAJERO):
    • Consulta de mesas listas para cobro o entregadas.
    • Procesamiento de pagos (Efectivo, Tarjeta, Transferencia, Otro) e inclusión de propina.
    • Emisión de facturas y comprobantes en formato PDF.
    • Ejecución del arqueo y cierre de caja diario, así como reapertura en caso de ser necesario.

3. Acceso al Sistema y Autenticación

3.1 Inicio de Sesión Tradicional

  1. Ingrese a la pantalla principal de inicio de sesión (/login).
  2. Introduzca su correo electrónico y contraseña registrados.
  3. Haga clic en el botón Iniciar sesión.
  4. El sistema validará sus credenciales mediante un token JWT y lo redirigirá al módulo correspondiente a su rol.

3.2 Registro de Nuevos Usuarios

  1. Acceda al enlace Registrate en la pantalla de inicio de sesión (/registro).
  2. Complete los campos requeridos: Nombre, Apellido, Correo electrónico, Rol deseado y Contraseña (mínimo 6 caracteres).
  3. Confirme la contraseña y presione Registrarse.

3.3 Inicio de Sesión con Google OAuth 2.0

  1. En la pantalla de inicio de sesión o registro, presione el botón Continuar con Google.
  2. Seleccione su cuenta institucional o personal de Google en la ventana emergente.
  3. El sistema autenticará automáticamente su usuario y le concederá acceso al dashboard.

3.4 Recuperación de Contraseña mediante Código OTP

  1. En la pantalla de inicio de sesión, seleccione ¿Olvidaste tu contraseña? (/recupero-password).
  2. Introduzca el correo electrónico asociado a su cuenta.
  3. Revise su bandeja de entrada para obtener el código OTP de 6 dígitos.
  4. Ingrese el código OTP recibido y defina su nueva contraseña.

4. Gestión del Mapa de Mesas

4.1 Visualización por Sectores

  1. Ingrese a la sección Mesas desde el menú principal.
  2. Seleccione la pestaña del sector que desea visualizar (ejemplo: Salón Principal o Terraza).
  3. Cada mesa se representa con una tarjeta identificada por su número, capacidad y un indicador de estado:
    • Verde (LIBRE): Mesa disponible para asignar clientes.
    • Rojo (OCUPADA): Mesa con clientes asignados y/o pedido en curso.
    • Amarillo (RESERVADA): Mesa reservada con anticipación.
    • Azul / Titilante (LISTO): Indica que los pedidos de la mesa han sido preparados por cocina/barra y están listos para ser servidos.

4.2 Apertura y Edición de Mesas

  1. Haga clic sobre una mesa en estado Libre.
  2. Para habilitarla, seleccione la opción de apertura e ingrese la cantidad de comensales.
  3. Para modificar la capacidad o cambiar el estado a Reservada, utilice los controles de edición dentro del panel lateral de la mesa.

4.3 Sincronización en Tiempo Real

Toda modificación realizada sobre una mesa (cambio de estado, asignación de pedido) se refleja instantáneamente en todos los dispositivos conectados mediante WebSockets, sin necesidad de recargar la página.


5. Toma de Pedidos y Comandas

5.1 Creación de un Pedido

  1. Seleccione la mesa ocupada a la que desea cargar consumos.
  2. Haga clic en Ver Pedido o Nuevo Pedido.
  3. Se desplegará el panel lateral de pedidos indicando el número de mesa y el total acumulado hasta el momento.

5.2 Selección de Productos y Control de Stock

  1. Navegue entre las categorías disponibles (Barra y Cocina).
  2. Abra el desplegable de productos de la categoría correspondiente.
  3. Seleccione el producto deseado. Solo estarán visibles aquellos productos que cuenten con stock disponible y la bandera de disponibilidad activa en el sistema.
  4. Si un producto agota su stock durante el servicio, quedará deshabilitado automáticamente.

5.3 Modificación de Cantidades y Observaciones

  1. Utilice los botones + y - para ajustar las cantidades de cada ítem.
  2. Agregue notas u observaciones específicas si el cliente lo requiere (ejemplo: "Sin sal", "Sin hielo").
  3. Presione el botón de confirmación para enviar los datos.

6. Tablero Kanban de Comandas (Cocina y Barra)

6.1 Bifurcación Automática

Cuando un mozo confirma un pedido, el sistema divide automáticamente los ítems según su categoría:

  • Los platos y preparaciones gastronómicas se derivan al tablero de Cocina.
  • Las bebidas y coctelería se derivan al tablero de Barra.

6.2 Flujo de Estados de Comanda

El personal de cocina o barra interactúa con las tarjetas de comanda mediante tres columnas de estado:

  1. PENDIENTE: Comanda recién ingresada en espera de atención.
  2. EN PREPARACIÓN: El personal presiona Iniciar para indicar que la orden está en elaboración.
  3. LISTO: El personal presiona Marcar Listo al finalizar la preparación.

6.3 Notificaciones al Salón

Al momento en que todas las comandas de una mesa pasan a estado LISTO, el mapa de mesas notifica al mozo correspondiente mediante un indicador visual destacado para que proceda al retiro y servicio de los platos o bebidas.


7. Módulo de Caja, Cobros y Cierre Diario

7.1 Procesamiento de Pagos

  1. Ingrese a la sección Caja desde la barra de navegación.
  2. El sistema mostrará el listado de mesas cuyo consumo se encuentra en estado Listo o Entregado pendiente de cobro.
  3. Seleccione la mesa a cobrar para ver el detalle de ítems, cantidades y el subtotal consumido.
  4. Elija el método de pago correspondiente:
    • EFECTIVO
    • TARJETA
    • TRANSFERENCIA
    • OTRO

7.2 Sugerencia de Propina y Liberación de Mesa

  1. El sistema ofrece una opción rápida para calcular y agregar automáticamente la propina del 10%.
  2. Al registrar el pago, el sistema realiza dos acciones automáticas:
    • Cambia el estado del pedido a CERRADO.
    • Libera la mesa correspondiente en el mapa, cambiando su estado a LIBRE.

7.3 Emisión y Descarga de Comprobantes (PDF)

  1. Concretado el cobro, presione el botón Descargar Factura PDF.
  2. El sistema generará un comprobante en formato PDF que incluye el desglose de productos, fecha/hora, número de mesa, cajero interviniente, propina y total abonado.

7.4 Arqueo y Cierre de Caja Diario

  1. Al finalizar la jornada o turno, ingrese a la pestaña Cierre de Caja.
  2. El sistema resumirá automáticamente los montos cobrados discriminados por método de pago (Efectivo, Tarjeta, Transferencia, Otro).
  3. Introduzca el monto rendido en efectivo disponible en el cajón físico.
  4. El sistema calculará la diferencia resultante (sobrante o faltante).
  5. Presione Confirmar Cierre de Caja para asentar la operación.

7.5 Reapertura de Caja

En caso de requerir registrar cobros adicionales con posterioridad al cierre de la caja del día, el cajero o administrador puede seleccionar la opción Reabrir Caja, permitiendo ingresar nuevos pagos bajo el mismo turno.

7.6 Exportación del Informe de Cierre (PDF)

Una vez efectuada la consolidación del cierre de caja, seleccione la opción Exportar Cierre PDF para descargar un documento formal estructurado con el balance del turno.


8. Módulo de Auditoría y Trazabilidad

8.1 Registro y Consulta de Logs

  1. Los administradores pueden consultar el historial de operaciones desde la sección Auditoría (/api/auditoria/).
  2. El sistema guarda un registro detallado e inalterable en base de datos no relacional (MongoDB) de los siguientes eventos críticos:
    • PAGO_REGISTRADO: Detalle de cobros realizados, cajero a cargo, monto y método de pago.
    • CIERRE_CAJA: Registro del balance diario, montos declarados y diferencias.
    • CAJA_REABIERTA: Eventos de reapertura de turno.

9. Guía Rápida de Despliegue Local con Docker

Requisitos

  • Docker Desktop en ejecución.
  • Git y consola Bash.
  • Archivo de entorno backend/.env.desarrollo.

Comando de Ejecución

Desde la raíz del proyecto, ejecute el script de automatización:

bash actualizar-entorno.sh