MyCdA
Free CdA calculator for cyclists: measure your drag area (CdA) and rolling resistance (Crr) from power meter field tests with Chung's virtual elevation method.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗PWA pessoal que lê os treinos de corrida do Strava e mostra recordes, metas, provas e medalhas do mês. Cada pessoa entra com a própria conta do Strava e vê só os próprios dados.
| Parte | Onde |
|---|---|
| App (HTML único + manifest + service worker) | Vercel: https://recordes-pi.vercel.app (publica sozinho a cada push na main) |
| Backend | Supabase, projeto Recordes de Corrida (npekkekabsoyoagnelsp), Edge Function api |
| Dados | Strava API (app 285788), só leitura (read,activity:read_all,profile:read_all) |
STRAVA_CLIENT_SECRET), e nunca no código do app.athletes, sessions, docs) com RLS ligado e sem políticas: só a função acessa.docs guarda por atleta: efforts/<atividade> (melhores esforços e splits já calculados), config/metas, config/races (provas, editáveis na tela Provas) e config/settings (range_start, walk_until).apiPOST /auth · GET /me · GET /activities · GET /streams?id= · GET /docs · PUT /docs · GET /weight · GET /partner · GET /push/key · POST /push/subscribe · POST /push/unsubscribe · POST /logout · POST /cron/weights · POST /cron/push · POST /cron/nudge · POST /cron/webhook-setup · GET|POST /webhook
profile:read_all), um ponto por dia em config/weights. Só registra quando o valor muda e mantém a primeira pesagem do dia. Uma rotina do pg_cron (rc-weights, 9h e 21h de Brasília) chama /cron/weights com um token guardado no Vault (rc_cron_token); a função só compara o hash dele.config/partner (só o dono altera, via banco) aceita athlete_id ou athlete_ids. Com 1 pessoa em comum aparece a Dupla; com 2 ou mais, a aba vira Grupo. Placar com pesos (SCORE_LINES): Melhora recente 4, Nota por idade e sexo 3, Correndo sem parar em 90 dias 3, Metas 2, Constância em 12 semanas 1, Medalhas 1, Dias com recorde 1; em cada linha, os pontos dela por pessoa superada. Cada app publica config/summary (v3, com a lista de horários dos treinos dos últimos 120 dias para "treinos juntos"); /partner só devolve o resumo do outro quando os dois config/partner apontam um pro outro.docs (0, system, vapid). Os aparelhos inscritos ficam em config/push. As rotinas rc-push-semana (qui e sex, 18h) e rc-push-sabado (sáb, 8h) chamam /cron/push, que só avisa quem ainda não tem 2 corridas na semana (domingo a sábado).379199 criada por /cron/webhook-setup (token de verificação e id em docs (0, system, webhook)). Cada atividade nova chama /webhook, que recalcula só treinos juntos, semana/constância e medalhas a partir do último config/summary (v7 traz week, kmT, dT e actDays) e grava em config/live (protegido). /partner junta os dois enquanto o resumo for o mesmo e devolve live_at. A rotina rc-nudge (20h) avisa quem tem treino que o app ainda não viu há mais de 20 h, uma vez por treino.config/pauses ({weeks: {"<domingo>": "motivo"}}). Semana pausada com menos de 2 corridas não conta nem quebra a sequência, no app, na Dupla e no /cron/push (que também não avisa nela).chip (segundos) em cada prova de config/races. Vale no lugar do tempo do Strava na distância oficial; se a meta daquela distância tinha a prova como base, ela é recalculada a partir dele.O código da função está em supabase/functions/api/index.ts (cópia de referência; o deploy é feito no Supabase).
recordes na organização batinga. Erros do app no celular chegam lá (só no endereço publicado), com a etiqueta atleta (primeiro nome).200 leituras a cada 15 min e 2.000 por dia para o app inteiro, até 10 atletas. O primeiro acesso de alguém novo calcula os esforços treino a treino; se bater no limite, o app pausa e continua sozinho.