01 — Контекст
На момент обращения проект представлял собой доску объявлений, написанную в формате монолитного приложения на фреймворке CodeIgniter, был сложным в поддержке и доработке. Перед клиентом стояла задача по развитию функционала и старту монетизации проекта, уже был разработан новый дизайн.
Опыт клиента показал, что попытки внедрения нового функционала существенно затруднены из-за большого количества legacy-кода в проекте. Клиент обратился в Spectr за экспертизой по разработке современных онлайн-сервисов.
На основе существующей доски объявлений и нового дизайна разработать маркетплейс с функциональным личным кабинетом и каталогом для покупателей и поставщиков строительных товаров и услуг с функционалом подписок для последующей монетизации продукта.
При реализации необходимо мигрировать каталог с базой данных с прежней версии проекта. Важно избавиться от legacy-кода и выбрать оптимальное решение с точки зрения архитектуры проекта, которое позволило бы в дальнейшем развивать функционал и масштабировать продукт под растущую аудиторию.
02 — Технологии и архитектура
Архитектурное решение
По итогам детального аудита текущей реализации проекта, кодовой базы, серверной инфраструктуры, планов по развитию проекта было предложено реализовать сервис в формате Single Page Application. Такая архитектура позволила вести разработку фронтенда и бэкенда параллельно и в дальнейшем гибко масштабировать инфраструктуру под растущие нагрузки.
02 — Технологии и архитектура
Фронтенд
Для реализации используется React+TypeScript в связке с Next.js, что позволило реализовать серверный рендеринг (Server Side Rendering) и обеспечить эффективную индексацию сайта поисковыми системами.
02 — Технологии и архитектура
Бэкенд
В качестве фреймворка для реализации бэкенда был выбран Laravel (PHP). При выборе важно было сохранить в качестве языка программирования PHP, т. к. это позволяло частично переиспользовать ранее написанный код и ускорить разработку. Выбор Laravel обусловлен популярностью, производительностью и развитой экосистемой самого фреймворка.
В качестве административной панели используется Laravel Nova.
02 — Технологии и архитектура
DevOps
Для развертывания приложений используется Docker. Для корректной работы сокетов — Redis. База данных — MySQL.
Самые важные фичи (фильтрация, каталог, команды автоматизаций и т. д.) на проекте покрыты автотестами на PHPUnit.
03 — Функционал
Каталог товаров и услуг
Раздел представляет собой многоуровневый каталог, где более 300 категорий. Функциональный фильтр позволяет подбирать товары на основе цены, местоположения пользователя и специфичных для каждой категории параметров.
Товары можно добавлять в избранное. Реализована рекомендательная система, которая предлагает покупателю релевантные товары на основе просмотренных ранее.
03 — Функционал
Каталог бригад и компаний
В системе зарегистрировано более 1600 компаний. Благодаря удобной системе поиска с фильтрацией по определенным параметрам в каталоге у покупателя есть возможность найти подходящего исполнителя под любой запрос.
03 — Функционал
Система ранжирования
Принципы ранжирования на платформе — важный фактор в системе мотивации поставщиков.
Реализована рейтинговая система для поставщиков, где рейтинг зависит от количества размещенных товаров, количества проданных товаров, наличия платной подписки и активности поставщика при размещении статей на портале. Рейтинг поставщика — один из важных факторов при ранжировании его товаров и услуг. Позиция товаров зависит также от качества заполнения товарной карточки и количества его продаж.
03 — Функционал
Каталог запросов и тендеров
Данный раздел представляет собой систему, в которой заказчик товара/услуги может разместить запрос с определенными параметрами, а поставщик — сделать свое предложение на этот запрос. Поставщик может указать детальную информацию о каждом запросе (тендере) и, при необходимости, обсудить подробности в чате с поставщиком. Статистика по каждому запросу находится в свободном доступе, т. е. можно отследить, сколько откликов и просмотров в каждом.
03 — Функционал
Личный кабинет поставщика
Реализовали функциональный кабинет для поставщика, где он управляет аспектами, которые касаются размещаемых на маркетплейсе товаров:
размещать, редактировать и удалять информацию о товарах и услугах;
управлять данными и внешним видом карточки компании;
следить за статистикой по товарам/услугам в разрезе разных периодов (по количеству просмотров, кликов по номеру, сообщениям в чат) как по всему каталогу, так и по отдельным позициям;
отслеживать действия по запросам и тендерам, в которых поставщик принимает участие;
использовать инструменты для платного продвижения на площадке;
писать статьи от лица компании в блоге.
03 — Функционал
Подписочная модель
Для монетизации проекта и расширения возможностей поставщиков реализована подписочная модель. В зависимости от выбранного тарифа поставщик может получить расширенные возможности по продвижению своей компании на платформе.
Основной сценарий оплаты подписки — банковская карта и рекуррентные платежи. Также для удобства работы с платформой юридическим лицам реализован внутренний баланс, пополнить который можно банковским переводом.
Сервис интегрирован с платежной системой CloudPayments для оплаты и системой Битрикс24 на стороне заказчика для выставления счетов юридическим лицам.
03 — Функционал
Реферальная система
Чтобы стимулировать привлечение на платформу покупателей, реализована реферальная система. Для каждого пользователя генерируется индивидуальная ссылка, которой он может поделиться с друзьями и получить бонус на внутренний счет за каждую регистрацию по этой ссылке.
03 — Функционал
Личный кабинет заказчика
В личном кабинете заказчик может разместить тендер (запрос) на интересующий его товар или услугу, указав точные критерии необходимой позиции и получить релевантные отклики от поставщиков.
Каждое размещение проходит модерацию, что позволяет получать только корректные запросы с понятными вводными данными.
По итогу заказчик может сгруппировать все полученные отклики в табличном виде. Благодаря уведомлениям на электронную почту заказчик узнает максимально оперативно о новых откликах на свой запрос.
Также в личном кабинете заказчика доступен функционал подбора потенциального поставщика товаров под выбранные параметры: категория, регион и возможность взять заказ.
03 — Функционал
Блог и статьи
Данный раздел включает в себя статьи, разбитые по тематике (строительство, ремонт квартир и т. д.) и обновления, связанные с работой сайта. Категория «Полезные статьи» наполняется поставщиками. Для поставщика это возможность поделиться экспертными знаниями по определенной теме и рассказать о себе потенциальной аудитории.
03 — Функционал
Онлайн-чат
Используется для обсуждения деталей сотрудничества между поставщиком и покупателем в рамках тендера/запроса/товара. С его помощью покупатель и поставщик могут уточнять все необходимые детали по сделке, обмениваться необходимыми документами.
Чат доступен в личном кабинете всем авторизованным пользователям.
03 — Функционал
Адаптивный дизайн
Благодаря адаптивному дизайну сайт корректно отображается на любых видах устройств: на десктопном мониторе, планшетном компьютере, экране смартфона.
03 — Функционал
Помощь и обратная связь
Покупатель и поставщик всегда могут обратиться с вопросами по работе сервиса и оперативно их решить. Этот функционал реализован с помощью специального раздела с ответами на популярные вопросы, а также раздела для отправки вопросов на электронную почту службе поддержки.
04 — Результаты
Результаты
Превратили доску объявлений в полноценный маркетплейс с удобной системой «все в одном окне».
Клиент начал вывод проекта на рынок и его монетизацию. Идет активное привлечение аудитории поставщиков на разработанную платформу, которые уже активно конвертируются в платящих пользователей.
Проект избавлен от legacy-кода, и текущая реализация способствует дальнейшему технологическому развитию и внедрению нового функционала. В ближайшее время запланировано внедрение новых сервисов: работа с цифровыми договорами, собственная CRM, виртуальная 3D-выставка проектов домов.
Связаться с нами
Хотите обсудить свой проект? Воспользуйтесь формой обратной связи и мы начнем общение.