Что нужно было решить
Пилотом стала FLOW Jiu Jitsu Academy из Уфы, для которой мы раньше делали сайт. Три зала, пять тренеров, дети с трёх лет и взрослые с четырнадцати. Списки групп тренеры вели в тетради.
С деньгами сложнее. Кассы у клуба нет, эквайринга тоже: за каждую группу платят её тренеру, наличными или переводом на личную карту. Готовые программы для фитнеса рассчитаны на один расчётный счёт и администратора на ресепшене, а здесь пять человек, и каждый собирает свои оплаты сам.
Задачу сформулировали так: родителю не ставить ничего нового, тренеру тратить на учёт минуту после тренировки, а напоминания о деньгах отдать машине. И ещё одно условие: продукт должен подойти танцевальной студии и бассейну так же, как залу джиу-джитсу. Поэтому FLOW стал пилотом, а не единственным заказчиком.
Три роли, у каждой свой экран
Одна система, но видят её по-разному. Родителю нужен счёт и кнопка оплаты, тренеру список группы, владельцу общая картина. Каждый получает только своё, и чужие деньги не видит никто, кроме того, кому они положены.
Записывает ребёнка, получает счёт и напоминания, платит по ссылке или прикладывает квитанцию. Видит пояса и посещения, то есть за что платит.
Отмечает группу, подтверждает оплаты, видит должников с суммой и числом дней. Получает утреннюю сводку, но только если есть что делать.
Ведёт залы, группы, расписание и тренеров. Если деньги идут на счёт клуба, видит все оплаты и выручку по месяцам.
Оплата без переписки в личке
Бот пишет четыре раза: за два дня до срока, в сам день оплаты, через три дня и через неделю просрочки. В сообщении сумма, период и реквизиты. Под ним две кнопки: «Я оплатил переводом» и «Отдам наличными тренеру». Квитанцию можно приложить скриншотом, фото чека или PDF из банка, дальше решение за тренером.




Группа отмечена, пока дети переодеваются
Первый экран тренера это сегодняшние тренировки с кнопкой «Отметить». Список группы открывается с галочками, для полного зала есть «Отметить всех». Оплаты ждут в отдельной вкладке: квитанция рядом с суммой, кнопки «Оплата получена» и «Не дошла», должники ниже, с числом дней просрочки.




У каждого ученика свой день оплаты
Простые программы ставят всей группе одну дату списания. В тетрадях FLOW было иначе: ребёнок пришёл 12-го, значит, и платит 12-го. Мы перенесли эту логику как есть, потому что иначе родителям пришлось бы доплачивать за половину месяца или ждать.
Счёт выставляется на период от даты первого занятия до той же даты следующего месяца. Напоминания считаются от неё.
Если якорь 31-е, в феврале счёт придёт в последний день месяца, а в марте снова 31-го. Дата не уползает.
Родитель пишет, с какого по какое число ребёнок болел, и может приложить справку. Тренер одобряет, и следующий платёж сдвигается на эти дни.
Позвонить раньше, чем ученик ушёл
Из секций уходят тихо: пропустил неделю, потом вторую, абонемент не продлил. Поэтому у тренера есть список «Давно не были»: две недели без посещений, новички туда не попадают, рядом кнопки позвонить и написать. Там же заявки с сайта клуба, напоминание о дне рождения ученика и статистика: сколько собрано за месяц, наличными и переводами.




Та же группа на большом экране
Всё, что тренер делает в телефоне, открывается и на компьютере: сверху четыре счётчика (оплатили, ждут подтверждения, должники, посещаемость), ниже таблица учеников со статусом, суммой, сроком и контактом. Пароля нет: вход подтверждается кнопкой в боте. Оплаты выгружаются в Excel, а самозанятому тренеру система напомнит пробить чек в «Мой налог».
pp-fit.ru продаёт PPFit другим клубам
Продукт без витрины никто не купит, поэтому рядом с платформой сделали сайт. Владелец клуба двигает три ползунка (ученики, средний абонемент, доля не продливших) и видит, сколько теряет в месяц и в год. Дальше таблица «Excel и личка против PPFit» по пяти пунктам, страницы под четыре ниши и три тарифа с фиксированной ценой.




Один код, три входа
Отдельное приложение под каждую платформу для секции на сто учеников это перебор. Интерфейс написан один раз, а открывается там, где человеку удобно.
Бот присылает счета и напоминания, из него же открывается приложение внутри Telegram. Вход по подписи Telegram, без логина и пароля.
Тот же кабинет по адресу pp-fit.ru/app/. Вход подтверждается кнопкой в боте, уведомления приходят и в браузер.
Приложение с иконкой на экране и уведомлениями от своего имени. Это обёртка над веб-версией, отдельно его дорабатывать не нужно.
На чём собрано
Выбирали то, что спокойно живёт на одном недорогом сервере и не требует отдельной команды на поддержку. Бэкенд на Python отдаёт API и держит бота, фоновые задачи сами выставляют счета и рассылают напоминания. Интерфейс один на все три входа.
Что ещё есть в системе
Часть функций пришла из ТЗ пилотного клуба, остальное мы добавили, чтобы PPFit подошёл и танцам, и плаванию, и футболу.
Тёмный зал и лайм на кнопке
Интерфейс открывают вечером в раздевалке и в машине, поэтому фон почти чёрный. Лайм достаётся только тому, на что надо нажать или что надо заметить: кнопке оплаты, сегодняшней тренировке, собранной сумме. Заголовки набраны курсивным Exo 2 в 900 начертании, у них спортивный наклон. Текст идёт спокойным Manrope, а суммы и даты моноширинным JetBrains Mono.
Что получилось
PPFit работает на pp-fit.ru, первый клуб на нём FLOW. Цифр по продлениям пока нет, и выдумывать их мы не будем: честно посчитать их можно только после нескольких полных платёжных циклов. Допишем сюда, когда соберём. Зато уже видно другое: всё, что раньше держалось на памяти тренера (кому напомнить, кто заплатил, кто пропал), теперь считает система.
Частые вопросы
Сколько стоит программа для спортивного клуба?
PPFit работает по подписке с фиксированной ценой за клуб: 5 000 ₽ в месяц для секции до 80 учеников с одним залом, 7 500 ₽ для клуба с несколькими залами и до пяти тренеров, 10 000 ₽ для сети с филиалами. Процента с оплат нет. Первый месяц бесплатный, учеников, группы и абонементы из вашей таблицы переносим сами.
Как вести оплаты, если деньги получает тренер, а не клуб?
В PPFit это отдельный режим, и с него начинался пилот: в FLOW каждый тренер получает оплату за свою группу сам. Счёт уходит родителю с реквизитами тренера-получателя, родитель переводит и прикладывает квитанцию, тренер подтверждает. Со-тренер видит расписание группы, но не её деньги. Если клуб принимает оплату на один счёт, включается второй режим, и тогда администратор видит все оплаты.
Нужно ли родителям ставить отдельное приложение?
Нет. Родитель открывает бота клуба в Telegram по ссылке или QR-коду из зала, дальше счета, напоминания и кнопка «Я оплатил» приходят туда же. Для тех, кто хочет иконку на экране, есть приложение для Android, а личный кабинет открывается и просто в браузере, вход подтверждается в боте без пароля.
Как тренеру отмечать посещаемость?
С телефона. На главном экране тренера стоят сегодняшние тренировки с кнопкой «Отметить», дальше список группы с галочками и кнопкой «Отметить всех». Посещения собираются в карточку ученика сеткой за восемь недель. Кто не был две недели, попадает в список «Давно не были» с кнопками позвонить и написать.
Где хранятся данные детей и кто их видит?
На сервере в России, по требованиям 152-ФЗ. Доступ разведён по ролям: тренер видит только свои группы, родитель только своих детей, администратор управляет залами и расписанием, но не видит чужих денег. Оплату нельзя удалить, только сменить статус с комментарием, и каждое такое действие остаётся в журнале с датой и автором.
Ещё кейсы в категории «Разработка»
Хотите такой же результат?
Оставьте контакты: бесплатно разберём вашу задачу, покажем цифры по вашей нише и предложим план работ. Без обязательств.
Перезвоним в течение 15 минут в рабочее время.

