BikeControl (SwiftControl)
Zwift Click과 Shimano 컨트롤러를 MyWhoosh와 Rouvy와 Zwift에서 쓴다
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
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.
README 전체를 불러오는 중입니다.
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):
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗