Skip to content

Maestro-blip/GymCore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GymCore – iOS Fitness Tracking System

Swift SwiftUI Node.js License

📖 Про проєкт

GymCore — це повноцінна клієнт-серверна система для трекінгу фізичної активності та харчування. Проєкт реалізує гібридну архітектуру "Offline-First", що дозволяє додатку працювати без інтернету, зберігаючи дані локально, та синхронізувати їх із сервером для резервного копіювання.

🚀 Основний функціонал:

  • Трекер тренувань: Створення кастомних тренувань, додавання вправ, підходів, ваги та повторень.
  • Щоденник харчування: Облік спожитих продуктів з автоматичним підрахунком калорій та БЖВ (Білки/Жири/Вуглеводи).
  • Гібридне зберігання: Миттєве збереження в SwiftData (на пристрої) + асинхронна відправка JSON на Node.js сервер.
  • Статистика: Візуалізація активності за тиждень за допомогою Swift Charts.

🛠 Технологічний стек

Клієнтська частина (iOS):

  • Мова: Swift 5
  • UI Фреймворк: SwiftUI
  • База даних: SwiftData (Local Persistence)
  • Архітектура: MVVM (Model-View-ViewModel)
  • Мережа: URLSession, Codable (REST API Client)

Серверна частина (Backend):

  • Платформа: Node.js
  • Фреймворк: Express.js
  • Зберігання: File System (JSON-файли) — емуляція бази даних для навчальних цілей.

⚙️ Інструкція з розгортання та запуску

Для коректної роботи системи необхідно запустити спочатку сервер, а потім мобільний додаток.

Крок 1: Запуск Сервера (Backend)

Переконайтеся, що у вас встановлено Node.js.

  1. Відкрийте термінал та перейдіть у папку сервера:
    cd GymCore-Server
  2. Встановіть залежності (якщо запускаєте вперше):
    npm install
  3. Запустіть сервер:
    node server.js
    Очікуваний результат у консолі:

    🚀 Сервер працює на http://localhost:3000 📁 Дані будуть зберігатися в папці: .../data

Важливо: Не закривайте вікно терміналу, поки тестуєте додаток!

Крок 2: Запуск Клієнта (iOS App)

Вам знадобиться Mac із встановленим Xcode 15+.

  1. Відкрийте файл проєкту GymCore.xcodeproj у Xcode.
  2. Переконайтеся, що обрано симулятор (наприклад, iPhone 16 Pro).
  3. Натисніть Cmd + R або кнопку ▶️ (Run).
  4. Додаток запуститься в симуляторі.

Примітка: Додаток налаштовано для роботи з локальним сервером (http://localhost:3000). Якщо ви хочете запустити його на фізичному iPhone, змініть baseURL у файлі NetworkManager.swift на IP-адресу вашого комп'ютера в локальній мережі.


⚠️ Усунення типових помилок

1. Додаток не зберігає дані на сервері?

  • Перевірте, чи запущено сервер (node server.js).
  • Перевірте налаштування App Transport Security в Info.plist (має бути Allow Arbitrary Loads = YES), оскільки локальний сервер працює через HTTP.

2. Помилка компіляції в Xcode?

  • Спробуйте очистити проєкт: Product -> Clean Build Folder (Cmd + Shift + K).

⚖️ Ліцензія та Авторські права

Copyright © 2025 Кучак Володимир. Всі права захищено.

Цей програмний код є частиною курсової роботи та об'єктом інтелектуальної власності автора.

Дозволяється: ✅ Завантажувати та запускати проєкт для ознайомлення, оцінювання або навчання. ✅ Використовувати фрагменти коду як приклад для власних навчальних проєктів (з посиланням на автора).

Забороняється: ❌ Змінювати код та видавати його за свій. ❌ Розповсюджувати, публікувати або використовувати цей проєкт у комерційних цілях без письмового дозволу автора.


Developed for Lviv National University named after Ivan Franko, 2025.

About

GymCore – Full-stack iOS fitness tracking system featuring hybrid Offline-First architecture (SwiftUI + SwiftData + Node.js).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages