Saltar al contenido
David Saghatelyan

GrupalPersonal

Carta digital para La Catedral del Pisco

Carta digital en español, inglés, portugués y ruso, con panel de administración y asistente de chat con IA.

Proyecto personal ofrecido al restaurante. No fue contratado ni implementado, y no tiene afiliación con La Catedral del Pisco.

Tecnologías
  • React 19
  • Vite
  • Express
  • Supabase
  • API de Gemini

Contexto

Carta digital para un restaurante de cocina peruana en Buenos Aires. El comensal escanea un QR en la mesa y abre la carta de su sucursal.

Solución

- Carta en español, inglés, portugués y ruso. - Asistente de chat que responde sobre alérgenos e ingredientes. - Panel de administración para gestionar productos, precios y disponibilidad por sucursal, y un panel para el personal.

Arquitectura

- React 19 con Vite en el cliente. - Express como servidor: expone /api/chat y, en producción, sirve los archivos estáticos. - Supabase: Postgres con RLS, Auth y Storage para las imágenes. - El asistente llama a la API de Gemini desde el servidor.

Decisiones

- Clave de Gemini. El navegador nunca la ve: el cliente le escribe al propio Express, y es el servidor el que llama al modelo. - Respuestas del asistente. El prompt lo limita a los datos de la carta. No puede inventar platos, precios ni alérgenos, y ante una duda deriva al mozo. - Abuso del endpoint de chat. Solo se aceptan mensajes de usuario y de asistente, para que no se pueda inyectar un mensaje de sistema. Hay un límite de consultas por IP y de largo por mensaje. - Roles. Los roles de administración se leen de app_metadata, que el usuario no puede modificar, en vez de user_metadata, que sí puede.

Limitaciones

El límite de consultas vive en memoria y es por proceso: con varias instancias, cada una lleva su propia cuenta.