Skip to content

Repository files navigation

Gym Tracker — Source Code

Deployed to Website License: MIT CI

Це репозиторій з вихідним кодом Gym workout tracker PWA. Готовий продукт деплоїться в: https://github.com/ajjs1ajjs/Gym Офіційний сайт: https://ajjs1ajjs.github.io/Gym/

Gym Tracker

Offline-first workout and body progress tracker

Gym Tracker

Приватний PWA-застосунок для тренувань у залі. Ведення ваг, плани тренувань та заміри тіла. Працює офлайн і встановлюється на телефон як звичайний застосунок.

Svelte 5 TypeScript PWA Tests Bundle

---

🖼️ Screenshots

Головна — тренування дня Контроль ваги Історія тренувань


✨ Features

  • 💪 Ведення планів тренувань
  • 📊 Графіки ваги та зміни тіла
  • 🏋️ Заміри тіла + фото тіла
  • 🔒 Офлайн-режим — застосунок працює без інтернету (PWA)
  • 💾 Локальне зберігання даних у localStorage (оновлення у v2)
  • 📱 Встановлення на телефон та планшет як рідний застосунок

Структура тренувань

День Фокус
Верхня частина тіла Груди, біцепси/трицепси, плечі, спина, жим, тяга
Нижня частина тіла Ноги (3–4×10)
М'язи для тіла Ноги (3×20), ягодиці (3×45–60с)
Тіло Прес та розтяжка (20–30 хв, пульс 110–130)

Технології

  • Svelte 5 — реактивність із мінімальним DOM, без runtime-бібліотек
  • TypeScript — повна типізація
  • Vite — швидкий білд, максимальна швидкість
  • vite-plugin-pwa — автоматичний service worker (precache + cache-first)
  • Vitest + @testing-library/svelte — 25 тестів
  • ESLint + svelte-check — якість коду

🚀 Getting started

Ubuntu / Debian (WSL теж підходить)

Автоматичний встановлювач (сам ставить Node.js 22, залежності, білдить і піднімає локальний сервер на http://localhost:8080):

curl -fsSL https://raw.githubusercontent.com/ajjs1ajjs/Gym/main/install.sh | bash
# або dev-сервер (Vite, http://localhost:5173):
curl -fsSL https://raw.githubusercontent.com/ajjs1ajjs/Gym/main/install.sh | bash -s -- --dev

Вручну:

sudo apt update && sudo apt install -y nodejs npm   # або через nvm
npm install        # встановлення залежностей
npm run dev        # dev-сервер
npm test           # тести
npm run check      # type-check (svelte-check)
npm run lint       # eslint
npm run build      # продакшн-білд у dist/
npm run preview    # перегляд білд-результату

Windows

Автоматичний встановлювач (PowerShell; перевіряє/встановлює Node.js 20+ через winget, білдить і піднімає локальний сервер на http://localhost:8080):

irm https://raw.githubusercontent.com/ajjs1ajjs/Gym/main/install.ps1 | iex
# або dev-сервер (Vite, http://localhost:5173):
$env:GYM_DEV = "1"; irm https://raw.githubusercontent.com/ajjs1ajjs/Gym/main/install.ps1 | iex

Вручну (Node.js 20+ з nodejs.org або winget install --id OpenJS.NodeJS.LTS -e):

git clone https://github.com/ajjs1ajjs/Gym.git
cd Gym
npm install
npm run dev        # dev-сервер
npm run build      # продакшн-білд у dist/

Локальний запуск продакшн-білда

npx serve dist     # Linux/Windows/macOS — будь-де, де є Node.js

Деплой

При кожному пуші у гілку main (окрім змін лише в README.md/CHANGELOG.md) запускається GitHub Actions (.github/workflows/deploy.yml): lint → type-check → тести → build → публікація dist/ через peaceiris/actions-gh-pages.

Локальна розробка: проєкт сумісний з Ubuntu / Debian (install.sh) та Windows (install.ps1) — див. розділ 🚀 Getting started. CI (deploy.yml) запускає lint → type-check → тести → build на ubuntu-latest. Застосунок статичний (PWA), для самостійного розгортання dist/ достатньо будь-якого веб-сервера: nginx / Caddy на Linux або IIS/будь-який статичний хостинг на Windows.

Посилання

Жива версія: https://ajjs1ajjs.github.io/Gym/

Історія версій

Див. CHANGELOG.md.

Releases

Packages

Contributors

Languages