19.09.2026
Проекти
ВРЕМЕ ЗА ЧЕТЕНЕ: Мин
Не всеки проект, който правим, живее в браузъра. За Story Gym – денонощен фитнес в Пазарджик – изградихме софтуера, с който клиентът купува карта с банкова карта и минава през истински турникет само с телефона си.
Без рецепция, без пластмасови карти, без работно време. Клиентът отваря приложението Story Gym, натиска „Покажи код“, показва въртящ се QR код на четеца и турникетът се отваря – само ако в този момент човекът има валиден достъп.
В този проект описваме цялата система: клиентския портал и мобилното приложение, картовото плащане, услугата за контрол на достъпа, която говори с хардуера на турникета, и инженерните решения, които държат вратата работеща и когато нещо се обърка.

Story Gym искаше да работи като фитнес без персонал. Това означава всяка стъпка, която иначе върши рецепционист – продажба на карта, проверка, пускане, запис на посещението – да стане софтуер, и този софтуер да е достатъчно надежден, за да стои между платил клиент и заключена врата в 2 часа през нощта.
Доставихме три свързани части: публичен сайт (story-gym.org), клиентски портал и мобилно приложение (my.story-gym.org, също в Google Play и подадено в App Store) и отделна услуга за контрол на достъпа, която валидира QR кодовете за контролера на турникета в реално време.
Регистрация и вход (имейл/парола или Google), табло с активната карта и срока ѝ, покупка на единични тренировки или месечни карти, история на плащанията и абонамента, дневник на посещенията и форма за поддръжка. Интерфейсът е двуезичен (български и английски) със светла и тъмна тема по бранда на клуба.

Плащането е интегрирано с виртуалния POS на Банка ДСК: поръчката се регистрира, клиентът минава 3-D Secure на страницата на банката, а обратното повикване потвърждава плащането, преди да се издаде правото на достъп. Данни за карти никога не минават през нашите системи. Промо кодове и роли за персонал покриват безплатните случаи.
Кодът в приложението е краткотраен, HMAC-подписан токен, който носи указател към правото на достъп, време на издаване и срок от 30 секунди. Обновява се автоматично, така че снимка на екрана е безполезна след секунди. В мобилното приложение яркостта на екрана се вдига на максимум, докато кодът е показан, за да го хване четецът от първия път.
Турникетът се управлява от мрежов контролер Soneco, който вика нашата услуга по HTTPS при всяко сканиране и при всяко реално завъртане. Услугата проверява подписа и срока, пита портала дали този клиент може да влезе точно сега и отговаря „allow“ или „deny“ с цвят на LED, звук и съобщение на дисплея – за милисекунди. Преминаването се изразходва и записва само когато турникетът реално се завърти.
Собственикът вижда клиенти, карти, поръчки, преминавания и заявки за поддръжка с pagination, групови действия и управление на роли (клиент, персонал с постоянен достъп, супер админ) – без да има нужда от нас за ежедневната работа.

Story Gym отвори като изцяло самообслужващ се клуб. Клиентите купуват карти онлайн, турникетът се отваря от телефона, персоналът влиза с постоянен код, а собственикът има картина на живо за продажби и посещения. Android приложението е в продукция в Google Play, а iOS приложението е подадено в App Store.
Сайт: story-gym.org · Клиентски портал: my.story-gym.org
Този проект събра уеб, мобилни приложения, плащания и хардуерна интеграция в една доставка – и всяка част трябваше да е точна, защото бъг тук означава клиент пред затворена врата. Проектираме именно за това: изолирани услуги, подписани токени, проверки на живо и тестове на ниво хардуер преди пускане.
Ако бизнесът ви има нужда от софтуер, който докосва физическия свят – контрол на достъпа, билети, киоски, IoT устройства – или просто от serverless платформа с картови плащания и мобилни приложения, говорете с нас. Ще го изградим по същия начин.
Съдържанието на този сайт е запазено от силата на договора с Creative Commons 4.0.