HealthTech · медицинская платформа · Outstaff

doctor.global: Вход по SMS и через соцсети и сервис поиска авиарейсов и поездов

Сделали для doctor.global две вещи. Первая — быстрый вход: по коду из SMS или в один клик через Google, Яндекс и Facebook. Вторая — сервис, который ищет авиарейсы и поезда в одном окне: пациент выбирает, как добраться до клиники, не уходя на сторонние сайты.

Роль
Backend и frontend: авторизация и сервис поиска рейсов (outstaff)
Стек
LaravelNuxt.jsOAuth 2.0SMS OTPREST APIКэширование
Сайт
doctor.global
Главная страница doctor.global
  • 4 способавхода: SMS, Google, Яндекс, Facebook
  • Авиа + ж/дрейсы и поезда в одном поиске
  • 1 аккаунтвсе способы входа связаны с одним профилем

О проекте

doctor.global — медицинская платформа, которая помогает пациентам найти врача и клинику и организовать поездку на лечение. Пациенту важно быстро попасть в личный кабинет и сразу понять, как и за сколько он доберётся до клиники.

Какие задачи решали

01

Авторизация по SMS и через Google, Яндекс, Facebook

Задача

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

Что сделали

  • Вход по одноразовому коду из SMS: генерация кода, срок жизни, проверка на сервере
  • Защита от перебора и злоупотреблений: лимит попыток ввода, таймер повторной отправки, ограничение запросов на номер
  • Вход в один клик через Google, Яндекс и Facebook по OAuth 2.0
  • Связывание способов входа: телефон и соцсети ведут в один профиль, дубли не создаются
  • Безопасные сессии и токены для фронтенда на Nuxt.js

Пациент попадает в кабинет за несколько секунд: по коду из SMS или в один клик через соцсеть, без пароля и длинной формы.

02

Сервис поиска авиарейсов и поездов

Задача

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

Что сделали

  • Интеграция с API поставщиков авиа- и ж/д расписаний
  • Поиск по городам и датам: рейсы и поезда в одном списке
  • Приведение ответов разных поставщиков к единому формату: время, длительность, пересадки, цена
  • Сортировка и фильтры: по цене, времени в пути и количеству пересадок
  • Кэширование популярных направлений, чтобы поиск отвечал быстро и не упирался в лимиты API
  • Обработка таймаутов и ошибок: если один поставщик не ответил, остальные результаты всё равно показываются

Пациент видит варианты дороги до клиники прямо на платформе и сравнивает самолёт и поезд в одном окне.

Внутренние системы клиента закрыты соглашением о конфиденциальности, поэтому интерфейсы показаны макетами с условными данными.

Нужно усилить команду разработки?

Подключим backend- и full-stack-разработчиков к вашему продукту: Laravel, PHP, PostgreSQL, Vue.js и Nuxt.js.

Другие кейсы

WhatsApp