Synaplan
기업을 위한 오픈소스 AI 플랫폼
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Versión actual: v1.0.0
Aplicación SaaS multiempresa construida con Next.js 15, TypeScript, Tailwind CSS, componentes estilo Shadcn UI y Supabase.
app/(auth): autenticación con Supabase Auth.app/(app): área protegida y responsive.components: shell, dashboard, notificaciones y componentes UI reutilizables.lib/supabase: clientes para browser, server components y middleware.lib/tenant.ts: resolución de empresa activa, usuario y rol.lib/security.ts: sanitización, rate limiting y protección de origen.supabase/migrations: esquema SQL completo con llaves foráneas, índices, auditoría, RLS, Storage y Realtime.app/
(auth)/ Login, registro
(app)/ Área protegida: activos, mantenimientos, agenda, informes, usuarios, settings...
api/ Rutas API: Google OAuth, feeds de calendario, cron jobs, informes
calendar/public/ Página pública de disponibilidad (sin autenticación)
components/ Componentes React reutilizables (shell, calendario, informes, UI base)
lib/
actions/ Server Actions (mutaciones)
email/ Plantillas, envío SMTP/Resend, cola de correo
google/ OAuth y sincronización con Google Calendar
reports/ Generadores de PDF/Excel
supabase/ Clientes Supabase (browser/server/admin)
supabase/
migrations/ Migraciones SQL numeradas (idempotentes)
seed/ Datos de prueba (solo para desarrollo/QA)
docs/ Documentación técnica y de producción
Software propietario desarrollado para Progrúas S.A.S. Todos los derechos reservados — no distribuir sin autorización.
cp .env.example .env.local
npm install
npm run dev
Ver .env.example para la lista completa comentada. Resumen:
| Variable | Requerida | Descripción |
|---|---|---|
NEXT_PUBLIC_SUPABASE_URL | Sí | URL del proyecto Supabase |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Sí | Clave pública (anon) de Supabase |
SUPABASE_SECRET_KEY | Sí | Clave de servicio (server-only, nunca exponer al cliente) |
APP_URL | Sí | URL base del despliegue (sin / final), usada para OAuth de Google |
SMTP_CREDENTIALS_ENCRYPTION_KEY | Sí para SMTP | Frase usada para cifrar las contraseñas SMTP guardadas por cada empresa |
RESEND_API_KEY / RESEND_FROM_EMAIL | No | Respaldo de envío de correo si una empresa no configuró su propio SMTP |
GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET | No | Habilitan la sincronización con Google Calendar |
GOOGLE_TOKEN_ENCRYPTION_KEY | No (requerida si se usa Google) | Frase usada para cifrar los tokens OAuth de Google |
CRON_SECRET | Recomendada en producción | Protege los endpoints app/api/cron/* llamados por Vercel Cron |
Ninguna variable con secretos reales debe commitearse — .gitignore excluye todos los .env* salvo .env.example.
El proyecto está pensado para desplegarse en Vercel:
supabase/migrations/ sobre el proyecto Supabase de producción (ver sección siguiente).app/api/cron/reminders, app/api/cron/email-queue y app/api/cron/expirations según vercel.json.Para despliegue alternativo en un VPS propio, ver Despliegue en Hostinger VPS.
En el editor SQL de Supabase, aplica todos los archivos de supabase/migrations/
en orden numérico (001 → el número más alto disponible). Todas las migraciones son
idempotentes, así que volver a correrlas no causa daño. No apliques nada de
supabase/seed/ en una instalación de producción real — esos archivos insertan datos
de prueba y solo sirven para un entorno de QA/desarrollo desechable.
supabase/repairs/ y supabase/diagnostics/ son notas históricas de sesiones de
depuración anteriores, ya incorporadas a las migraciones numeradas; no hace falta
correrlas.
Cada tabla operativa incluye company_id. La aplicación consulta e inserta usando la empresa activa del usuario, y Supabase RLS bloquea cualquier acceso fuera de la empresa.
Roles soportados:
SUPER_ADMINADMINSUPERVISOROPERARIOEl panel principal recalcula: