Mesero
Mapa de mesas con estados en color. Puede modificar un pedido mientras esté pendiente.
Sistema web de gestión de pedidos para restaurantes. Los meseros toman el pedido desde el celular, la cocina y la barra reciben las comandas por área y la caja cobra la cuenta consolidada de cada mesa.
El restaurante La Fragua del Diablo tomaba los pedidos en papel, los volvía a transcribir en caja y los copiaba en una planilla para imprimir las comandas. Un mismo pedido se escribía al menos dos veces, con más tiempo de atención y más errores. Subito reemplaza ese proceso: el pedido se ingresa una sola vez y llega a caja en segundos.
Elige la mesa libre, arma el pedido por categorías desde el celular y lo envía. La mesa queda ocupada.
Cada producto llega a su área de preparación. Los pedidos aparecen en caja en menos de 3 segundos.
Reúne todos los pedidos de la mesa en una sola cuenta y la marca como por cobrar.
Cobra en efectivo o tarjeta, calcula el vuelto y la propina, imprime el recibo y libera la mesa.
Mapa de mesas con estados en color. Puede modificar un pedido mientras esté pendiente.
Pedidos en vivo, cuenta consolidada por mesa, cobro con vuelto y propina sugerida.
Productos, categorías, menús, áreas, mesas y usuarios. Historial de pagos y configuración de impresoras.
La aplicación incluye un manual de uso dentro de la misma interfaz. Tiene una guía por cada rol, con pasos, estados de mesa, preguntas frecuentes y un glosario de términos del restaurante.
El backend genera los bytes ESC/POS y el navegador los envía a la impresora por USB o Bluetooth. La impresora no necesita estar expuesta en la red del servidor.
Los pedidos llegan a caja mediante WebSockets. El requisito es que el pedido aparezca en caja en menos de 3 segundos.
El dominio no depende de NestJS ni de TypeORM. Los repositorios son puertos con adaptadores, lo que permite cambiar la persistencia sin tocar la lógica de negocio.
Un respaldo diario de PostgreSQL, comprimido y guardado en almacenamiento compatible con S3 (Backblaze B2), con retención configurable.
Las contraseñas y los PIN de todos los usuarios se guardan con bcrypt. Nunca se almacenan ni se comparan en texto plano.
Tras tres intentos fallidos, el acceso se bloquea por 15, 30, 60 y luego 120 segundos.
Las rutas del frontend y los endpoints del backend validan el rol con un token JWT. Un mesero no puede entrar al panel de administración, aunque conozca la URL.
Cabeceras de seguridad con Helmet, límite de peticiones por IP y verificación del token en cada conexión WebSocket.
Cada request queda registrado con el usuario, su rol, el método, la ruta, el estado de respuesta y la duración.
Los errores del servidor se envían a Sentry con el contexto de la petición. La integración solo se activa si hay una DSN configurada.
Las funcionalidades nuevas empiezan como especificación, con requisitos, diseño y tareas, antes de escribir código. El backend y el frontend tienen pruebas unitarias, y el frontend incluye pruebas end-to-end con Cypress. Los respaldos se pueden restaurar en una base local con un comando, sin tocar producción.
Capturas tomadas con datos de demostración. Haz clic para ampliar.