Изработка на уеб сайтове | Vipe Studio » Проекти » Проект :: Story Gym – приложение за денонощен достъп до фитнес с QR турникет и картови плащания

19.09.2026

Проекти

Проект :: Story Gym – приложение за денонощен достъп до фитнес с QR турникет и картови плащания

ВРЕМЕ ЗА ЧЕТЕНЕ: Мин

Съдържание

Не всеки проект, който правим, живее в браузъра. За Story Gym – денонощен фитнес в Пазарджик – изградихме софтуера, с който клиентът купува карта с банкова карта и минава през истински турникет само с телефона си.

Без рецепция, без пластмасови карти, без работно време. Клиентът отваря приложението Story Gym, натиска „Покажи код“, показва въртящ се QR код на четеца и турникетът се отваря – само ако в този момент човекът има валиден достъп.

В този проект описваме цялата система: клиентския портал и мобилното приложение, картовото плащане, услугата за контрол на достъпа, която говори с хардуера на турникета, и инженерните решения, които държат вратата работеща и когато нещо се обърка.

Сайтът на Story Gym - story-gym.org

За проекта

Story Gym искаше да работи като фитнес без персонал. Това означава всяка стъпка, която иначе върши рецепционист – продажба на карта, проверка, пускане, запис на посещението – да стане софтуер, и този софтуер да е достатъчно надежден, за да стои между платил клиент и заключена врата в 2 часа през нощта.

Доставихме три свързани части: публичен сайт (story-gym.org), клиентски портал и мобилно приложение (my.story-gym.org, също в Google Play и подадено в App Store) и отделна услуга за контрол на достъпа, която валидира QR кодовете за контролера на турникета в реално време.

Цели

  • Онлайн продажба на единични тренировки и месечни карти с български банкови карти (Visa, Mastercard, B-card) и 3-D Secure
  • Отваряне на съществуващ трипод турникет от телефон, с код, който не може да се снима и препрати
  • Бизнес правила на самата врата: активна карта, едно влизане на ден за единична тренировка, обвързване с устройство, персонал с постоянен достъп
  • Запис на реалните преминавания (не само на сканиранията) за отчетите на собственика
  • Услугата за вратата да е независима от портала, така че deploy или проблем в портала никога да не заключи клиентите отвън
  • Всичко на serverless инфраструктура, без сървъри за поддръжка
  Проект :: Coach by Vipe - платформа за треньори и мобилно приложение за спортни отбори

Ключови функционалности

Клиентски портал и мобилно приложение

Регистрация и вход (имейл/парола или Google), табло с активната карта и срока ѝ, покупка на единични тренировки или месечни карти, история на плащанията и абонамента, дневник на посещенията и форма за поддръжка. Интерфейсът е двуезичен (български и английски) със светла и тъмна тема по бранда на клуба.

Приложението Story Gym - табло, карти и QR достъп

Картови плащания през Банка ДСК

Плащането е интегрирано с виртуалния POS на Банка ДСК: поръчката се регистрира, клиентът минава 3-D Secure на страницата на банката, а обратното повикване потвърждава плащането, преди да се издаде правото на достъп. Данни за карти никога не минават през нашите системи. Промо кодове и роли за персонал покриват безплатните случаи.

Въртящ се QR код

Кодът в приложението е краткотраен, HMAC-подписан токен, който носи указател към правото на достъп, време на издаване и срок от 30 секунди. Обновява се автоматично, така че снимка на екрана е безполезна след секунди. В мобилното приложение яркостта на екрана се вдига на максимум, докато кодът е показан, за да го хване четецът от първия път.

Услуга за контрол на достъпа към турникета

Турникетът се управлява от мрежов контролер Soneco, който вика нашата услуга по HTTPS при всяко сканиране и при всяко реално завъртане. Услугата проверява подписа и срока, пита портала дали този клиент може да влезе точно сега и отговаря „allow“ или „deny“ с цвят на LED, звук и съобщение на дисплея – за милисекунди. Преминаването се изразходва и записва само когато турникетът реално се завърти.

  Проект :: Платформа за детегледачи

Административен панел

Собственикът вижда клиенти, карти, поръчки, преминавания и заявки за поддръжка с pagination, групови действия и управление на роли (клиент, персонал с постоянен достъп, супер админ) – без да има нужда от нас за ежедневната работа.

Архитектура на достъпа в Story Gym - приложение, портал, lock услуга, контролер на турникета и банка

Технологии

  • Портал и API: Cloudflare Workers с framework Hono, server-rendered TypeScript изгледи
  • База данни: Cloudflare D1 (SQLite на edge) за потребители, права, поръчки, преминавания и устройства; KV за сесии
  • Услуга за достъп: отделен stateless Cloudflare Worker, реализиращ протокола SCAN / TURN на контролера
  • Мобилни: Capacitor приложения за Android и iOS с deep links и native контрол на яркостта
  • Плащания: виртуален POS на Банка ДСК (register / status API, 3-D Secure)
  • Сигурност: PBKDF2 хеширане на пароли, HMAC-подписани сесии и токени, Cloudflare Turnstile, обвързване с устройство
  • Хардуер: трипод турникет IESTO с контролер Soneco TC-1U-R07 и QR четец
  • Сайт: статичен Astro сайт на Cloudflare

Акценти в архитектурата

  • Две независими услуги по замисъл: порталът отговаря за акаунти, плащания и права; lock услугата само отговаря allow/deny на хардуера и няма собствена база данни
  • QR токенът е указател плюс защита от фалшификация, никога самото право – правата винаги се проверяват на живо в базата
  • Защита от повторно използване на токен, дневно нулиране за единичните тренировки и път „постоянен достъп“ за персонала, който заобикаля лимитите, без да пипа хардуерната интеграция
  • TLS от страната на устройството: контролерът пинва CA и поддържа ограничен набор алгоритми за подпис, затова сертификатната верига на edge беше конфигурирана да сервира RSA верига, която четецът може да провери – детайл, който определи хостинга
  • Запис на преминаването при реалното завъртане, не при сканиране, така че отчетите показват кой наистина е влязъл
  • Нула сървъри: цялата система е Workers, D1 и KV, deploy с една команда
  Проект :: CRM за спедиция и логистични операции

Резултати

Story Gym отвори като изцяло самообслужващ се клуб. Клиентите купуват карти онлайн, турникетът се отваря от телефона, персоналът влиза с постоянен код, а собственикът има картина на живо за продажби и посещения. Android приложението е в продукция в Google Play, а iOS приложението е подадено в App Store.

Сайт: story-gym.org · Клиентски портал: my.story-gym.org

Защо да работите с Vipe Studio

Този проект събра уеб, мобилни приложения, плащания и хардуерна интеграция в една доставка – и всяка част трябваше да е точна, защото бъг тук означава клиент пред затворена врата. Проектираме именно за това: изолирани услуги, подписани токени, проверки на живо и тестове на ниво хардуер преди пускане.

Ако бизнесът ви има нужда от софтуер, който докосва физическия свят – контрол на достъпа, билети, киоски, IoT устройства – или просто от serverless платформа с картови плащания и мобилни приложения, говорете с нас. Ще го изградим по същия начин.

Съдържанието на този сайт е запазено от силата на договора с Creative Commons 4.0.

Vipe Team

Автор Vipe Team

Нашият неуморен екип, който създава качествено WordPress насочено съдържание за Вас 24/7/365.