Платформа онлайн-реабилитации: запись, оплата, видеоконсультации, персональные программы и видеоотчёты для пациентов, специалистов и администраторов. Всё это сделали мы.
01 / 04
ДВИЖ.LAB — health-tech платформа для дистанционной реабилитации. Пациент находит специалиста, записывается и оплачивает консультацию, встречается с ним по видео, а затем идёт по персональной программе: упражнения, письменные задания и видеоотчёты, которые специалист проверяет и комментирует.
Специалисту она заменяет CRM для пациентов, календарь, видеосвязь, мессенджер, конструктор программ и библиотеку упражнений. Мы сделали всё: публичный сайт, приложение для пациентов, специалистов и администраторов и бэкенд под ними.
У пациентов, специалистов и администраторов свои рабочие пространства, но правила живут на бэкенде, а не в экранах: запись и отмена, рабочие часы с буферами и блокировками, программы, разбитые на этапы, и то, что разрешает каждый тариф, — на продвинутом упражнение засчитывается, только когда его подтверждает видеоотчёт.
Админка — это операционный инструмент, а не редактор таблиц. Медицинский документ открывается только отдельным действием, которое спрашивает причину, выдаёт короткоживущую ссылку и пишет в журнал аудита.
Платежи идут через ЮKassa: двухстадийное списание с холдированием, полные и частичные возвраты, идемпотентные вебхуки и регулярная сверка на случай событий, которые так и не пришли. Покупка считается завершённой, только когда сервер подтвердил её у провайдера; редирект после оплаты сам по себе ничего не доказывает.
Система также считает комиссию платформы и выплату каждому специалисту — включая возврат, который приходит, когда выплата уже ушла.
Консультации — это видеозвонки на WebRTC через собственный TURN-сервер, а сигналинг вынесен в отдельный закрытый контейнер, чтобы долгие соединения не зависели от публичного API. Звонки переподключаются, переживают смену сессии и показывают, кто говорит. Чат работает на Socket.IO и масштабируется на несколько серверов через Valkey.
Видеоотчёты и вложения в чате загружаются прямо в объектное хранилище по подписанным ссылкам. Отдельный воркер берёт каждый файл из очереди, сжимает видео через FFmpeg, а изображения через Sharp, повторяет упавшие задачи и подбирает зависшие; видео, которое уже в нужном формате, перепаковывается без перекодирования.
Публичный сайт — статическая сборка на Astro: страницы специалистов генерируются из API, а каждая кнопка записи переносит намерение пользователя в приложение.
За ним — около шестидесяти моделей данных и больше трёхсот файлов с тестами, включая интеграционные тесты на настоящей PostgreSQL и сквозные тесты в Playwright, с минимальным покрытием бэкенда в 85%.
TypeScript · React · TanStack · Astro · Bun · Hono · PostgreSQL · Prisma · Socket.IO · Valkey · WebRTC · FFmpeg · YooKassa · Yandex Cloud

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