Synaplan
開源 AI 平台,供企業使用:自行託管的 AI 代理、符合 GDPR 的聊天機器人小工具、RAG 知識庫、WhatsApp 與 Outlook AI、MCP、多模型路由。Docker、Kubernetes 或託管於 Germ
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Plataforma SaaS multi-tenant de gestão para profissionais e negócios de beleza e estética: agenda inteligente, agendamento online, CRM de clientes, registro de pagamentos e indicadores.
Proposta de valor: menos tempo administrando, menos horários perdidos e mais clientes voltando.
| Área | Situação |
|---|---|
| Landing page, cadastro, login, sessão | ✅ funcional |
| Onboarding guiado (negócio → horários → serviços) | ✅ funcional |
| Multi-tenancy com RLS no PostgreSQL + papéis | ✅ funcional e testado |
| Agenda dia/semana/mês, criação, reagendamento, status, encaixe, bloqueios | ✅ funcional |
| Proteção contra reserva duplicada (lock + restrição de exclusão) | ✅ testado com concorrência |
Página pública de agendamento (/b/<slug>) | ✅ funcional |
| Clientes: ficha, histórico, segmentos, duplicados, consentimento, CSV | ✅ funcional |
| Serviços e profissionais (expediente, pausas, serviços habilitados) | ✅ funcional |
| Pagamentos: sinal, parcial, integral, estorno auditável | ✅ funcional (registro manual) |
| Painel com métricas reais definidas | ✅ funcional |
| Notificações internas | ✅ funcional |
| Fila de mensagens (idempotente, retentativas) | ✅ motor pronto · ⚠️ nenhum canal conectado |
| Assinaturas e planos | ⚠️ modelo + regras de acesso prontos · cobrança não integrada |
| Financeiro completo, comissões, relatórios, marketing, estoque | 🔜 próximas fases (roadmap) |
src/app/globals.css)postgres (porsager) — SQL explícito, sem ORMdate-fns + @date-fns/tz para fusosDecisões e justificativas: docs/ARQUITETURA.md.
Pré-requisitos: Node 20.9+ e PostgreSQL 15+ (local, Docker ou Supabase).
npm install
cp .env.example .env.local # ajuste DATABASE_URL
npm run db:migrate # aplica db/migrations/*.sql
DEMO_PASSWORD=uma-senha npm run db:seed-demo # opcional: conta de demonstração isolada
VITRINE_PASSWORD=uma-senha npm run db:seed-vitrine # opcional: salão vitrine com ~4 meses de números realistas
npm run dev # http://localhost:3000
A conta de demonstração ([email protected], e-mail de teste local) é uma organização marcada como is_demo;
a interface exibe um aviso permanente e os dados ficam isolados pelo mesmo RLS das contas reais.
A conta vitrine ([email protected], "Salão Lumi") serve para apresentações: 3 profissionais e ~4 meses
de agenda contando a história "faturava ~R$ 14 mil por mês e, em 3 meses com a Gê, chegou a ~R$ 17,6 mil"
(por mês típico de 21,7 dias de atendimento). O crescimento vem de premissas explícitas no topo de
scripts/seed-vitrine.ts: faltas de ~14% para ~5%, agendamento online de 0% para ~35%, serviço adicional
de ~3% para ~15%. É relativa à data em que roda (o 3º mês é o mês atual); RESET=1 recria do zero.
Também é is_demo, e os telefones das clientes são fictícios em sequência ((11) 90000-0001…).
O seed é bloqueado em produção, a menos que ALLOW_DEMO_SEED=1.
npm run typecheck # tsc --noEmit
npm run lint # eslint
npm run test # unitários + integração (precisa de PostgreSQL, ver abaixo)
npm run build
BASE_URL=http://localhost:3000 npm run test:e2e # com o app rodando e a conta demo criada
Os testes de integração usam TEST_DATABASE_URL
(padrão postgres://[email protected]:5432/beauty_os_test) e recriam o schema app desse banco.
Nunca aponte para um banco com dados reais.
O teste ponta a ponta cria uma conta nova a cada execução; o limite de cadastros por IP
(10/hora) pode bloquear execuções repetidas — limpe app.rate_limits no banco local.
db/migrations/ SQL versionado (schema, RLS, papéis)
scripts/ migrate.ts, seed-demo.ts, seed-vitrine.ts
src/domain/ regras puras: disponibilidade, status, permissões, planos, métricas
src/server/ acesso a dados e casos de uso (rodam no servidor)
db.ts withTenant (RLS) / withSystem
auth/ senha (scrypt) e sessões
modules/ agenda, clientes, serviços, equipe, pagamentos, mensagens, painel, público
src/app/ rotas (landing, auth, onboarding, /app/*, /b/[slug], API de cron)
src/components/ design system (ui/), shell, gráficos
tests/unit|integration|e2e
docs/ arquitetura, roadmap, integrações, segurança/LGPD
Pensado para Vercel + Supabase (PostgreSQL). Passos em docs/DEPLOY.md.
Gê — o nome aparece em cursiva (Allura) com o monograma "G" sobre o degradê Royal Violet. Tema escuro com a escala de violetas da marca; detalhes em docs/design/tema-royal-violet.md.