«Легко»: разработка платформы для восстановительного фитнеса за 8 месяцев

Легко

Вы наверняка слышали о сервисе «Ясно» для занятий с психологами. «Легко» работает по тому же принципу, но помогает заботиться о теле. Основатель пришел в ФАНС с идеей и командой тренеров: мы за неделю собрали рабочий прототип из готовых сервисов, а затем за 8 месяцев разработали и запустили полноценную платформу — рассказываем, что получилось.

Запуск до старта разработки

На платформе «Легко» человек может заниматься с тренером онлайн, чтобы быстрее и без осложнений восстановиться после серьезной травмы, например, перелома.

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

Самат Галимов
Александр Попов
Основатель проекта «Легко»

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

Интерфейс компонентов
Блок-схема работы прототипа: важно убедиться, что все одинаково понимают задачу

Платформа

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

Интерфейс компонентов
Архитектура платформы

Кабинет клиента

Вебиум-Страница курсаВебиум-Страница курса

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

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

Кабинет тренера

Вебиум-Страница курса

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

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

Календарь

Вебиум-Страница курсаВебиум-Страница курса

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

  • Синхронизация часовых поясов: если клиент из Калининграда ставит занятие на 20:00, то у тренера с Камчатки — 6:00 следующего дня.
  • Синхронизация часовых поясов: если клиент из Калининграда ставит занятие на 20:00, то у тренера с Камчатки — 6:00 следующего дня.Каждый часовой слот берет данные из трех источников: постоянное недельное расписание, разовые изменения (например, тренер взял выходной) и фактически забронированные встречи. Чтобы у каждого слота был правильный статус, календарь должен корректно обработать данные из всех трех источников.
  • Календарь должен знать, сколько сейчас времени, чтобы затемнять прошедшие события и вовремя присылать напоминания. При этом тренер может поехать в другой город, и нужно отследить смену часового пояса.
  • Дополнительные фичи: drag-and-drop для перемещения событий, отображение расписания за день, неделю и месяц, цветовая разметка событий.

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

Для компонента, который корректно резолвит события, потребовалось ~500 строк Vue-кода. Много времени ушло на тестирование ситуаций, когда тренер и клиент находятся в разных частях страны и нужно корректно сопоставлять таймзоны.

Чат

Вебиум-Страница курса

В приложении есть чат, где тренеры и клиенты могут общаться. Самую сложная часть при его разработке — поддержка WebSocket-соединения, то есть двустороннего канала связи, который корректно и быстро доставляет сообщения.

Разрабатывать такой компонент с нуля очень долго и дорого, поэтому мы использовали опенсорсный centrifugo, а себе оставили только хранение данных в бэкенде.

Загрузка видеозаписей

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

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

Прием платежей

«Легко» проходят через агентскую схему: пациент платит платформе, платформа распределяет между тренерами. Налоги считаются только с комиссии платформы, а не со всей суммы — именно так работают крупные сервисы с независимыми исполнителями, например, агрегаторы такси. 

При этом используется модель отложенных платежей — деньги списываются, только когда сессия начинается.

Итог

Платформа запущена — сейчас с клиентами работают 12 тренеров. Планируем развивать еще два направления: фитнес и консультации с врачами по анализам.

Самат Галимов
Александр Попов
Основатель проекта «Легко»

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

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

Почему всё получилось

bullet

Сформировали видение продукта совместно с клиентом.

На старте у основателя было только общее представление о том, как должна работать платформа.

bullet

Запустили бизнес-процессы до старта разработки.

Собрали для клиента бизнес-процесс на основе готовых инструментов, чтобы сразу проверить гипотезу.

bullet

Сфокусировались на одном юзкейсе при разработке календаря.

Это позволило быстро сделать рабочий инструмент и не растягивать разработку на месяцы. 

bullet

Работали с клиентом как одна команда.

Погрузились в вопросы бизнеса и искали оптимальные варианты реализации, а не просто закрывали задачи по ТЗ.

Команда

ФАНС

Фёдор Борщёв,
Самат Галимов

технические директора

Алексей Чудин

aрхитектор

Николай Кирьянов

Вячеслав Набатчиков

бекенд-разработчик

Михаил Бурмистров

руководитель фронтенда

Владимир Тарановский

фронтенд-разработчик

Александр Приходько

руководитель проекта

MateÇa

Кирилл Тарелкин

дизайн-директор

Ольга Писарева

арт-директор

Александр Гальянов

Мария Макаренко

дизайнеры

Полина Кручина

администратор проекта со стороны дизайна

Легко

Александр Попов

Основатель проекта

Дмитрий Степин

Руководитель продукта

Ксения Молот

консультант

Марина Голышкова

координатор проекта

Сергей Родионов

научный директор
Закажите себе подобный проект!

Другие проекты

Лого Клиника Чайка

Перезапуск информационной системы для сети клиник «Чайка»

Healthtech
Защита данных
Сервисная архитектура
Разработали архитектуру медицинской информационной системы для премиальной сети клиник на основе международного протокола FHIR.
Читать кейс
Logistics SaaS
Platform

ERP система управления международными грузоперевозками

Защита данных
Электронный документооборот
Автоматизация бизнеса
Интеграция с государством
Прогнозирование ИИ
Разработали и внедрили личные кабинеты логиста, руководителя компании и клиента — автоматизировали ключевые операционные процессы, ускорили и повысили прозрачность бизнеса.
Читать кейс
Лого Клиника Чайка

Перезапуск культурной платформы «Синхронизация»

Резидент Сколково
Поэтапный запуск
Бесшовная миграция
Edtech
Пересобрали архитектуру и интерфейс личного кабинета, чтобы команда смогла полноценно развиваться как образовательный стриминг
Читать кейс