Stridetober 🍂 Walk it
Oct 4 – Oct 31. Most total steps is crowned THE OCTOBER STEP CHAMPION on November 1 — top three split the pot 50/30/20.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Апгрейд — программа тренировок: PWA, офлайн, журнал, база упражнений
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Личное веб-приложение с программой силовых тренировок v3: 2–3 тренировки в неделю, режимы на 60, 90 и 120 минут, три блока по 5 недель, журнал подходов и замеров, база из 1324 упражнений. Работает офлайн, ставится на телефон как приложение и синхронизирует данные через Neon (Postgres + Neon Auth + Neon Function).
Дни тренировок выбираешь сам, неделя программы закрывается по выполнению, циклом нагрузки можно управлять вручную. В журнале — графики прогресса, объёма и замеров. Данные выгружаются для анализа агентом, а его корректировки программы импортируются обратно с предпросмотром. Что дальше — в ROADMAP.md.
docs/ готовое приложение — его раздаёт GitHub Pages
index.html оболочка
css/app.css стили (светлая и тёмная темы)
js/store.js хранение на устройстве (localStorage) + хуки для синхронизации
js/config.js адрес API (сгенерировано из src/app-config.json)
js/program.js программа + шаги из базы упражнений (сгенерировано)
js/sync.js вход по коду из письма и синхронизация с базой
js/charts.js графики (SVG без библиотек)
js/plan.js правки программы: замены, порядок, добавленные упражнения (без DOM)
js/app.js интерфейс
data/program.json программа в JSON — для будущего бэкенда
data/exercises-ru.json база упражнений (выжимка exercises-dataset)
sw.js service worker: офлайн и обновления
manifest.webmanifest манифест PWA
src/ исходники
data.js публичная программа: упражнения, блоки, тренировки, тексты, источники
ds-map.json связь упражнений программы с базой exercises-dataset
ds-names-ru.json русские названия всех 1324 упражнений базы (id → название; сборка проверяет полноту)
app-config.json адрес Neon Function
app.js, plan.js, store.js, sync.js, charts.js, style.css, index.tpl.html, sw.tpl.js, manifest.webmanifest, icons/
backend/ Neon Function (TypeScript) и neon.ts
build.py сборка src/ → docs/
ROADMAP.md план развития и форматы данных
private/ личная версия программы — в git не попадает (см. ниже)
git clone --depth 1 https://github.com/hasaneyldrm/exercises-dataset vendor/exercises-dataset
python3 build.py # нужны Python 3 и Node.js
Каждая сборка получает новую версию: установленное приложение покажет «Доступна новая версия» и обновится одной кнопкой.
localStorage (префикс upg3:), поэтому приложение работает офлайн и без входа.localStorage (префикс upg3~) и ходят к функции в заголовках — сторонние cookie не нужны, поэтому вход держится и в PWA на iPhone.plan) — целиком. Конфликты решает время изменения записи.app.members; почты из MEMBER_EMAILS добавляются туда при первом входе.plan.s), упражнения из базы — в plan.x; неизменённые тренировки берутся из src/data.js. Подробнее — в ROADMAP.md.backend/src/index.ts — одна Neon Function:
| Путь | Что делает |
|---|---|
/auth/* | прокси к Neon Auth: cookie ↔ заголовки X-Auth-Cookies / X-Auth-Set-Cookies |
POST /sync | отправка изменений и получение новых (по курсору rev), JWT Neon Auth проверяется по JWKS |
GET /me | кто вошёл и есть ли доступ |
GET /health | проверка без обращения к базе |
Таблицы создаются функцией сама при первом запросе: app.kv (данные по пользователю и ключу) и app.members.
cd backend && npm install
neon link --project-id <id> # один раз
neon deploy --env deploy.env # в файле: ALLOWED_ORIGINS, MEMBER_EMAILS (не в git)
neon functions get api # invocation_url → src/app-config.json
Публичная программа (src/data.js) не содержит медицинских подробностей. Личная версия лежит в private/data.private.js (в .gitignore). python3 build.py сравнивает их и пишет private/overlay.json — эти поля загружаются в базу как запись srv:overlay владельца и после входа накладываются на программу только на его устройствах.
THIRD_PARTY_NOTICES.md. Русские названия упражнений переведены для этого проекта (src/ds-names-ru.json).