尚未检测到更新。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).