尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Zekro: SaaS de agendamento para barbearias com Next.js e Supabase
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗SaaS de agendamento com Next.js, React, TypeScript e Supabase (Auth, PostgreSQL e Storage).
Endereço de produção: https://zekro.vercel.app. Oferta: teste de 7 dias e Zekro Pro por R$ 49,90/mês. Pagamento via Pix direto, com conferência administrativa e sem renovação automática. Veja a publicação e validação do banco e as pendências de lançamento. Endereço histórico: https://barberflow-pqueirozdev.vercel.app. Consulte o estado do ambiente para configuração e pendências de email/autenticação.
npm ci.supabase/migrations/202609170001_platform.sqlsupabase/migrations/202609170002_management.sqlsupabase/migrations/202610080001_security_stability.sqlsupabase/migrations/202610080002_trial.sqlsupabase/migrations/202610080003_manual_pix.sqlsupabase/migrations/202610080004_terms_acceptance.sql202610090001_onboarding.sql, 202610090002_product.sql e 202610090003_analytics.sql foram aplicadas em produção em 10/10/2026 e registradas no histórico Supabase. Em outros ambientes, confira as versões aplicadas antes de migrar; consulte docs/ZEKRO_2_DELIVERY.md.
As quatro migrações de outubro já foram aplicadas ao banco de produção autorizado. Para outros bancos existentes, aplique somente as migrações ainda não aplicadas após homologação e autorização; siga as instruções de aplicação e rollback..env.example para .env.local e substitua os valores:
NEXT_PUBLIC_SUPABASE_URL: URL do projeto.NEXT_PUBLIC_SUPABASE_ANON_KEY: chave pública anon.SUPABASE_SERVICE_ROLE_KEY: chave service_role, exclusiva do servidor, necessária para reservas e rate limiting.NEXT_PUBLIC_APP_URL: origem da aplicação, inicialmente http://localhost:3000.http://localhost:3000/auth/callback e http://localhost:3000/auth/callback?next=/redefinir-senha. Adicione também os equivalentes de produção.npm run dev e abra http://localhost:3000.Sem Supabase, a página inicial e /demonstracao apresentam a interface. A demonstração interativa usa dados fictícios locais e não grava no sistema. Contas e reservas reais exigem configuração.
Crie uma conta em /cadastro, confirme o email e conclua /onboarding. O assistente cria a barbearia, o primeiro serviço, o primeiro barbeiro e os horários. No dashboard, gerencie profissionais, serviços, horários, bloqueios, clientes, reservas e sua página pública. Vincule serviços aos novos profissionais e configure sua disponibilidade.
A página pública fica em /<slug>; /b/<slug> preserva links antigos. Clientes reservam sem criar conta. O banco valida duração, fuso horário e conflitos. Novas reservas exigem teste ou assinatura vigente; não existe plano gratuito permanente.
Para habilitar um administrador, um responsável pelo banco deve executar no SQL Editor após criar a conta:
update public.profiles set role = 'ADMIN' where id = '<UUID do usuário em Authentication>';
O painel /admin gerencia suspensão e plano. Não há checkout nem cobrança automática nesta versão. WhatsApp usa links para envio manual.
npm run typecheck
npm run lint
npm test
npm run build
npx playwright install chromium
npm run test:e2e
Os testes de banco usam PostgreSQL embarcado (PGlite) e simulação dos schemas Auth e Storage. Cobrem isolamento, permissões, disponibilidade, bloqueios e conflitos. Auth, emails e uploads ainda devem ser validados em um Supabase real. Os testes de navegador verificam navegação pública em desktop e celular, usando o build de produção.
Os testes de concorrência também iniciam PostgreSQL nativo local em diretório temporário, com conexões independentes. Não leem credenciais Supabase. test:e2e recompila com URLs de loopback e credenciais fictícias, inicia fixtures HTTP locais e verifica rate limiting, conflitos, entradas e origens. Usa Chrome instalado no Windows quando disponível. O build de teste não deve ser publicado: execute novo npm run build com o ambiente correto antes de publicação autorizada.
OWNER gerencia configurações, equipe, permissões e preços; MANAGER mantém agenda, clientes, serviços e horários. Preços são exclusivos de OWNER. Reservas públicas não sobrescrevem clientes existentes; correções cadastrais ocorrem na área autenticada. Assinaturas continuam provisionadas pelo ADMIN, sem checkout.
Consulte a auditoria, as dependências e pendências e o relatório de entrega. Esta branch também inclui a auditoria Zekro 2.0 e o relatório de entrega local e limitações.
Se o Chrome já estiver instalado, é possível dispensar o download do Chromium. No PowerShell, execute $env:PLAYWRIGHT_CHANNEL='chrome' antes de npm run test:e2e.
Para executar os testes de navegador contra produção, defina também $env:PLAYWRIGHT_BASE_URL='https://barberflow-pqueirozdev.vercel.app'. Isso dispensa o servidor local.
Para testar a integração real, inicie a aplicação em outra janela com npm start e execute no PowerShell:
$env:RUN_LIVE_TESTS='1'
node --env-file=.env.local tests/live.mjs
Esse teste cria uma conta temporária já confirmada, uma barbearia, uma reserva e uma imagem no projeto configurado. Verifica login HTTP, cookies, onboarding, páginas autenticadas, disponibilidade, conflito de reservas, cancelamento e Storage. Remove os próprios dados ao terminar, inclusive quando uma verificação falha. Não envia emails; entrega de confirmação e recuperação deve ser validada separadamente com um provedor SMTP configurado.
Para produção, configure as mesmas variáveis na hospedagem, ajuste a origem e redirects, aplique as migrações e execute npm run build e npm start. Na Vercel, o rate limit usa o IP da plataforma; fora dela, o limite é compartilhado e a identificação de IP deve ser adaptada ao proxy confiável da hospedagem.
prisma/ e docker-compose.yml são legados e não participam da aplicação atual. Não execute o seed antigo: use cadastro e onboarding. Consulte a arquitetura.
Configuração de Pix direto, Google OAuth e páginas legais: PIX_GOOGLE_LEGAL.md.