
На платформе «Легко» человек может заниматься с тренером онлайн, чтобы быстрее и без осложнений восстановиться после серьезной травмы, например, перелома.
Разрабатывать платформу, не зная, будет ли востребован сервис, — неудачная стратегия. Поэтому еще до начала разработки мы собрали рабочий прототип на основе готовых инструментов: Яндекс 360 — для бронирования встреч, Telegram — для переписок с клиентами, Контур.Talk — для онлайн-встреч.

«До начала разработки команда ФАНС сделали для нас быстрое решение в Telegram, чтобы мы могли контролировать работу тренеров с клиентами. Это полностью закрыло наши потребности на начальном этапе и дало возможность протестировать бизнес-модель».

После запуска рабочего прототип, мы начали разрабатывать полноценную платформу. Бэкенд писали на Django, фронтенд — на Nuxt и JavaScript. Сервис запустили в российском облаке, которое соответствует ФЗ-152 и позволяет хранить медицинские персональные данные.



Один из ключевых разделов платформы — кабинет клиента. Первым делом новый пользователь проходит онбординг — заполняет анкету, где рассказывает о своем состоянии и желаемом результате. Для передачи медицинских данных нужна простая электронная подпись — она реализована по одноразовому коду.
После онбординга пациент может выбрать тренера и записаться на первую сессию. Плюс в личном кабинете есть все для удобной работы над восстановлением: список запланированных сессий, прогресс восстановления, домашние задания, чат для общения с тренером, а также возможность прикрепить анализы.

В личном кабинете тренер ведет по каждому клиенту что-то вроде электронной медкарты. В ней указаны цели конкретного клиента: например, восстановление после перелома руки и работа над подвижностью тазобедренного сустава. По каждой цели тренер отслеживает динамику прогресса, добавляет заметки и рекомендации.
Ключевой инструмент в работе тренера — оценочные листы, которые были разработаны совместно со специалистами «Легко» и помогают отслеживать динамику восстановления. Они сделаны так, чтобы тренеру не приходилось заниматься излишней бюрократией, но данные можно было использовать для оценки работы.


Одной из самых сложных фич проекта стал календарь. Это может показаться странным: вроде бы календарь — простая штука, которая есть в каждом утюге. На деле есть масса вопросов.
Чтобы не разрабатывать календарь бесконечно, мы сфокусировались на одном юзкейсе — тренеру нужно видеть свою неделю, свободные и забронированные слоты, а также быстро добавлять и отменять встречи. Для этого по максимуму вложились в сложную часть — математику часовых поясов и резолв состояний.
Для компонента, который корректно резолвит события, потребовалось ~500 строк Vue-кода. Много времени ушло на тестирование ситуаций, когда тренер и клиент находятся в разных частях страны и нужно корректно сопоставлять таймзоны.

В приложении есть чат, где тренеры и клиенты могут общаться. Самую сложная часть при его разработке — поддержка WebSocket-соединения, то есть двустороннего канала связи, который корректно и быстро доставляет сообщения.
Разрабатывать такой компонент с нуля очень долго и дорого, поэтому мы использовали опенсорсный centrifugo, а себе оставили только хранение данных в бэкенде.
Видеозаписи тренировок хранятся на внешнем сервисе, и их периодически нужно забирать к себе в хранилище. Обычно для таких периодических задач используют сelery, но для больших файлов он подходит плохо — поэтому взяли rclone.
Оказалось, на него нельзя положиться полностью: сервис может перезапуститься, задача потеряется, и об этом не узнаешь. Поэтому мы доработали этот модуль и выложили результат своей работы в паблик — теперь всё видно без костылей.
«Легко» проходят через агентскую схему: пациент платит платформе, платформа распределяет между тренерами. Налоги считаются только с комиссии платформы, а не со всей суммы — именно так работают крупные сервисы с независимыми исполнителями, например, агрегаторы такси.
При этом используется модель отложенных платежей — деньги списываются, только когда сессия начинается.
Платформа запущена — сейчас с клиентами работают 12 тренеров. Планируем развивать еще два направления: фитнес и консультации с врачами по анализам.

«Поскольку проект связан с восстановительным фитнесом, то по ходу возникало множество юридических нюансов, влияющих на техническую реализацию. И всегда ребята из ФАНС вдумчиво разбирали детали с юристами.
Также в ФАНС хорошо организовали процесс разработки и, несмотря на часто меняющиеся вводные, поддерживали его четкость и динамику. Они не просто выполняли задачи, а пропускали их через фильтр собственного опыта и предлагали оптимальные решения: и с точки зрения временных затрат, и с точки зрения эффективности конечного результата».
На старте у основателя было только общее представление о том, как должна работать платформа.
Собрали для клиента бизнес-процесс на основе готовых инструментов, чтобы сразу проверить гипотезу.
Это позволило быстро сделать рабочий инструмент и не растягивать разработку на месяцы.