尚未偵測到更新。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.