
GymCraft
Użytkownik wprowadza dane poprzez przejrzysty formularz, a GymCraft pod maską odpowiednio konfiguruje model AI i wzbogaca te dane za pomocą technik prompt engineeringu, aby uzyskać wyniki najwyższej jakości.
Poza generowanymi przez AI planami treningów siłowych, GymCraft oferuje teraz również rozbudowany moduł biegowy. Synchronizuje aktywności z Garmin Connect i przekształca je w cotygodniowe raporty treningowe w stylu trenera, oparte na rzeczywistej analityce obciążeń treningowych — TRIMP, wskaźnik Acute:Chronic Workload Ratio (ACWR), monotonia i strain — które sygnalizują, czy trenujesz za mało, znajdujesz się w optymalnej strefie, przetrenowujesz się, czy jesteś w grupie wysokiego ryzyka. Każda aktywność otrzymuje też konwersacyjny panel „Wyjaśnij mój bieg”, w którym AI analizuje odcinki (splity) i dane tętna pojedynczej sesji prostym językiem. Biegacze mogą ustawiać cele biegowe uporządkowane według priorytetów oraz prowadzić profil (strefy tętna, VO2max, waga), który zasila dokładniejszą, bardziej spersonalizowaną analizę.
Główne założenie
Projekt powstał głównie po to, aby lepiej poznać metaframework SvelteKit oraz API OpenAI. Moduł biegowy rozszerzył go o naukę o obciążeniach treningowych (TRIMP / ACWR / monotonia) oraz integrację z zewnętrznymi platformami fitness, takimi jak Garmin.
Napotkane problemy
Aby ominąć 10-sekundowy limit czasu funkcji serverless Netlify podczas wywoływania zewnętrznego API OpenAI, aplikacja korzysta z GymCraft - Proxy — dodatkowego serwera Express.js.
Garmin Connect nie posiada oficjalnego, publicznego API i jest chroniony przez WAF Cloudflare, który blokuje zwykłych klientów HTTP. Aby niezawodnie uzyskiwać dostęp do danych o aktywnościach, GymCraft
korzysta z gymcraft-curl-cffi — ythonie (Flask), zbudowanego na bibliotece garminconnect w połączeniu z curl_cffi,która imituje odcisk TLS prawdziwej przeglądarki, aby przejść przez WAF. Udostępnia on endpointy do uwierzytelniania, list aktywności, szczegółów pojedynczej aktywności (znormalizowane splity +
zredukowana seria próbek) oraz długoterminowych podsumowań postępów.
Stack technologiczny
SvelteKit: Nowoczesny framework do budowania szybkich i wydajnych aplikacji webowych typu fullstack.
OpenAI API: Do generowania spersonalizowanych planów treningowych i analizy biegów
Node.js: Środowisko uruchomieniowe backendu.
Vite: Narzędzie do budowania zoptymalizowane pod kątem wydajności.
Prisma: ORM do komunikacji z bazą danych.
Python (Flask + curl_cffi): Mikroserwis do integracji z Garmin Connect.
Skeleton: Biblioteka UI.
Tailwind: Framework CSS oparty na klasach użytkowych.
Technologie i narzędzia
- SvelteKit
- Svelte
- OpenAI API
- Node.js
- TailwindCSS
- SkeletonUI