Platform

Services Helperмаркетплейс послуг

Клієнти публікують задачі, спеціалісти беруть їх у роботу

Двосторонній маркетплейс послуг: клієнти публікують замовлення, спеціалісти відгукуються, обидві сторони лишають відгуки, а просування оплачується через Stripe.

Services Helper — маркетплейс послуг
Задача

Клієнтам потрібен надійний спосіб знайти спеціаліста, спеціалістам — стабільний потік замовлень. Платформа мала будувати довіру з обох боків і заробляти без плати за вхід.

Результат

Окремі кабінети клієнта й спеціаліста, замовлення з категоріями й файлами, каталог із пошуком, взаємні рейтинги та платне просування. Інтерфейс трьома мовами.

Ключові функції

  • Кабінети клієнта й спеціаліста
  • Замовлення з файлами
  • Каталог і пошук спеціалістів
  • Взаємні відгуки й рейтинги
  • Платне просування (Stripe)
  • Завантаження медіа
  • Три мови
  • Рольовий доступ

Як це побудовано

Двосторонній маркетплейс послуг: клієнти публікують завдання, перевірені спеціалісти відповідають пропозиціями, а після роботи обидві сторони оцінюють одна одну. Ось рішення, які його сформували.

3
Ролі користувачів
4
Статуси замовлення
3
Тарифи підписки
UA·RU·EN
Мови

Дві сторони, змодельовані окремо

Клієнт і спеціаліст — не один користувач із прапорцем ролі. Спільних даних у них майже немає: у спеціаліста профіль, портфоліо, підписка й рейтинг; у клієнта — замовлення. Ми змоделювали їх окремими сутностями за єдиним рівнем сесійної авторизації.

Права лишаються однозначними: ендпоінт належить одній стороні, а не «користувачу, який може бути будь-ким». Публічний профіль теж відділено від запису акаунта — щоб рейтинг і підписка, які переписуються постійно, не чіпали рядок, від якого залежить авторизація.

Цикл маркетплейсу

Угоду несуть чотири статуси. Клієнт публікує OPEN-замовлення: категорія, місто, дедлайн, файли. Спеціалісти надсилають відгуки — пропозиції на нього. Клієнт приймає одну, переводячи замовлення в IN_PROGRESS, далі COMPLETED або CANCELLED.

Відгуки — окремі записи, а не пряме призначення, тож клієнт порівнює кількох спеціалістів, а не отримує одного призначеного.

Обидві сторони циклу, як їх пояснює сам продукт

Як знаходять потрібного спеціаліста

Пошук працює по осях «що» і «де». Замовлення й профілі привʼязані до категорії та міста, тож сантехнік зі Львова не зʼявиться в замовленні по Одесі.

Окремого пошукового рушія немає. На такому обсязі каталогу індексовані запити в PostgreSQL по категорії, місту й рейтингу швидші в розробці й дешевші в експлуатації, ніж додавання Meilisearch, — і тримають видачу узгодженою з даними. Тариф підписки враховується в ранжуванні: саме це робить платне просування вартим грошей, не даючи йому перекрити релевантність.

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

Утримати угоду на платформі

Найскладніша комерційна проблема маркетплейсу послуг — коли сторони знайомляться один раз, а далі працюють повз платформу. Контактні дані, позначені клієнтом як конфіденційні, отримує лише той спеціаліст, якого він обрав, — а не всі, хто відгукнувся. Саме це правило зберігає стимул лишатися в системі після першого повідомлення.

Репутація в обидва боки

Відгуки працюють в обох напрямках. Одностороння оцінка захищає лише покупця, але тут спеціаліст ризикує не менше — неявки, суперечки про обсяг, несплата. Видима історія з обох боків робить платформу безпечною не лише щоб купувати, а й щоб працювати.

Монетизація без плати за доступ

Опублікувати замовлення й відгукнутися — безкоштовно. Спеціалісти платять за охоплення: тарифи підписки й платне просування через Stripe. Плата за лід оподаткувала б саме ту поведінку, якої маркетплейсу треба більше.

Стан підписки веде Stripe через webhooks — ACTIVE, PAST_DUE, UNPAID, CANCELED — і перевірки доступу читають цей живий статус, тож невдалий платіж звужує охоплення, а не лишає платну функцію відкритою.

Три тарифи підписки, білінг через Stripe

Чого вимагав продакшен

Сповіщення — це події, а не виклики: кожна дія випускає подію, а обробники перетворюють її на запис у застосунку та лист, тож бізнес-логіка не вміє надсилати пошту. Скарги проходять справжню машину станів з обробкою в адмінці — без модерації маркетплейс послуг наповнюється спорами, які не може вирішити. Рейт-лімітинг, HTTP-захист, підтвердження пошти й медіа в Cloudinary були з першого деплою.

Результат

Живий маркетплейс послуг із повним циклом — опублікувати, відгукнутися, найняти, виконати, оцінити, оплатити — з монетизацією підписками, модерацією і трьома мовами, у продакшені на services-helper.com.

Наступний проєкт
Mobile

Zapys24 Mobile

Клієнт записується з телефона, бізнес веде день між прийомами

Дивитися кейс
Zapys24 Mobile — застосунки запису для iOS та Android

Хочете щось подібне?

Розкажіть про ваш проєкт і ми створимо його з такою ж увагою до деталей.

Почати проєкт →