OpenTrailPaper
Open-source bike computer firmware for the LilyGO T5S3 4.7" E-Paper PRO, with offline maps, GPX routes, FIT recording and Bluetooth sensors.
Гибкая программа силовых тренировок v3: 2–3 тренировки в неделю, 60/90/120 минут, журнал и база упражнений.
Translation pending
Sports & fitnessJavaScript · CSSGitHub @TratsiakaOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Апгрейд — программа тренировок: PWA, офлайн, журнал, база упражнений
Translation pending
Taken from the repository README
Loading the full README.
Read the full 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).