Skip to content

saas gastronómico / en solitario · en vivo

actualizado

App de gestión de reservas para un proveedor de tecnología gastronómica.

Un proveedor de tecnología gastronómica necesitaba una app para el personal de sala: reservas, mesas, clientes sin reserva. La desarrollé en solitario en cinco meses, desde la primera pantalla hasta la publicación en App Store y Google Play. Hoy la usan más de 100 restaurantes.

Rol
Único desarrollador
Duración
5 meses hasta el lanzamiento
Plataformas
iOS y Android, móvil y tablet
Stack
Flutter, Riverpod, backend Node.js existente, WebSockets
restaurantes usan la app
100+
meses de la primera pantalla a ambas tiendas
5
tests automatizados
~1200
idiomas
6
Plano del salón, esquema
Sincronización en vivo, esquema
  1. 01 Arrastrar y soltar Alguien suelta una reserva sobre una mesa o la mueve en la línea de tiempo. La app se actualiza al instante, con Deshacer.
  2. 02 Backend Node.js existente El cambio va al backend que el proveedor ya tenía.
  3. 03 WebSocket El backend envía la actualización a todos los dispositivos conectados.
  4. 04 Todos los dispositivos Plano, línea de tiempo y tablero se actualizan en todas partes. Si se corta la conexión, la app se reconecta y vuelve a cargar el día.

El encargo

Durante el servicio, el personal necesita ver de un vistazo qué mesas están libres, quién llega a continuación y quién sigue esperando. El proveedor ya tenía un backend en Node.js con los datos de las reservas. Lo que faltaba era una app para la gente de sala.

El plano del salón

La app gira en torno al plano del salón: cada sala del restaurante con sus mesas tal como están, redondas o rectangulares, con una silla por plaza. El color de una mesa indica el estado de su reserva, y las sillas coloreadas, cuántos comensales hay sentados. Un indicador cuenta cuánto tiempo llevan sentados y se pone rojo cuando la estancia se alarga más de lo previsto. Una mesa libre muestra cuándo llega su próxima reserva.

Las reservas sin mesa esperan en una lista junto al plano. El personal mantiene pulsada una tarjeta y la arrastra sobre una mesa. Mientras arrastra, se iluminan las mesas que están libres durante toda la reserva y tienen sitio para todo el grupo. Si una mesa es pequeña o ya está reservada, la app pregunta antes de asignarla igualmente. Sobre una mesa ocupada ofrece intercambiar los dos grupos o sentar a ambos allí. Del mismo modo los comensales pasan de una mesa a otra, y una pulsación larga antes de arrastrar añade una segunda mesa para un grupo más grande.

Un control de hora en el borde inferior permite mirar hacia adelante: al llevarlo a las 20:00, el plano muestra la sala como estará entonces, así el personal puede preparar la noche ya por la mañana. Al tocar una reserva, el plano salta a su hora de llegada. En el móvil el plano ocupa toda la pantalla y la lista queda en un panel debajo.

Dos vistas más de la misma noche

  • Línea de tiempo: la noche como diagrama de Gantt, las mesas hacia abajo, el tiempo hacia la derecha, con una línea en vivo para “ahora”. Las reservas se arrastran a otra mesa u otro horario, y un doble toque en un hueco libre crea una nueva.
  • Tablero kanban: cada reserva es una tarjeta en una de cuatro columnas: lista de espera, esperadas, sentados, cerradas. Mover una tarjeta cambia su estado.

Todo lo demás que necesita un servicio

Clientes sin reserva y lista de espera. Un asistente de reservas con consulta de disponibilidad y reservas recurrentes. Un libro de clientes con notas, necesidades alimentarias y un aviso de no-show. Aprobación de solicitudes online, un calendario con cifras del día y un briefing de turno en PDF. Cada cambio se puede deshacer, y los códigos de personal registran quién lo hizo. La app habla seis idiomas, tiene temas claros y oscuros, y layouts propios para móvil y tablet.

Todos los dispositivos al día

En un restaurante varias personas trabajan a la vez con las mismas reservas. Si un dispositivo muestra un estado viejo, dos grupos terminan en la misma mesa. Por eso un cambio aparece al instante en el dispositivo donde se hizo, va al backend, y el backend lo envía por WebSockets a todos los demás. Si se corta la conexión, la app se reconecta sola y vuelve a cargar el día, así no se pierde ninguna actualización.

Funciona aunque falle el Wi-Fi

La app guarda una caché local por restaurante y pone en cola los cambios hechos sin conexión. Cuando vuelve la conexión, la cola se envía con reintentos, y cada cambio lleva un ID para que ninguna reserva se cree dos veces.

Resultado

Cinco meses después de la primera pantalla, la app estaba publicada en ambas tiendas. Hoy la usan más de 100 restaurantes. Unos 1200 tests automatizados corren en cada pull request, y las versiones llegan a TestFlight y Google Play mediante un pipeline con Fastlane. No hizo falta un backend nuevo: la app trabaja con el que el proveedor ya tenía.

Para el mismo proveedor también construí un generador de apps white-label y un asistente de WhatsApp con IA.

Siguiente proyecto Generador de apps white-label: apps de clientes en horas en lugar de semanas

Cuénteme
qué necesita construir.

Reservar llamada

O escriba a hello@asisto.io

¿Prefiere escribir antes que hablar? Sin problema: todo funciona también por escrito, desde el primer mensaje hasta la entrega.

Qué sigue

  1. Esta semana
    Primer contacto, por llamada o por escrito
  2. En 48 horas
    Propuesta por escrito
  3. Normalmente en 2 semanas
    Inicio del proyecto
  4. Al final
    Entrega y 30 días de soporte