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