Synaplan
開源 AI 平台,供企業使用:自行託管的 AI 代理、符合 GDPR 的聊天機器人小工具、RAG 知識庫、WhatsApp 與 Outlook AI、MCP、多模型路由。Docker、Kubernetes 或託管於 Germ
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Plataforma multi-restaurante de cartas digitales con QR. Cada restaurante tiene su carta pública en /<slug> y un panel en /panel donde el dueño edita categorías, platos, precios, fotos, marca y descarga los QR.
Stack: Next.js 15 (App Router) + Supabase (Postgres, Auth, Storage, RLS) + Vercel.
/<slug>?mesa=7: rápida, pensada para el móvil, cacheada y regenerada al guardar en el panel. Muestra la mesa y un botón de WhatsApp./panel: categorías y platos con foto, precio, descripción y etiquetas; precio editable en línea; interruptor de agotado; reordenar arrastrando; ocultar categorías./panel/marca: logo, colores con vista previa, moneda, WhatsApp. El país (moneda, zona horaria y código de WhatsApp sugeridos) se elige al crear el restaurante y se cambia en Personalizar; por defecto, Chile (CLP, America/Santiago)./panel/qr: QR general (PNG y SVG), QR por mesa (PNG) y hoja PDF A4 con 6 tarjetas para imprimir./panel/sucursales: misma carta, con dirección, horario, WhatsApp y QR de mesa propios (/<slug>?s=centro&mesa=4)./panel/estadisticas: visitas por día, hora, mesa e idioma, pedidos y lo más pedido./admin: todos los restaurantes, plan, pausar/reactivar, entrar a editar la carta de un cliente y crear restaurantes para clientes.supabase/migrations/ (de 0001 a 0015). Opcional: supabase/seed.sql crea la carta de ejemplo /la-esquina y supabase/seed_cafe.sql la cafetería /aroma-cafe con 36 bebidas, fotos y traducciones. supabase/seed_disenos.sql (después de 0006) crea una carta demo por cada diseño nuevo: /la-esquina-verde (Bistró), /jardin-veggie (Dorado), /forno-pizzeria (Forno), /warung-oriente (Oriente) y /neon-tokio (Neón). supabase/seed_disenos_2.sql (después de 0007) suma 11 cartas demo más, una por diseño nuevo (Tropical, Natural, Soleado, Gala, Vitrina, Cinta, Trattoria, Kraft, Madera, Cóctel y Revista), y marca algunos platos como destacados./admin, date permiso de superadmin con tu correo:
insert into public.superadmins (user_id) select id from auth.users where email = '[email protected]';
https://tumenu.com).https://tumenu.com/auth/confirm (y http://localhost:3000/auth/confirm para desarrollo)..env.example a .env.local y rellena las variables (Supabase → Project Settings → API).npm install y npm run dev. Abre http://localhost:3000..env.example en Settings → Environment Variables. Los QR y los correos usan la dirección desde la que se abre el panel; NEXT_PUBLIC_SITE_URL solo se usa en el servidor. Antes de imprimir QR, entra al panel desde el dominio final./registro, pone el nombre del local y su correo./admin → "Restaurante para un cliente". Quedas como dueño y lo eliges arriba en el panel para armarle la carta./admin → "Editar carta" te suma como staff de ese restaurante.public.usuarios con su user_id, el restaurante_id y rol = 'dueno'.plan, activo) se cambian en /admin. Pausar un restaurante oculta su carta al momento.src/lib/planes.ts): Carta = carta, diseños, idiomas, QR y promos; Pro suma salón, cocina, caja, pedidos, reservas, clientes, estadísticas y equipo; Grupo suma sucursales. Lo bloqueado aparece con candado y lleva a /panel/plan./api/recordatorios, Vercel Cron) avisa cuando quedan 4 días y 1 día y, al vencer, pausa la carta (el cliente ve "estamos actualizando la carta"). En /admin puedes extenderla, quitarle el vencimiento o ponerle un plan (eso la reactiva y anota el inicio del plan).CRON_SECRET y SUPABASE_SERVICE_ROLE_KEY (obligatorias para el envío diario). Opcionales: NEXT_PUBLIC_WHATSAPP_VENTAS (cambia el WhatsApp del botón "Quiero contratar"; por defecto +56 9 4149 7083), RESEND_API_KEY + AVISOS_CORREO_DE (correo con dominio verificado en resend.com) + AVISOS_CORREO_ADMIN (dónde te llegan a ti) para mandar los avisos por correo.Tarjeta digital de sellos que se contrata aparte del plan ($12.990/mes por local, $19.990 Grupo). Reemplaza al antiguo "premio cada N visitas".
/admin (interruptor "Loyalty"). El local arma su tarjeta en /panel/sellos (sellos, premio, regla por visita o por monto, colores) y descarga el QR para unirse./s/unirse/<slug> y su tarjeta queda en /s/<código>. La precuenta trae un QR de un solo uso (24 h) que suma el sello de esa visita; si la mesa se anula, el sello se quita./panel/sellos, desde la ficha de la mesa ("Ver tarjeta") o escaneando la tarjeta con la cámara del celular con su sesión iniciada. Con "Pedir PIN de encargado" activo, un mesero necesita el PIN.SUPABASE_SERVICE_ROLE_KEY.GOOGLE_WALLET_ISSUER_ID, GOOGLE_WALLET_CLIENT_EMAIL y GOOGLE_WALLET_PRIVATE_KEY (cuenta de emisor en Google Pay & Wallet Console y una cuenta de servicio de Google Cloud con acceso). Sin ellas el botón no aparece./api/sellos/campanas (vercel.json) que manda el saludo de cumpleaños y el "te extrañamos" con sus sellos de regalo. Usa CRON_SECRET y SUPABASE_SERVICE_ROLE_KEY.src/lib/sellos, src/app/s, src/app/panel/sellos, src/app/api/sellos y las tablas sellos_*, para poder separarlo después como producto independiente.Las fotos de public/demo/cafe salen de una infografía de terceros y son solo para la demo: para clientes reales usa fotos propias o libres de derechos.
src/app/[slug]/ carta pública
src/app/panel/ panel del dueño (carta, marca, qr, sucursales, estadísticas)
src/app/admin/ administración del servicio (superadmin)
src/app/s/ tarjeta de sellos del cliente (Platovi Loyalty)
src/components/carta/ diseños de la carta, idiomas, pedidos y barra inferior
src/app/login|registro|recuperar|nueva-clave/
src/app/auth/confirm/ enlaces de correo (confirmar cuenta, recuperar contraseña)
src/lib/ clientes de Supabase, tipos, QR/PDF, fotos
supabase/ migración SQL y datos de ejemplo
Si el restaurante activa Marca → Imágenes por defecto, los platos sin foto muestran una ilustración según su nombre o descripción (pizza, café, cerveza, etc.). Se guarda en restaurantes.ajustes.imagenes_defecto, así que no necesita SQL. Las imágenes de public/defecto son Fluent Emoji de Microsoft, con licencia MIT (ver public/defecto/LICENSE.txt), que permite el uso comercial.