OpenAthlete
AGPLv3 endurance training platform: EU-oriented hosting, transparent CTL/ATL/TSB logic in code, self-hosting, and full export. Built in Grenoble.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
Aplicativo web mobile-first (PWA) para gestão de peladas semanais — lista de presenca, sorteio de times, controle de partidas ao vivo, estatisticas e votacao entre jogadores. Crie um arquivo .env na raiz com: Todo cadastro novo comeca como Pendente e so recebe acesso apos aprovacao manual do admin via Tela 6. Tela 1 — Login / Cadastro Acesso: Todos Porta de entrada do app.查看完整 README ↗
Aplicativo web mobile-first (PWA) para gestão de peladas semanais — lista de presenca, sorteio de times, controle de partidas ao vivo, estatisticas e votacao entre jogadores.
Acesse: https://bagres-fc.vercel.app
| Camada | Tecnologia |
|---|---|
| Frontend | React + Vite (PWA) |
| Estilo | Tailwind CSS + shadcn/ui |
| Backend + Banco | Supabase (PostgreSQL + Auth + Storage) |
| Hospedagem | Vercel |
| Notificacoes | Web Push + Supabase Edge Functions |
npm install
npm run dev
Crie um arquivo .env na raiz com:
VITE_SUPABASE_URL=sua_url_aqui
VITE_SUPABASE_ANON_KEY=sua_chave_aqui
| Perfil | Acesso |
|---|---|
| Admin | Todas as telas + exclusivas (3A e 6) |
| Usuario Aprovado | Telas 1, 2, 3B, 4 e 5 |
| Pendente | Somente tela de bloqueio "Aguardando aprovacao" |
Todo cadastro novo comeca como Pendente e so recebe acesso apos aprovacao manual do admin via Tela 6.
| Periodo | Estado |
|---|---|
| Segunda a Quinta (antes das 14h) | Lista fechada — admin pode abrir manualmente |
| Quinta as 14h | Lista abre automaticamente; admins entram confirmados primeiro |
| Quinta as 18h (ou todos pagos) | Lista fecha; times sorteados sao revelados |
| Segunda | Dia do jogo |
| Pos-jogo | Admin finaliza a rodada, estatisticas atualizadas, votacao aberta manualmente |
Acesso: Todos
Porta de entrada do app.
Acesso: Todos os aprovados
Hub de informacoes publicas e historico do grupo.
Acesso: Somente Admin
Painel de controle completo do evento semanal, dividido em tres fases:
Pre-jogo
Durante o jogo
Pos-jogo
Acesso: Usuarios aprovados
Visao do jogador sobre o evento da semana. O conteudo muda conforme a fase da rodada:
| Fase | O que o jogador ve |
|---|---|
| Antes de quinta as 14h | "Aguardando rodada" |
| Lista aberta | Botao "Entrar na lista" |
| Na lista principal | Lista completa + "Confirmar Pagamento" ou "Retirar nome" |
| Na lista de espera | Lista completa + posicao atual na fila |
| Quinta as 18h / todos pagos | Times sorteados revelados |
| Fim da rodada | Resumo oficial (Artilheiro, Garcao, Time da Rodada) |
Acesso: Todos os aprovados
Sistema de avaliacao entre jogadores para gerar os ratings exibidos na Tela 2.
Acesso: Todos os aprovados
Area pessoal do usuario.
Acesso: Somente Admin
Backoffice de gestao de pessoas e acessos.
Execute supabase/schema.sql e supabase/functions.sql no SQL Editor do Supabase para criar as tabelas, triggers, RLS e funcoes auxiliares.
| Tabela | Descricao |
|---|---|
profiles | Jogadores (estende auth.users) |
rodadas | Rodadas semanais |
presencas | Lista de confirmados e fila de espera |
times | Times sorteados por rodada |
time_jogadores | Relacao jogador <-> time |
partidas | Resultados das partidas |
eventos | Gols e assistencias por partida |
ciclos_votacao | Ciclos de avaliacao |
votos | Avaliacoes entre jogadores |
push_subscriptions | Assinaturas de push notification |
O app envia notificacoes via Web Push (PWA) nos seguintes eventos:
Edge Function: send-push
Secrets necessarios: VAPID_PUBLIC_KEY, VAPID_PRIVATE_KEY
# Frontend
npx vercel --prod
# Edge Function
npx supabase functions deploy send-push --no-verify-jwt
Inspirado no Cartola FC — dark mode com sotaque futebolistico.
#0D0D0D / #111827#00C853#FFD600#EF4444rounded-2xl e avatares circulares