О проекте
Продукт для рынка Северной Америки. Веб-сервис LocalPro.online предназначен для помощи контрактерам в ведении бизнеса. Система позволяет делать оценку стоимости работ (estimates), вести журнал заключенных контрактов (projects), назначать работников на тот или иной вид работ (scheduling). Так же сервис позволяет посетителям найти контрактеров выполняющих определенные виды работ и запросить оценку с
ЗАДАЧА Клиент, выходящий на рынок Северной Америки, поставил цель создать веб-сервис LocalPro.online — цифровую платформу, соединяющую исполнителей ремонтно-строительных и бытовых работ с конечными заказчиками. Проект предполагал несколько ролей: домовладельцы, которым нужно быстро найти проверенного контрактера, и сами мастера (contractors), часто представляющие малый бизнес — от установщиков заборов до ландшафтных дизайнеров и клининговых команд. Имелось детальное техническое задание, описывающее основную механику: клиент выбирает категорию работ, смотрит доступных исполнителей на карте вбли
ЗАДАЧА
Клиент, выходящий на рынок Северной Америки, поставил цель создать веб-сервис LocalPro.online — цифровую платформу, соединяющую исполнителей ремонтно-строительных и бытовых работ с конечными заказчиками. Проект предполагал несколько ролей: домовладельцы, которым нужно быстро найти проверенного контрактера, и сами мастера (contractors), часто представляющие малый бизнес — от установщиков заборов до ландшафтных дизайнеров и клининговых команд. Имелось детальное техническое задание, описывающее основную механику: клиент выбирает категорию работ, смотрит доступных исполнителей на карте вблизи своего местоположения и отправляет им запросы на оценку стоимости. Контрактер, получив запрос, должен иметь возможность быстро сформировать профессиональное предложение (estimate), используя заранее настроенные ставки и шаблоны под конкретный вид деятельности.

Дополнительные требования касались специфики региона: поддержка имперской системы мер (футы, квадратные футы, ярды), местных форматов валюты и адресов, а также гибкого планирования занятости. Бизнес-логика должна была учитывать, что один контрактер может выполнять несколько типов работ, управлять штатом сотрудников и вести прозрачную финансовую отчётность. Проект нужно было реализовать в сжатые сроки — немного более трёх месяцев, включая дизайн, разработку и запуск.
После изучения предоставленной документации и серии переговоров для уточнения нефункциональных требований (нагрузка, масштабируемость, безопасность данных) команда ESK Solutions приступила к проработке архитектуры и подготовке среды разработки.
РЕШЕНИЕ
Публичная часть сервиса получила уникальный, интуитивно понятный дизайн, ориентированный на быстрое размещение запроса. Для заказчиков реализован пошаговый сценарий: выбор категории из обширного каталога (бетонные работы, установка гипсокартона, покраска комнат, монтаж плинтуса, укладка газона и т.д.), указание адреса и визуальный поиск исполнителей на интерактивной карте с задаваемым радиусом. Можно разослать запрос сразу нескольким контрактерам и сравнивать поступившие предложения.
Личные кабинеты контрактеров построены на административном шаблоне, обеспечивающем быстрый доступ к насыщенному функционалу. Каждый исполнитель детально заполняет профиль: описание компании, специализацию, контактные данные, часы работы и географию обслуживания. Ключевое преимущество — система настройки персональных ставок. Контрактер может задать стоимость часа работы, а также детализированные расценки по пяти шаблонам расчёта:
- per Unit of Work — оплата за штуку/элемент (например, установка одной двери);
- for Linear Work — за единицу длины: монтаж плинтуса, установка забора (стоимость погонного фута);
- for Area Work — за единицу площади: монтаж гипсокартона, укладка плитки (за квадратный фут);
- for Volume Work — за объём: бетонные работы (за кубический ярд);
- for Room Painting — специализированный расчёт для покраски комнат с учётом периметра, высоты стен и количества проёмов.
Особенностью системы стала возможность выстраивать сложную многоэтапную структуру работ в рамках одного проекта. Например, при установке забора контрактер добавляет в предложение несколько фаз: бетонирование основания (со своей часовой ставкой и нужным количеством специалистов), монтаж секций забора (погонные расценки), установка ворот (фиксированная ставка). Для каждой фазы можно назначить конкретных сотрудников, а система автоматически пересчитывает общую стоимость и ориентировочные временные затраты.
Управление расписанием реализовано через календарь с почасовой сеткой и drag-and-drop интерфейсом. Контрактер видит занятость каждого работника, учитывает перерывы, выходные и географическую близость заказов. При назначении задачи сотруднику календарь мгновенно обновляется, исключая накладки.
Для финансового контроля разработаны три отчёта: Payments control (контроль оплат по проектам с просрочками), Financial Results — Details (прибыль/расходы по каждому заказу) и Financial Results — Summary (ежемесячная сводка). Готовые предложения автоматически оформляются в профессиональный PDF-документ с логотипом компании и отправляются клиенту прямо из личного кабинета.
РЕАЛИЗАЦИЯ
Работы велись по гибкому циклу с двухнедельными спринтами, что позволяло оперативно уточнять детали и демонстрировать промежуточные результаты. На старте команда проработала ролевую модель и права доступа: заказчик, контрактер и администратор платформы. Права администратора включали управление справочником видов работ, модерацию компаний и формирование сводной аналитики.
Технический стек был выбран с учётом требований к надёжности и скорости разработки. Основной бэкенд реализован на PHP (Laravel) с БД MySQL — это обеспечило строгую структуру данных для сложных сущностей: профилей, ставок, шаблонов работ, транзакций. Фронтенд публичной части создавался на Vue.js, что дало реактивный интерфейс поиска и карточки заказов без перезагрузок. Интеграция с Google Maps Platform позволила реализовать геокодирование адресов, отображение меток контрактеров и радиус поиска в реальном времени.
Наибольшую инженерную сложность представили три компонента. Во-первых, синхронизация календаря. Планировщик сотрудников должен учитывать временные зоны (клиенты и контрактеры могут находиться в разных часовых поясах), предотвращать двойное бронирование и автоматически блокировать слоты, когда исполнитель уже назначен на заказ в другом месте. Реализована система событий, которая при создании задачи проверяет доступность всех требуемых сотрудников с учётом времени на дорогу между объектами. Во-вторых, калькулятор смет. Каждый шаблон расчёта имеет уникальную формулу: для линейных работ используется длина, для площадных — площадь, для комнат — сложный расчёт с вычетом дверей и окон. Пользователь может комбинировать несколько шаблонов в одном проекте, а итоговая цена собирается с учётом скидок и налогов. В-третьих, интеграция платёжного шлюза Stripe для приёма оплат от клиентов после принятия предложения, с последующим учётом в отчёте Payments control.
Особое внимание уделили локализации: сервис полностью на английском языке, все единицы измерения приводятся в имперской системе, а форматы дат и отображение валюты адаптированы под США. Безопасность усилена двухфакторной аутентификацией для контрактеров, шифрованием чувствительных данных и регулярным резервным копированием. Этап тестирования включал юзабилити-прогоны с фокус-группой, имитировавшей реальное поведение домовладельца и подрядчика, а также нагрузочное тестирование — система должна была выдерживать всплески запросов в пиковые сезоны ремонта.
Разработка заняла чуть более трёх месяцев, после чего сервис был развёрнут на облачной инфраструктуре AWS с автомасштабированием, что гарантирует стабильную работу при расширении географии охвата.
РЕЗУЛЬТАТ
По завершении проекта заказчик получил готовый продукт, выведенный на рынок Северной Америки без дополнительных доработок. Веб-сервис LocalPro.online с момента запуска начал активно наполняться контрактерами, которые
• Реализовано под задачи бизнеса • Учтены интеграции и нагрузка • Поддержан запуск и развитие
