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.