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)