Маркетплейс для поиска специалистов в Турции
PWA, чаты, платежи и интеграции
О проекте

Разработали PWA-платформу для поиска специалистов и получения различных услуг в Турции. Проект ориентирован в том числе на русскоязычных эмигрантов, которым необходимо найти проверенного специалиста или исполнителя на месте.
По своей модели это полноценный marketplace: пользователь выбирает нужную категорию, ищет специалиста по языку, локации и другим параметрам, изучает профиль и может начать общение непосредственно через платформу.
Для специалистов предусмотрена собственная бизнес-модель: первые обращения доступны бесплатно, а дальнейшее открытие чатов оплачивается из внутреннего баланса.
Задача
Нужно было создать полноценную платформу, которая объединяет в одном продукте каталог специалистов, поиск, личные кабинеты, коммуникацию, платежи и инструменты модерации.
При этом проект изначально планировался как PWA, поэтому важно было обеспечить полноценную работу с мобильных устройств без необходимости разрабатывать отдельные нативные приложения.
Готовый дизайн предоставил заказчик. Наша задача заключалась в его реализации, разработке frontend и backend, интеграции внешних сервисов, настройке серверной инфраструктуры и запуске проекта.
Архитектура и разработка
Frontend разработали на Next.js, backend — на NestJS. В качестве базы данных используется PostgreSQL, работа с данными организована через Prisma.
Архитектура разделяет клиентскую и серверную части приложения, что позволяет независимо развивать интерфейс и бизнес-логику платформы.
На frontend реализовали предоставленный дизайн, а в процессе разработки при необходимости дорабатывали отдельные интерфейсные решения непосредственно на стороне приложения, когда требовалось адаптировать макеты под реальный функционал.

Две роли и личные кабинеты
В платформе предусмотрены две основные роли:
- клиент — ищет специалистов и обращается к ним;
- специалист — создаёт профиль, указывает свои услуги и получает обращения.
После регистрации пользователь может выбрать соответствующую роль и заполнить профиль.
Для специалиста доступны данные о языках, местоположении, категориях услуг, информации о себе, рейтинге и других параметрах, необходимых для поиска.
Поиск специалистов
Основой платформы стал каталог специалистов с фильтрацией.
Пользователь может искать исполнителей с учётом:
- категории услуги;
- языка;
- местоположения;
- рейтинга.
После выбора специалиста открывается его профиль с подробной информацией и отзывами.
Категории при этом охватывают широкий спектр услуг. Среди них недвижимость и бытовые услуги, юридическая помощь и ВНЖ, красота и здоровье, транспорт и логистика, образование и услуги для детей, работа и IT, туризм и отдых, еда и товары.
То есть платформа не ограничена одной профессиональной нишей и может использоваться для поиска самых разных специалистов в Турции.
Чаты с платным открытием
Одной из ключевых особенностей проекта стала модель общения через платные чаты.
Клиент может начать обращение к специалисту, после чего тот получает уведомление о новом сообщении. Само содержимое сообщения при этом скрыто до открытия чата.
Для новых специалистов предусмотрен бесплатный лимит первых обращений. После его использования специалист пополняет внутренний баланс и оплачивает открытие следующих чатов.
Таким образом, коммуникация непосредственно связана с монетизацией платформы:
обращение клиента → уведомление специалиста → открытие чата → списание средств с баланса.
Для реализации чатов использовали WebSocket/Socket.IO, что позволяет обмениваться сообщениями непосредственно внутри платформы.
Баланс и Stripe
Для специалистов реализовали внутренний расчётный баланс.
Пополнение происходит через Stripe, после чего средства могут использоваться для оплаты открытия чатов.
В системе также предусмотрена история операций, чтобы специалист мог отслеживать движения средств.
Таким образом, платежная часть связана непосредственно с основной механикой marketplace, а не является отдельным модулем оплаты услуг.

Авторизация и внешние сервисы
В платформу интегрировали несколько внешних сервисов.
Infobip используется для SMS-подтверждения номера телефона и OTP-кодов.
Resend отвечает за транзакционную email-коммуникацию.
Для авторизации реализовали вход через Google, а также подготовили интеграции с Facebook и Apple. Последние в текущей версии временно скрыты, но технически реализованы.
Отдельно подключили браузерные Web Push-уведомления, чтобы пользователи могли получать уведомления о событиях платформы непосредственно через браузер.
Геолокация и карты
Для работы с местоположением использовали OpenStreetMap.
На его основе реализованы:
- определение и выбор локации;
- геокодирование;
- работа с адресами;
- привязка специалистов к местоположению;
- поиск специалистов с учётом региона.
Это особенно важно для сервиса, где физическое расположение специалиста часто является одним из основных критериев выбора.
PWA
Платформу реализовали как Progressive Web App.
Пользователь может работать с сервисом непосредственно из браузера, а PWA-механика позволяет использовать его более привычным для мобильных приложений способом.
В проекте также реализованы push-уведомления через сервисные worker’ы.
При этом адаптация интерфейса выполнялась с учётом мобильного использования — основным сценарием платформы является поиск специалистов непосредственно со смартфона.
Рейтинги, отзывы и жалобы
После взаимодействия пользователи могут оценивать специалистов и оставлять отзывы.
Рейтинг отображается в профиле и используется как один из параметров при выборе исполнителя.
Также реализован механизм жалоб на специалистов. Это позволяет пользователям сообщать о проблемах, а администрации — обрабатывать такие обращения.

Административная часть
Для управления платформой разработали административную часть.
Она позволяет работать с основными сущностями сервиса:
- пользователями;
- специалистами;
- категориями;
- жалобами;
- модерацией;
- операциями и другими данными платформы.
Отдельно разработали страницу управления категориями услуг — через неё можно создавать и редактировать структуру категорий и направлений.
Сервер и запуск
Помимо разработки самого приложения, полностью подготовили серверную инфраструктуру проекта.
Настроили серверное окружение, развернули frontend и backend, подключили базу данных и необходимые сервисы, настроили домен и SSL-сертификат.
Также подключили внешние интеграции, необходимые для работы авторизации, SMS, почты, платежей, карт и push-уведомлений.
Результат
В результате разработали полноценный marketplace для поиска специалистов в Турции с собственной системой коммуникации и монетизации.
В платформе реализованы:
- регистрация и авторизация;
- роли клиента и специалиста;
- личные кабинеты;
- профили специалистов;
- категории и направления услуг;
- поиск и фильтрация;
- рейтинги и отзывы;
- чаты в реальном времени;
- платное открытие чатов;
- бесплатный лимит первых обращений;
- внутренний баланс специалиста;
- платежи через Stripe;
- история операций;
- SMS-подтверждение через Infobip;
- транзакционная почта через Resend;
- OAuth через Google, Facebook и Apple;
- геолокация и карты на базе OpenStreetMap;
- Web Push;
- PWA;
- жалобы и модерация;
- административная часть;
- управление категориями;
- мультиязычный интерфейс на русском и английском языках.
Проект полностью развернут на сервере, подключен к домену и доступен пользователям по адресу onliners.app.

