Synaplan
开源 AI 软件平台,面向企业:自托管 AI 代理,符合 GDPR 的聊天机器人小部件,RAG 知识库,WhatsApp 与 Outlook AI,MCP,多模型路由。支持 Docker、Kubernetes 或在 Germ 托管。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
Motor de reservas de citas para profesionales/emprendedores. El cliente elige un horario libre en una página pública y el turno queda creado automáticamente en el calendario real del profesional (Google y/o Outlook), con confirmación por WhatsApp y respaldo por email — sin llamadas, sin ida y vuelta de correos.查看完整 README ↗
Motor de reservas de citas para profesionales/emprendedores. El cliente elige un horario libre en una página pública y el turno queda creado automáticamente en el calendario real del profesional (Google y/o Outlook), con confirmación por WhatsApp y respaldo por email — sin llamadas, sin ida y vuelta de correos.
Es la primera pieza del proyecto de agendamiento descrito en el informe
Informe - Implementacion Agendate Tu Mismo y Agente AgendaFacil.docx
(carpeta principal del proyecto). Comparte el mismo enfoque de
sincronización (Google Calendar API + Microsoft Graph API) que se usará
más adelante para integrarse con Agente AgendaFácil.
/reservar/{slug}): elegir servicio (si hay más de uno), elegir día, elegir horario, completar nombre/WhatsApp, confirmar./admin) con: Panel (métricas y próximos turnos), Agenda semanal, Reservas (buscador, filtros y acciones), Calendarios, y Configuración (datos básicos, horario, servicios, notificaciones)./api/cron/daily-summary, ver sección 8): la agenda del día, sin tener que entrar al Panel a buscarla.POST /api/admin/professionals, sin login propio por profesional todavía).src/app/api/webhooks/whatsapp/route.ts).npm install
cp .env.example .env
Completar .env con las credenciales de cada sección (el archivo tiene,
en cada bloque, el link exacto a donde se obtiene cada dato).
Generar las dos claves de seguridad:
openssl rand -base64 32 # para AUTH_SECRET
openssl rand -base64 32 # para TOKEN_ENCRYPTION_KEY (tiene que decodificar a 32 bytes, este comando ya lo hace)
Generar el hash de la contraseña de admin:
npx tsx scripts/hash-password.ts "la-contraseña-que-quieras"
# copiar la línea ADMIN_PASSWORD_HASH="..." resultante al .env
npx prisma migrate dev
Esto crea las tablas en la base de PostgreSQL de DATABASE_URL y regenera el
cliente de Prisma. Si ya tenías el proyecto corriendo desde antes de sumar
Servicios/Teams/multi-profesional, alcanza con volver a correr este mismo
comando: aplica la migración nueva (add_services_teams_multiprofessional)
sin tocar los datos existentes.
{APP_URL}/api/auth/google/callback.env.{APP_URL}/api/auth/outlook/callbackCalendars.ReadWrite, offline_access, User.Read..env.Ver docs/whatsapp-template.md para el paso a paso de la plantilla que hay
que mandar a aprobar a Meta. Mientras no esté aprobada, el sistema sigue
funcionando: la reserva se confirma igual en el calendario, solo que sin el
mensaje de WhatsApp (queda registrado como pendiente en la tabla de logs).
npm run dev
http://localhost:3000/admin/login (usar ADMIN_EMAIL / la contraseña que hasheaste)/reservar/{tu-slug}./api/cron/daily-summary manda por email, a cada profesional activo con
notifyEmail habilitado, la agenda del día (turnos de hoy, y si hubo algún
aviso a un cliente que falló ayer). No requiere ninguna dependencia nueva ni
IA — es la respuesta directa a que ambas ideas originales piden un
resumen/reporte automático (ver docs/Propuesta-funcionalidades-faltantes-MVP.docx).
Para que se dispare solo:
CRON_SECRET en .env (una palabra clave propia, igual que las demás).vercel.json ya deja configurado que
Vercel Cron llame a esta ruta todos los días a las 11:00 UTC (8:00 en
Uruguay) — Vercel agrega automáticamente el header Authorization: Bearer $CRON_SECRET si la variable está configurada en el proyecto.curl -H "Authorization: Bearer $CRON_SECRET" https://tu-dominio/api/cron/daily-summary
http:// como redirect URI en producción.src/
app/
reservar/[slug]/ página pública de reserva
cancelar/[token]/ cancelación sin login
admin/ panel del profesional (protegido)
api/ endpoints (disponibilidad, reservas, OAuth, admin)
components/ componentes de UI (cliente)
lib/
calendar/ conectores Google y Outlook + manejo de tokens
notifications/ WhatsApp + email
availability.ts servicio de disponibilidad unificado (el núcleo)
booking.ts flujo de creación/cancelación de reservas
dailySummary.ts cálculo del resumen diario (ver sección 7)
auth.ts sesión de admin
prisma/
schema.prisma modelo de datos
docs/
whatsapp-template.md plantilla a aprobar en Meta
Propuesta-funcionalidades-faltantes-MVP.docx gap analysis vs. ideas originales
scripts/
hash-password.ts utilidad para generar ADMIN_PASSWORD_HASH
vercel.json config de Vercel Cron (resumen diario)