Welldoing.org — это ведущий каталог терапевтов и контент-платформа о ментальном здоровье в Великобритании. Задача состояла в том, чтобы объединить две разрозненные системы — базовый каталог и отдельный блог на WordPress — в единую, целостную SaaS-платформу.
01. Исключения
Бизнес столкнулся с критическим техническим долгом и UX-барьерами, которые сдерживали рост. Работа на разрозненных системах создавала трение для пользователей, пытающихся найти помощь:
- Фрагментированная архитектура: У пользователей, читающих статьи, не было прямого пути для записи к терапевту. Две базы данных не «общались» друг с другом.
- Сложности подбора: Поиск «подходящего» терапевта был ручным процессом проб и ошибок для уязвимых пользователей.
- Разрыв в бронировании: Терапевты управляли своими собственными отдельными системами бронирования, что приводило к потере записей и дохода.
02. Архитектура
1. Унификация платформы (October CMS)
Я спроектировал полную миграцию, объединив блог и каталог в единую унифицированную платформу с использованием October CMS (Laravel). Это позволило нам создать кастомные модели «Терапевт» (Therapist), которые напрямую связывались с тегами контента, создавая бесшовный путь пользователя от чтения до записи.
class Therapist extends Model {
public $belongsToMany = [
'specialties' => ['Welldoing\Directory\Models\Specialty']
];
}
2. Алгоритм подбора
Я разработал специализированную систему «Therapist Match» (Подбор терапевта). Этот мастер (визард) проводит пользователей через серию диагностических вопросов и использует их местоположение для фильтрации результатов. Логика оценивает терапевтов на основе релевантности конкретным потребностям пользователя (например, КПТ, психоанализ) и близости, мгновенно выдавая лучшие совпадения.
3. Ежедневник и интеграция Stripe
Чтобы замкнуть цикл, я создал кастомную Систему Ежедневника (Diary System), интегрированную непосредственно в платформу.
- Доступность в реальном времени: Терапевты управляют своими слотами в специальной панели управления.
- Бесшовное бронирование: Пользователи могут забронировать слот прямо из результатов поиска.
- Платежи Stripe: Я интегрировал Stripe API для обработки безопасных платежей, автоматизируя выплаты терапевтам.
// Упрощенная логика бронирования
public function bookSlot($user, $therapist, $slot) {
Stripe::charge($user->token, $slot->price);
$this->diary->reserve($therapist->id, $slot->time);
return "Appointment Confirmed";
}
03. Результаты системы
Унификация превратила Welldoing.org из блога в функциональную SaaS-платформу.
- Единый путь пользователя: Пользователи могут пройти путь от чтения статьи до подтвержденной записи менее чем за 2 минуты.
- Генерация выручки: Автоматизированная система бронирования и оплаты создала новый поток доходов для платформы.
- Масштабируемость: Стек October/Laravel обеспечил надежный фундамент для многолетнего роста.