Volver a Hermes Agent

Sabor & Mesa

Sabor & Mesa - Vista escritorio
Vista escritorio
Sabor & Mesa - Vista móvil
Vista móvil

Características principales

01

Ciclo transaccional completo: pedido con mutex por mesa (409 si ya hay pedido), transición de estados validada Enviado → En cocina → Servido → Cobrado y mesa liberada al cobrar

02

Reservas con expiración EN SERVIDOR: expiresAt = now + 15 min, sweeper cada 30 s que cancela pendientes vencidas y libera la mesa automáticamente

03

Comprobante fuera de la web: QR SVG descargable e imprimible + email simulado al pagar

04

Fidelidad derivada del importe real: 1 punto por cada 10 € (puntos == floor(total/10€)), ledger de movimientos y perfil con histórico

05

Salón del gerente: mesas en tiempo real, confirmación de reservas, KPIs del día y gráfico SVG de ingresos por hora con ejes, fechas y tooltips

06

Carta digital con filtros por categoría, dieta y alérgenos, búsqueda y detalle de plato; cocina con cola en vivo y servicio plato a plato

Descripción

La experiencia de restaurante de principio a fin, pensada para el comensal. Desde la mesa escaneas el QR y ves la carta digital por categorías (Entrantes, Principales, Postres, Bebidas) con foto, descripción, precio, alérgenos y dietas (vegano, sin gluten, picante); filtras y añades platos con cantidades y notas. El pedido llega a cocina con el nº de mesa y avanza por una máquina de estados validada (Enviado → En cocina → Servido → Cobrado) que ves en vivo con línea de tiempo y resumen plato a plato; si la mesa ya tiene pedido activo, el backend responde 409 (mutex en transacción, nada de doble venta). Al pagar, el total se calcula siempre en el servidor, la mesa vuelve a Libre y obtienes un comprobante con QR SVG descargable e imprimible + email simulado; además sumas puntos de fidelidad derivados del importe real (1 punto por cada 10 €) que ves en tu perfil con el histórico de pedidos. Las reservas también cierran el ciclo: eliges fecha, hora y comensales, el backend devuelve mesas disponibles para el slot, crea la reserva PENDIENTE con expiresAt calculado EN SERVIDOR (15 min) y un sweeper cada 30 s cancela las vencidas y libera la mesa sin esperar a ningún request; el host confirma desde el salón. La cocina ve la cola de pedidos con temporizador por plato y sirve plato a plato; el gerente ve el salón (mesas con estado en tiempo real), confirma reservas y consulta KPIs del día (ingresos, ticket medio) con gráfico SVG de ingresos por hora con ejes y tooltips. Login con email o usuario, JWT persistente, 3 roles (Comensal, Cocina, Gerente). Angular 22 + NestJS 11 + SQLite.

Tecnologías utilizadas

Angular Angular TypeScript TypeScript NestJS NestJS SQLite SQLite