Маркетплейс бронирования beauty-услуг
Маркетплейс записи в бьюти- и велнес-салоны для Литвы — геопоиск и запись.
Dev-storyЗадача
Запись на beauty-услугу — это салон рядом, нужный мастер и свободное время, а не объявление, которое покупаешь онлайн.
Что делали
MVP на Vue 3 (Composition API, Pinia для UI-стейта) + webedge-db для бьюти-рынка: геопоиск салонов, запись с выбором мастера, отзывы и рейтинги, оплата на месте (без онлайн-платежей), кабинет партнёра и админка.
Результат
Рабочий поток записи для литовского beauty-рынка — найди салон по месту, выбери мастера и время, заплати на месте.
Dev-story статья
Маркетплейс бронирования beauty-услуг: как создавался проект
У маркетплейса бронирования один дефицитный ресурс — календарь конкретного мастера. Сложность не в списке салонов, а в честности свободного слота: он должен одновременно сходиться с графиком одного сотрудника, часами работы салона, несколькими услугами подряд и часовым поясом Europe/Vilnius. А поскольку за бронь платят на месте, а не онлайн, нет шага оплаты, который замял бы расхождение: какая цена показана в каталоге, столько клиент и платит в кресле.
Разделы
05
Модули
05
Стек
Vue 3 + webedge-db
Почему появился проект
Запись на beauty-услугу — это салон рядом, нужный мастер и свободное время, а не объявление, которое покупаешь онлайн.
У маркетплейса бронирования один дефицитный ресурс — календарь конкретного мастера. Сложность не в списке салонов, а в честности свободного слота: он должен одновременно сходиться с графиком одного сотрудника, часами работы салона, несколькими услугами подряд и часовым поясом Europe/Vilnius. А поскольку за бронь платят на месте, а не онлайн, нет шага оплаты, который замял бы расхождение: какая цена показана в каталоге, столько клиент и платит в кресле.
Что было создано
MVP на Vue 3 (Composition API, Pinia для UI-стейта) + webedge-db для бьюти-рынка: геопоиск салонов, запись с выбором мастера, отзывы и рейтинги, оплата на месте (без онлайн-платежей), кабинет партнёра и админка.
BeautyMarket — маркетплейс для Литвы, где клиенты ищут салоны по карте, открывают страницу салона, выбирают конкретные услуги и мастера и бронируют время — как гость или зарегистрированный пользователь. Партнёры получают кабинет для управления салоном (календарь, услуги, персонал, часы работы, фото, скидки на услуги, статистика); админская сторона следит за платформой. Отзывы и рейтинги, избранное и письма-подтверждения с вложением .ics замыкают цикл.
Основные модули и путь пользователя
Движок слотов, считающий реальную доступность по календарю выбранного мастера, часам работы салона и суммарной длительности нескольких услуг; всё хранится в UTC и показывается в Europe/Vilnius через Luxon
Единый источник правды по цене: итоговая цена (базовая минус скидка 1–90% на услугу) считается в одном общем модуле, поэтому мутация брони списывает ровно столько, сколько показывает перечёркнутая цена в каталоге — критично при оплате на месте
Гео-поиск по geospatial-индексу с картой Leaflet/OSM, плюс постраничный поиск каталога по названию услуги, фильтр по рейтингу, сортировка и лента 'похожих салонов' по городу и категории
Гостевое бронирование с телефоном и письмом-подтверждением рядом с зарегистрированными аккаунтами, у которых роль проверяется на сервере; кабинет партнёра охватывает услуги, персонал, загрузку фото, часы работы и скидки-спецпредложения
SEO для каждого салона через edge Pages Functions, которые на уровне CDN вставляют реальные мета-теги и динамический sitemap, так что каждый URL салона индексируется без серверного рендеринга
Архитектура и технологические решения
Сделано на Vue 3, webedge-db, Geosearch.
Vue 3 со script-setup и Composition API, Vite, Vue Router и Pinia для UI-стейта, vue-i18n для LT/EN/RU; вся серверная логика в реактивном бэкенде с geospatial-индексом, cron-задачами, аутентификацией email-plus-OTP и Google, деньги в центах, а Vitest и бэкенд-тесты держатся зелёными.
Результат и выводы
Рабочий поток записи для литовского beauty-рынка — найди салон по месту, выбери мастера и время, заплати на месте.
Полный MVP-скоуп реализован, build, lint и тесты зелёные; статус честный — код production-формы, но ему ещё нужен первый запуск против живого деплоя бэкенда, прежде чем он встретит настоящие салоны.
Связанные статьи
Читать дальше
Связанные истории проектов
Эти проекты близки по техническим или продуктовым решениям и показывают, как тот же принцип работает в другом контексте.
Dev-storyПлатформа календарных бронирований
Бронирование на Vue 3 — слоты, записи, письма и Meet-видеозвонки в один клик.
Dev-storyМаркетплейс автомобилей
Маркетплейс авто — Vue 3 SPA с realtime-поиском, внешними аукционными источниками и алертами о снижении цены.
Dev-storyМаркетплейс и радар недвижимости
Движок авто, перенацеленный на недвижимость, с радаром объявлений.
Есть похожая идея?
Обсудить проект