BikeControl (SwiftControl)
Use Zwift Click, Zwift Play, Shimano Di2, or any Bluetooth controller with MyWhoosh, Rouvy, Zwift, and more. Free to try on iOS, Android, Windows, and macOS.
翻訳待ち
リポジトリ情報はまだ収集していません。
No updates detected yet. GitHub releases will appear here.
Plataforma de gestão de campeonatos — Arena Vale Sports. Landing pública, painel do coordenador, painel do moderador de time, súmulas digitais com QR, gestão de patrocinadores e transmissões. Next.js 14 + Supabase + Vercel.
翻訳待ち
Loading the full README.
Read the full README ↗Site da Arena Vale ("O palco do esporte é aqui."). Tem agenda, campeonatos, notícias, atletas destaque, súmulas digitais, TV, projeto social e os painéis da equipe.
arenavaleinstituto-source/arena-valetailwind.config.tsRequisitos: Node 20.9 ou mais novo.
npm install
cp .env.example .env.local # depois preencha as 3 chaves (veja abaixo)
npm run dev # http://localhost:3000
Ficam em .env.local, que nunca vai para o git. Na Vercel, ficam em Settings → Environment Variables, para Preview e Production.
| Variável | Onde pegar | Uso |
|---|---|---|
NEXT_PUBLIC_SUPABASE_URL | Supabase → Settings → API → Project URL | navegador e servidor |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Supabase → Settings → API → anon public | navegador e servidor |
SUPABASE_SERVICE_ROLE_KEY | Supabase → Settings → API → service_role | só no servidor e no seed. Nunca expor no navegador |
Outras variáveis (cadastradas na Vercel; no computador, em .env.local):
| Variável | Uso |
|---|---|
NEXT_PUBLIC_BASE_URL | endereço do site (https://www.arenavale.com.br) |
TELEGRAM_BOT_TOKEN, TELEGRAM_WEBHOOK_SECRET | robô do Telegram (seção abaixo) |
CRON_SECRET | rotina diária que apaga vídeos vencidos e renova a chave do Instagram |
INSTAGRAM_ACCESS_TOKEN, INSTAGRAM_USER_ID | Story automático no Instagram (opcional) |
YOUTUBE_API_KEY | YouTube Data API v3: Últimos vídeos, lives e Cortes (Shorts). Sem ela, os vídeos usam o RSS e os Cortes não aparecem |
As migrações ficam em supabase/migrations/ (0001 a 0019) e devem ser aplicadas em ordem. Há duas formas:
A) Pelo terminal (Supabase CLI)
npx supabase login
npx supabase link --project-ref <ref-do-projeto> # o ref aparece na URL do painel do Supabase
npx supabase db push
B) Pelo painel
Abra SQL Editor no Supabase, cole o conteúdo de cada arquivo de supabase/migrations/ em ordem (0001, 0002, …) e execute.
Depois, para popular com dados de demonstração (campeonatos, times, jogos e súmulas):
npm run db:seed # exige SUPABASE_SERVICE_ROLE_KEY no .env.local
| Comando | O que faz |
|---|---|
npm run dev | servidor de desenvolvimento |
npm run build | build de produção |
npm start | sobe o build de produção |
npm run lint | ESLint |
npm run typecheck | checagem de tipos (TypeScript) |
npm test | testes (Vitest) |
npm run db:seed | popula o banco com dados de demonstração |
| Cargo | Entra em | Pode |
|---|---|---|
| Proprietário (aparece como "Coordenador") | tudo + área escondida (3 toques no logo) | gerir os coordenadores e o limite |
| Coordenador | /coordenador | tudo no site, menos mexer em coordenadores |
| Moderador | /moderador | resultados, eventos e súmulas dos SEUS campeonatos |
| Capitão | /capitao | a própria equipe e o elenco |
/login): o site lê o cargo no banco e leva ao painel certo.0009 e 0010); as páginas só repetem a checagem.Em Authentication → URL Configuration:
https://arena-vale.vercel.apphttps://arena-vale.vercel.app/**, https://*-arena-vale.vercel.app/** e http://localhost:3000/**Os modelos de e-mail padrão do Supabase já funcionam com o site:
/criar-senha com a sessão no # (a página abre a sessão sozinha);?code= para /auth/confirm.Limite importante: sem um servidor de e-mail próprio (Authentication → Emails → Set up SMTP), o Supabase só entrega e-mails para os membros da equipe do projeto e com limite baixo por hora. Para convidar qualquer pessoa, configure um SMTP (ex.: Resend). Com SMTP, os modelos também podem ser personalizados; nesse caso use links no formato {{ .RedirectTo }}&token_hash={{ .TokenHash }}&type=<invite|magiclink|recovery> (a rota /auth/confirm também aceita esse formato).
npm run test:db recria o banco do projeto TESTES do zero (credenciais em .env.test.local, nunca no git) e testa as regras de cada cargo. O script se recusa a rodar se apontar para o banco oficial.
git push -u origin <branch>).main. A Vercel publica em produção.docs/superpowers/specs/2026-11-08-arena-vale-organizacao-noticias-permissoes-design.mddocs/superpowers/plans/O bot transforma mensagens encaminhadas em rascunhos na aba Notícias do painel (aba Esporte Mundial). Nada é publicado sozinho: a coordenação revisa e publica.
Configuração (uma vez):
This is the beginning of the README. Read the rest at the original. Read the full README ↗