
SmartGym · Digitálna fitness platforma
S tímom SmartGym sme pomáhali navrhovať a rozvíjať jednu platformu pre člena, prevádzku aj vstupný skener. Mobil, web aj zariadenie pri dverách čítajú ten istý stav členstva.

Technológie
01
SmartGym má tri povrchy. Členskú aplikáciu, prevádzkový web a kiosk alebo skener pri vstupe. Člen si kupuje členstvo a otvára QR v mobile. Tím na webe rieši klientov, tréningy, platby a prevádzky.
Povrchy nevznikli ako tri oddelené produkty. Zdieľajú React a Vite základ, Capacitor ho balí pre iOS a Android a API nad YugabyteDB drží jeden stav členstva, platieb aj návštev.

02
QR kód člena sa mení každých 15 sekúnd a podpisuje ho HMAC-SHA256. Odfotený kód je o chvíľu neplatný. Skener uzná iba susedný krok. Platí denný limit, 15-minútová rezerva a jedno zariadenie na účet.
Ten istý tok prijíma MultiSport a UpBalansea karty aj QR kódy zariadení. Fotografia používa detekciu tváre a kontrolu orientačných bodov. Nejde o rozpoznávanie človeka pri dverách.



03
GoPay OAuth2 spracúva jednorazové aj ON_DEMAND platby, 21 % DPH, čiastočné refundácie a zrušenie mandátu. Webhook nič slepo neprepisuje. Backend si stav načíta z GoPay a až potom zmení členstvo.
Apple PKPass, Google Wallet a offline HOTP kód nesú platný preukaz mimo aplikácie. YugabyteDB s Drizzle drží asi 92 tabuliek. Cloudflare R2 a Stream riešia súbory a video, FCM s APNs notifikácie.




04
Overená vetva má 439 commitov od 6. januára do 26. mája 2026. Január položil Bun, React 19 a CI. Február identitu, QR a RBAC. Marec 198-commitový rozmach. Apríl a máj skener a hardening.
Rise pomáhal spolu s tímom SmartGym na webe, mobile aj backende. Práca šla od návrhu workflow cez dátový model a oprávnenia po natívne zostavy, integračné testy, bezpečnostné scenáre a GitHub Actions.

05
Verejná služba je v prevádzke a SmartGym ďalej komunikuje aktívne lokality aj 24/7 samoobsluhu. Analyzovaná vetva je zaparkovaná po poslednej CI oprave z 26. mája. Živý produkt tým neskončil.
Po spolupráci ostal jeden produktový základ pre členov, prevádzku aj vstup. Hodnota nie je v počte obrazoviek. Je v tom, že QR, platba, oprávnenie a návšteva sa stretnú v jednom overiteľnom stave.
Podobný cieľ, riešenie podľa vás