Synaplan
기업을 위한 오픈소스 AI 플랫폼
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 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.