尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Gestão completa para lash designers autônomas no Brasil — agenda, clientes, ficha técnica de cílios, anamnese com assinatura, WhatsApp com Pix copia-e-cola, link público de agendamento, financeiro, estoque, relatórios, push e gamificação. Mobile-first radical, com identidade rosa (fundo blush + acento pink configurável).
Interface, datas (dd/mm/aaaa) e moeda (R$) 100% em português do Brasil.
professionalId em toda tabela)StorageProvider — SupabaseStorageProvider (bucket privado uploads) quando as envs do Supabase existem; disco local como fallback de devMessageProvider (Fases 1-2: links wa.me prontos; Fase 3: Meta Cloud API / Evolution API)npm install # roda prisma generate no postinstall
npx prisma migrate deploy # aplica migrations no banco do .env
npm run db:seed # dados de demonstração (APAGA e recria os dados!)
npm run dev # http://localhost:3000
O
.env(não versionado) precisa deDATABASE_URL/DIRECT_URL(Supabase Postgres — localmente use o session pooler, porta 5432),AUTH_SECRET,AUTH_TRUST_HOST, chaves VAPID,CRON_SECRETeSUPABASE_URL/SUPABASE_SERVICE_ROLE_KEY. Veja.env.example.
Login de demonstração: [email protected] / kaycilios123
O seed cria a profissional Kay Camargo (Kay Cílios — baseada no perfil real @kaycilios_sobrancelhas, com tema champagne + dourado), 6 serviços com preços de mercado, 8 templates de WhatsApp e 5 clientes com históricos pensados para demonstrar cada regra:
| Cliente | Situação |
|---|---|
| Juliana Souza | Dia 14 do ciclo (aviso de manutenção dispara amanhã) + horário hoje |
| Carla Mendes | Inativa (75 dias) → recebe mensagem de resgate |
| Beatriz Lima | Contraindicação na anamnese (alergia à cola + glaucoma) + sinal pendente |
| Fernanda Castro | Aniversariante de hoje + lembrete 24h (horário amanhã) |
| Patrícia Alves | Dia 16 do ciclo (aviso de manutenção hoje) + 2 faltas → sinal obrigatório |
npx tsx scripts/test-regras.ts
Cobre as 6 regras críticas: manutenção fora do prazo vira aplicação · conflito/buffer bloqueados · alerta de contraindicação · aviso de manutenção no dia do ciclo · sinal obrigatório após N faltas · fotos/anamnese acessíveis só pela dona (rota autenticada).
src/
app/(app)/ páginas autenticadas (agenda, clientes, mensagens, ...)
app/login/ autenticação
app/api/uploads/ fotos servidas com checagem de dono (LGPD)
lib/domain/ regras de negócio puras (scheduling, maintenance, deposit, queue...)
lib/providers/ StorageProvider e MessageProvider (trocáveis)
components/ui/ design system (tons neutros + acento configurável)
prisma/ schema multi-tenant, migrations e seed
scripts/ testes das regras de negócio
O projeto já está pronto: postinstall roda prisma generate e o build roda prisma migrate deploy && next build — cada deploy aplica as migrations sozinho.
uploads no Storage.DATABASE_URL (transaction pooler 6543 com ?pgbouncer=true&connection_limit=1&sslmode=require), DIRECT_URL (session pooler 5432 com ?sslmode=require), AUTH_SECRET, AUTH_TRUST_HOST=true, NEXT_PUBLIC_VAPID_PUBLIC_KEY/VAPID_PRIVATE_KEY, CRON_SECRET, SUPABASE_URL e SUPABASE_SERVICE_ROLE_KEY.vercel.json, 07:30 BRT) passa a rodar automaticamente com o CRON_SECRET configurado.npm run db:seed com o .env apontando para produção cria a conta demo (atenção: apaga os dados existentes)./agendar/[slug] (anti-spam com honeypot + limites diários, sinal com Pix), anamnese digital com assinatura em canvas e flags de contraindicação, financeiro completo (painel mensal, meta, despesas com recorrência fixa, gráfico 6 meses), estoque com baixa automática por atendimento e validade de colas, relatórios (status × LTV × serviços × demanda × origens), push (resumo diário via /api/cron/daily + vercel.json; requer CRON_SECRET/VAPID em produção)./conquistas + card na home.MessageProvider, modo SaaS multi-profissional com planos, relatórios avançados.Cron em produção (Vercel): o resumo diário dispara às 10:30 UTC (07:30 BRT) via
vercel.json; configure a envCRON_SECRETpara o header de autorização e gere chaves VAPID próprias (npx web-push generate-vapid-keys).