← Проекты для клиентов

МаркетплейсLaravel, Vue и Т-Банк · 2023–2025

Tvoyprazdnik

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

Праздник здесь собирают как корзину: ведущий на субботу, фокусник на 15:00, торт к 12:00. Онлайн платится 15%, остальное исполнители получают на месте. Дизайн был готовым, всё остальное сделала наша команда. Я вёл проект: разбирал с заказчиком сценарии, ставил задачи, принимал работу и часть кода писал сам.

Роль
Руководитель проекта и команды, часть кода
Стек
Laravel 9 · Vue 3 · Orchid · Pusher · Т-Банк
Сроки
Ноябрь 2023 – май 2025

Ведущий на свадьбудемо-исполнитель · Москва · 5 ч

Декабрь 2026цена дня

180k280k380k495k595k680k780k880k980k1080k1195k1295k1380k1480k1580k1680k1780k1895k1995k2080k2180k2280k2380k2480k2595k2695k2780k2880k2980k3080k31150k

19 декабря, суббота · 95 000 ₽

11:0012:0013:0014:0015:0016:0017:0018:00

16:00–18:00 занято другой позицией этого исполнителя

Предоплата 15% онлайн14 250 ₽

Исполнителю на месте80 750 ₽

Подтверждён исполнителемОплачен
Одна бронь на выдуманных данных: цена дня, занятые часы и предоплата посчитаны по тем же правилам, что в коде площадки.
709
страниц каталога в карте сайта, 10 городов, на 15 октября 2026
15%
предоплата онлайн, остальное исполнителю на месте
66
экранов админки: заказы, возвраты, модерация, контент
18
месяцев от первого коммита до SEO-аудита, 1362 коммита

Как шла работа

Я вёл проект, команда писала код

Заказчик описывал, как должна работать площадка, я превращал это в задачи с номерами от TP-2 до TP-160, ставил их разработчикам и принимал работу. Где быстрее было поправить самому, правил сам. Через полтора года площадка умела всё, что нужно маркетплейсу: от регистрации исполнителя до письма с просьбой оставить отзыв.

  • ЯОбщение с заказчиком, требования, задачи, приёмка, настройка деплоя, часть правок в коде
  • КомандаВёрстка по готовому дизайну, бэкенд, кабинеты, админка, интеграции
  • ДизайнБыл готов до старта разработки, мы его не делали
  1. Ноябрь – декабрь 2023Репозиторий и автодеплой, регистрация, вход через VK ID, база регионов и городов, город по IP.
  2. Январь 2024Мастер объявления: описание, позиции, цены.
  3. Февраль 2024Календари исполнителя, страница бронирования, корзина.
  4. Март 2024Чат, избранное, мои заказы и отзывы.
  5. Май 2024Фильтр по дате, теги в категориях, блок «Вам может быть интересно».
  6. Июнь 2024Блог с лайками и его админка.
  7. Сентябрь 2024Эквайринг Т-Банка и предоплата.
  8. Октябрь 2024Новый личный кабинет.
  9. Декабрь 2024Письма о заказе, напоминание о предоплате, сжатие фото до загрузки.
  10. Февраль 2025Цели Метрики, новые шаги мастера объявления.
  11. Март 2025Автоотмена неоплаченных броней, отмены системой в админке.
  12. Апрель – май 2025SEO-аудит: адреса со словами, теги в каталоге, карта сайта, YML для Яндекса, заголовки безопасности.

Бронирование

Цена дня и свободные часы

У каждой позиции базовая цена, цены по дням недели и цены на конкретные даты, поэтому в календаре у каждого дня своя цифра. Занятость общая на все объявления исполнителя: бронь одной позиции закрывает эти часы и для другой. Покрутите настройки: всё считается по тем же правилам, что на сайте.

Цены позиции «Ведущий на свадьбу»
График исполнителя
Уже есть бронь другой позиции, 19 декабря

Декабрь 2026нажмите на день

19 декабря, суббота

95 000 ₽цена Пт–Сб

000102030405060708091011121314151617181920212223

можно начатьзанятовне графика

Бронь на 16:00 длится 2 часа и ещё час перерыва: заняты 16:00, 17:00 и 18:00.

Виджет бронирования на демо-копии: ноябрь с ценами по дням, выбрана суббота 14-е, свободны 11:00–14:00, выбрано 12:00
Тот же расчёт в самом продукте, демо-копия: на 14 ноября у исполнителя уже есть бронь на 15:00, поэтому свободны только 11:00–14:00.
Шаг «Цены» в мастере объявления: базовая стоимость и настройка цены по дням недели
Шаг «Цены»: базовая стоимость и отдельные цены по дням недели и датам.
Шаг «Календарь»: минимальный срок брони, перерыв между услугами, рабочие дни и часы
Шаг «Календарь»: минимальный срок до начала, перерыв, рабочие дни и часы.

Жизнь брони

Бронь сама напоминает, торопит и просит отзыв

Как только бронь создана, сервис ставит в очередь всё, что должно случиться дальше. Сроки зависят от того, сколько осталось до праздника: чем ближе дата, тем короче поводок.

Праздник длится 5 часов. Шкала идёт от момента брони до часа после праздника.

  1. Исполнителюнапомнить подтвердить бронь через 6 и через 12 часов
  2. Если нет предоплатычерез 2 дня после брони срабатывает автоотмена
  3. Клиентунапоминание за 12 часов до начала
  4. После праздникачерез час после окончания просьба оставить отзыв

Деньги

15% онлайн, остальное исполнителю

Предоплата и есть доход площадки, остальное исполнитель получает сам. Платёж идёт через Т-Банк: свой клиент API, каждый запрос подписан токеном SHA-256 из полей и пароля терминала, в чеке одна строка «Предоплата бронирования». Когда клиент возвращается с оплаты, сервер сам спрашивает у банка состояние платежа.

Можно оформить и без онлайн-оплаты, «на месте». Тогда после подтверждения исполнителем клиенту уходит письмо с просьбой внести предоплату и ещё одно через шесть часов.

Кто и когда отменяет

Заявка на возврат предоплатыКлиент отменил больше чем за 72 часа: заявка уходит администратору, он отмечает «Возвращён» или «Отклонён».

Правило: предоплату возвращают, если отменил исполнитель или клиент отменил больше чем за 72 часа до начала. Решение по заявке принимает администратор.

SEO

Каталог сам растит посадочные страницы

Город, категория и тег дают адрес, заголовок и title страницы. Название города склоняется библиотекой morphos, поэтому «в Набережных Челнах», а не «в Набережные Челны». В карту сайта попадают только сочетания, где в этом городе есть живые услуги: карта пересобирается раз в неделю и растёт вместе с исполнителями.

Адрес
/catalog/krasnoiarsk/prazdniki-dlya-vzroslykh/vedushchie/tag-vedushchie-na-svadbu
H1
Ведущие на свадьбу в Красноярске
Title
Ведущие на свадьбу в Красноярске – Tvoyprazdnik
В карте сайта
да, в Красноярске есть такие услуги

Наличие в карте сайта взято из живого sitemap.xml на 15 октября 2026. Страницы с фильтрами и пагинацией закрыты noindex, у страниц каталога свой canonical.

Страницы каталога в карте сайта по городам

  1. Красноярск306
  2. Москва156
  3. Санкт-Петербург118
  4. Новосибирск79
  5. Казань20
  6. Калининград10
  7. Киров9
  8. Сочи6
  9. Липецк3
  10. Набережные Челны2

709 страниц, из них 542 посадочные по тегам. Для Яндекса каждую ночь собирается отдельный YML-фид на город: в московском сейчас 55 предложений, в красноярском 49.

Цель Метрики, которую браузер не видел

  1. Банк возвращает клиентаСервер сверяет платёж с банком и перенаправляет дальше: сам браузер в этот момент ничего не отправляет в Метрику.
  2. Сервер ставит цель в очередьВ базу пишется цель «успешная предоплата» для этого пользователя.
  3. Следующая страница её отправляетПодвал сайта забирает неотправленные цели, вызывает reachGoal и помечает их отправленными.

Чат

Договориться до брони, но не в обход площадки

Кнопка «Задать вопрос» в карточке открывает чат с темой: исполнитель сразу видит, о какой услуге речь. Сообщения приходят вживую через Pusher, непрочитанные раз в полчаса уходят письмом. Правило площадки: до оплаты контакты не передаются. Администратор видит все переписки и может поправить сообщение, исходный текст сохраняется в журнале модерации.

Вопрос по услуге «Фокусник на праздник»

  1. Можно шоу для детей 7 лет?
  2. Можно. Напишите мне напрямую: +7 900 000-00-00Можно. [контакты скрыты модератором]
  3. Понял, оформлю бронь на сайте.
Журнал модерацииСообщение №2 · отредактировал администраторБыло: «Можно. Напишите мне напрямую: +7 900 000-00-00»

Под капотом

Мелочи, на которых держится площадка

  • ФотоВ браузере сжимаются до отправки, до 15 штук на позицию. На сервере поворачиваются по EXIF и сохраняются в WebP до 1024 пикселей плюс превью на 300.
  • ГородОпределяется по IP через DaData. Поисковым ботам сразу Москва без запроса, а если города нет в базе, берётся столица региона. Выбор живёт в cookie полгода.
  • ВходПочта с подтверждением по ссылке или VK ID в один тап. Заблокированного пользователя не пускает ни один из входов.
  • ОчередиПисьма, напоминания и отмены уходят отложенными задачами. Раз в полчаса проверка непрочитанных, раз в неделю карта сайта, каждую ночь фиды для Яндекса.
  • КаталогФильтры по дате, цене и длительности, сортировка по цене, рейтингу и отзывам, дерево категорий в три уровня с тегами.
  • КабинетОтдельное приложение на Vue: мастер объявления в пять шагов, календарь занятости, заказы, чат, отзывы.

Админка

66 экранов, чтобы площадка жила без программиста

Админка на Orchid: заказы и неоплаченные брони, заявки на отмену и возврат, модерация объявлений, чатов и отзывов, регионы и города, дерево категорий с SEO-полями, теги, блог, слайды и тексты главной. Снято на локальной копии с выдуманными пользователями.

Дашборд администратора: новые регистрации по дням, пользователи и продавцы, вкладки объявлений, бронирований и финансов

Регистрации по дням, объявления, бронирования и финансы площадки.

Список заказов с фильтрами по статусу брони и статусу оплаты

Все заказы с фильтрами по статусу брони и оплаты: от «Создан» до «Отменён системой».

Неоплаченные заказы: дата, заказчик, телефон, предоплата, статус и кнопка копирования ссылки на оплату

Неоплаченные брони с короткой ссылкой на оплату: администратор может отправить её клиенту сам.

Опубликованные услуги по городам и счётчики по статусам модерации

Модерация объявлений: редактируются, на модерации, опубликованы, скрыты, по каждому городу.

Карточка брони: услуга, дата и время, статус, предоплата и оплата на месте, исполнитель, заказчик, форма отмены

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

Сайт и кабинеты

Готовый дизайн, собранный в работающий продукт

Слева рабочий сайт, справа демо-копия с выдуманными исполнителями и рисованными обложками: каталог, тег-страница на телефоне и кабинет исполнителя.

Главная рабочего сайта Tvoyprazdnik: маркетплейс праздничных услуг, удобное бронирование по всей России
Рабочий сайт, главная.
Каталог демо-копии: все праздничные услуги в Москве, фильтры, теги и карточки с рисованными обложками
Каталог: фильтры, теги категории, карточки.
Календарь занятости исполнителя: день по часам и месяц с отметками заказов
Календарь занятости: заказы по дням и закрытие дня целиком.
Чат исполнителя с клиентом в кабинете
Сообщения: список чатов, поиск, переписка.
Главная рабочего сайта на телефоне
Тег-страница «Ведущие на свадьбу в Москве» на телефоне, демо-копия
Виджет бронирования на телефоне, демо-копия

Что я вынес из проекта

Площадка работает: tvoyprazdnik.com. Кабинеты и админка на этой странице сняты на локальной копии с выдуманными данными.

  1. Правила денег решаются до кода.Кто возвращает предоплату, в какой срок и кто ставит точку: это разговор с заказчиком. Записанные правила одинаково легко переносятся в код и в инструкцию на сайте.
  2. SEO растёт из данных.Посадочные страницы появляются там, где есть услуги, и уходят вместе с ними. Список не нужно вести руками.
  3. Маркетплейс живёт, пока никто не смотрит.Напоминания, сроки оплаты, письма о непрочитанных: половина работы площадки происходит в очереди задач.
Следующий проектGoAff

Давайте знакомиться

Хорошие проекты
начинаются
с разговора.

Нужен технический партнёр, помощь команде или решение для рабочего процесса? Расскажите, что хотите изменить — обсудим, чем я могу помочь.

@work_ilyaЛично мне в Telegram
Илья Болясов
Илья БолясовРазработчик. Технический партнёр.