# TrainHub 🏋️‍♂️

**TrainHub** to zaawansowany asystent treningowy, wspierany przez lokalną sztuczną inteligencję. Aplikacja łączy planowanie treningów, monitorowanie parametrów medycznych oraz analizę postawy w czasie rzeczywistym.

Zbudowany przy użyciu **Tauri 2.0**, **Vue 3**, **TypeScript** oraz **Rust**.

## 🚀 Kluczowe Funkcje

* **AI Coach & Chat**: Inteligentny asystent treningowy, który odpowiada na pytania dotyczące ćwiczeń i zdrowia (wykorzystuje Local LLM).
* **Posture Analysis**: Analiza poprawności wykonywania ćwiczeń i postawy ciała w czasie rzeczywistym przy użyciu wizji komputerowej (moduł `posture/`).
* **Smart Workout Tracking**: Zarządzanie planami treningowymi, śledzenie postępów i historia ćwiczeń (baza SQLite).
* **Medical Metrics**: Monitorowanie parametrów zdrowotnych i statystyk witalnych.

## 🛠️ Wymagania Wstępne

1. **Node.js** (v18+)
2. **Rust** (najnowsza wersja stabilna)
3. **Build Tools for Visual Studio** (wymagane dla kompilacji C++/Rust na Windows).
4. **Karta graficzna NVIDIA** (Zalecane dla modułu analizy postawy i płynnego czatu).

## ⚙️ Instalacja i Uruchomienie

1. **Sklonuj repozytorium:**
```bash
git clone https://git.kciolek.pl/kamici/TrainHub.git
cd trainhub
```


2. **Zainstaluj zależności:**
```bash
npm install
```


3. **Uruchom tryb deweloperski:**
```bash
npm run tauri dev
```



---

## 🤖 Konfiguracja AI (Instalacja Manualna)

⚠️ **WAŻNE:** Aby moduły **AI Coach** oraz **Posture Analysis** działały, musisz ręcznie pobrać silnik wykonawczy `llama.cpp`. W obecnej fazie rozwoju (Alpha) te pliki nie są pobierane automatycznie.

### Krok 1: Pobierz wymagane pliki

Pobierz poniższe archiwa `.zip` (wersja `b7907`, CUDA 12.4):

1. 📥 **Pliki wykonywalne (Binaries):**
[llama-b7907-bin-win-cuda-12.4-x64.zip](https://github.com/ggml-org/llama.cpp/releases/download/b7907/llama-b7907-bin-win-cuda-12.4-x64.zip)
2. 📥 **Biblioteki CUDA (Backend):**
[cudart-llama-bin-win-cuda-12.4-x64.zip](https://github.com/ggml-org/llama.cpp/releases/download/b7907/cudart-llama-bin-win-cuda-12.4-x64.zip)


### Krok 2: Instalacja plików

1. W folderze aplikacji znajdź katalog `src-tauri`.
2. Wypakuj zawartość **obu** pobranych archiwów do tego katalogu.
3. Upewnij się, że plik `llama-server.exe` oraz biblioteki DLL znajdują się w jednym miejscu.


---

## 🏗️ Struktura Projektu

* `src/app/` - Główna logika Frontend (Vue 3)
* `components/chat/` - Interfejs czatu z trenerem AI.
* `components/posture/` - Komponenty wizualizacji i analizy postawy (Canvas).
* `composables/` - Logika biznesowa (np. `useAnalysis.ts`, `useActiveWorkout.ts`).


* `src-tauri/` - Backend (Rust)
* `src/db.rs` - Obsługa bazy danych SQLite (zapisywanie treningów).
* `src/main.rs` - Punkt wejścia aplikacji i rejestracja komend.



## 📄 Licencja

Ten projekt jest udostępniony na licencji **Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)**.

Możesz używać i modyfikować kod do celów prywatnych i edukacyjnych. Użycie komercyjne (sprzedaż aplikacji lub usług na niej opartych) jest zabronione bez zgody autora.

Pełny tekst licencji: [https://creativecommons.org/licenses/by-nc-sa/4.0/](https://creativecommons.org/licenses/by-nc-sa/4.0/)