1. Inicio
  2. Proyectos
  3. Brasa y Ascuas
Mi TFG · Proyecto principal

Brasa y Ascuas

Un sistema de pedidos completo para un restaurante de buffet libre. El cliente escanea el QR de su mesa, pide y paga desde el móvil, y la comanda entra al instante en la pantalla de cocina. Lo construí de cero, de la base de datos a la última pantalla.

Qué es
Pedidos, cocina y cobro para restaurante
Mi papel
Todo: diseño, frontend, backend y despliegue
Tecnología
Ionic · Angular · NestJS · MongoDB
Estado
Publicado, con demo guiada
Panel de cocina de Brasa y Ascuas con los pedidos de cada mesa en tiempo real
La carta de Brasa y Ascuas vista desde el móvil del cliente

01 El problema

En un buffet libre con carta, el camarero pasa la noche yendo y viniendo: toma nota, la lleva a cocina, vuelve para preguntar el punto de la carne y, al final, calcula a mano qué entra en el precio del buffet y qué se cobra aparte. Cada paso es una oportunidad para un error y un rato que no se dedica a atender.

La idea era quitar ese recorrido de en medio: que el pedido viaje solo de la mesa a la cocina, que la cuenta se calcule sola y que el dueño vea cómo va la noche sin preguntar a nadie.

02 Lo que construí

Una sola aplicación con tres caras, una para cada persona que la usa. Cada una ve solo lo que necesita.

Cliente

Pide y paga desde la mesa

  • Un QR fijo por mesa: al escanearlo se abre la sesión, o te unes a la de tus acompañantes
  • Eliges tarifa de buffet y la carta te marca qué entra y qué es extra
  • Punto de cocción solo en los platos a la brasa
  • Aviso en el móvil cuando tu plato está listo
  • Pago con tarjeta, Apple Pay, Google Pay o Bizum, con propina y valoración
  • En español y en inglés
Cocina

Las comandas entran solas

  • Cada pedido nuevo suena, parpadea y cambia el título de la pestaña, aunque esté en segundo plano
  • Estados por plato con el lenguaje de cocina: «Poner en brasa», «Servir»
  • Las bebidas se saltan los pasos intermedios
  • Si se cae la red, se reconecta sola sin recargar
  • Avisos de mesa: llamar al camarero, pedir la cuenta, para llevar
Administración

El negocio, en directo

  • Mesas, platos y tarifas, con precios editables en la propia tabla
  • Apagar un plato agotado y que cocina y carta lo sepan al momento
  • Pedidos e ingresos del día, mesas activas y valoración media
  • Platos y buffets más vendidos, y las últimas opiniones

03 Por dentro

La aplicación del cliente y la del personal comparten código: una sola base en Ionic y Angular que funciona en el navegador y puede empaquetarse para iOS y Android. Detrás hay una API en NestJS sobre MongoDB, y el tiempo real va por Socket.io, con una sala por mesa para que cada aviso llegue solo a quien le toca.

Interfaz
Ionic 8 + Angular 20 · rutas con carga diferida, guards por rol
API
NestJS 11 · DTOs validados en cada endpoint, documentación Swagger
Datos
MongoDB con Mongoose · agregaciones para las métricas del panel
Tiempo real
Socket.io · salas por sesión, reingreso automático al reconectar
Acceso
JWT + Passport · cliente, cocina, camarero y administrador
Pagos
Stripe Payment Element + webhook
Pruebas
Jest · las reglas de cobro del buffet, cubiertas

04 Decisiones que tomé

Lo interesante de un proyecto así no es la lista de tecnologías, sino lo que eliges cuando dos cosas razonables chocan.

Un QR fijo por mesa, no uno por comida

El restaurante imprime los códigos una vez y se olvida. Si la mesa ya está abierta, quien escanea se une a ella, así que los que llegan tarde piden en la misma cuenta.

A cambio: cualquiera con la foto del QR podría abrir sesión. Lo frena que hay que estar sentado en la mesa; los QR por sesión quedan como mejora.

La cuenta la calcula el servidor

Para cada plato, el servidor decide si lo cubre el buffet o se cobra aparte. El móvil solo enseña el resultado, así que nadie puede cambiar un precio desde su teléfono.

A cambio: más lógica en la API. Por eso es justo la parte que tiene pruebas automáticas.

Cobro real, con un simulador de respaldo

Los pagos van por Stripe de verdad, confirmados por webhook. Si el entorno no tiene claves, entra un modo simulado, para que la demo nunca se quede atascada en el paso de pagar.

Una cocina que aguanta cortes de red

Una tablet en una cocina pierde la wifi. Al volver, se reincorpora sola a su sala y sigue recibiendo pedidos, sin que nadie tenga que recargar la página a mitad del servicio.

05 Pruébalo tú

La demo es una visita guiada en tres pasos. Cada uno se abre en una pestaña, así que puedes ver los tres papeles a la vez y mirar cómo tu pedido llega a cocina mientras lo haces.

Paso 1

Siéntate en una mesa

Abre la vista del cliente como si hubieras escaneado el QR.

Paso 2

Abre la cocina

Pide desde la otra pestaña y mira cómo entra la comanda.

Paso 3

Abre la administración

Las métricas del día se mueven con lo que acabas de pedir.

Los pagos de la demo van en modo de prueba: no se cobra nada.

Siguiente proyecto
En producción · Cliente real

Aperture Technologies

La web corporativa de una empresa de software para la gestión de residuos.