Sistema completo para gestão de um único racha de futebol, desenvolvido com Next.js, TailwindCSS, Lucide React e Supabase.
- ✅ Autenticação (Login/Cadastro/Recuperação de senha)
- ✅ Visualizar integrantes do racha
- ✅ Confirmar presença nos rachas ("Estou dentro" / "Estou fora")
- ✅ Acompanhar estatísticas dos rachas
- ✅ Ver campeonatos e classificações
- ✅ Ranking com badges automáticas
- ✅ Votar em Craque e Xerife (quando votação aberta)
- ✅ Cadastrar e gerenciar integrantes
- ✅ Criar e gerenciar rachas (recorrentes ou únicos)
- ✅ Registrar scouts ao vivo (gols, assistências, defesas, advertências)
- ✅ Criar e gerenciar campeonatos (pontos corridos ou chaveamento)
- ✅ Registrar resultados de partidas
- ✅ Abrir/fechar períodos de votação
- Node.js 18+ instalado
- Conta no Supabase
- Git (opcional)
npm install- Crie um projeto no Supabase
- No dashboard do Supabase, vá em SQL Editor
- Execute os seguintes arquivos SQL na ordem:
supabase/migrations/001_initial_schema.sqlsupabase/migrations/002_rls_policies.sqlsupabase/seed.sql(opcional, para dados de exemplo)
Crie um arquivo .env.local na raiz do projeto:
NEXT_PUBLIC_SUPABASE_URL=sua-url-do-projeto
NEXT_PUBLIC_SUPABASE_ANON_KEY=sua-chave-anonima
SUPABASE_SERVICE_ROLE_KEY=sua-service-role-keyComo obter as chaves:
- No dashboard do Supabase, vá em Settings > API
- Copie:
- Project URL →
NEXT_PUBLIC_SUPABASE_URL - anon public →
NEXT_PUBLIC_SUPABASE_ANON_KEY - service_role (
⚠️ secret) →SUPABASE_SERVICE_ROLE_KEY
- Project URL →
Após executar as migrations:
- Crie uma conta pelo
/signup - No Supabase Dashboard, vá em Authentication > Users
- Copie o UUID do usuário criado
- No SQL Editor, execute:
UPDATE profiles
SET role = 'admin'
WHERE id = 'SEU-UUID-AQUI';npm run devAcesse: http://localhost:3000
Site Rachaldeira/
├── app/ # Next.js App Router
│ ├── (auth)/ # Páginas de autenticação
│ │ ├── login/
│ │ ├── signup/
│ │ └── forgot-password/
│ ├── admin/ # Páginas administrativas
│ │ ├── integrantes/
│ │ ├── rachas/
│ │ └── campeonatos/
│ ├── rachas/ # Rachas (usuários)
│ ├── campeonatos/ # Campeonatos (usuários)
│ ├── integrantes/ # Lista de integrantes
│ ├── stats/ # Estatísticas
│ ├── rank/ # Ranking e votação
│ └── page.tsx # Home
├── components/ # Componentes React
│ ├── ui/ # Componentes UI base
│ └── layout/ # Navbar, Footer, etc
├── lib/ # Utilidades
│ └── supabase/ # Cliente Supabase
├── supabase/ # SQL migrations e seeds
│ ├── migrations/
│ └── seed.sql
└── public/ # Arquivos estáticos
- profiles - Perfis de usuário (role: admin/user)
- members - Integrantes do racha
- rachas - Eventos de racha
- racha_attendance - Confirmação de presença
- racha_scouts - Estatísticas por racha
- championships - Campeonatos
- teams - Times dos campeonatos
- championship_matches - Partidas
- match_player_stats - Estatísticas por partida
- voting_periods - Períodos de votação
- votes - Votos de Craque/Xerife
Ver documentação completa em SCHEMA.md.
- Leitura: Todos os usuários autenticados podem ler dados
- Escrita:
- Usuários podem confirmar própria presença nos rachas
- Usuários podem votar 1x por período
- Apenas admins podem criar/editar rachas, campeonatos, scouts e integrantes
- Implementação: Supabase Edge Function com cron
- Frequência: A cada 5 minutos
- Ação: Muda status de 'open' para 'locked' quando faltar 30min
- Implementação: Supabase Edge Function com cron
- Frequência: Toda segunda-feira às 00:00
- Ação: Reabre confirmação do próximo racha semanal
Ver arquivos em supabase/functions/.
Calculadas dinamicamente por queries agregadas:
- 🎯 Artilheiro - Mais gols no período
- 🍽️ Garçom - Mais assistências
- 🧱 Paredão - Mais defesas difíceis
- 🏃 Fominha - Mais participações em rachas
- ⭐ Craque - Mais votos "Craque"
- 👮 Xerife - Mais votos "Xerife"
- Faça push do código para GitHub
- Importe o projeto no Vercel
- Configure as variáveis de ambiente no Vercel
- Deploy automático!
/- Home/login- Login/signup- Cadastro
/integrantes- Lista de integrantes/rachas- Lista de rachas/rachas/proximo- Próximo racha (confirmação)/rachas/[id]- Detalhes do racha/campeonatos- Lista de campeonatos/campeonatos/[id]- Detalhes do campeonato/stats/2026- Estatísticas do ano/rank- Ranking e votação
/admin/integrantes- Gerenciar integrantes/admin/rachas- Gerenciar rachas/admin/rachas/[id]/scouts- Scouts ao vivo/admin/campeonatos- Gerenciar campeonatos
- Framework: Next.js 15 (App Router)
- Estilização: TailwindCSS
- Ícones: Lucide React
- Backend: Supabase (PostgreSQL + Auth + Storage)
- Linguagem: TypeScript
Este projeto foi desenvolvido para uso do grupo Rachaldeira.
Este é um projeto privado do grupo Rachaldeira. Para sugestões de melhorias, entre em contato com os administradores.
Desenvolvido com ⚽ para Rachaldeira