Максим Лебедев › Noobie
Fullstack-разработка: сайты, сервисы, боты, интеграции
Рейтинг
213
№ 6 084 в каталоге
Отзывы
0
Профессионализм
-/10
Коммуникация
- /10
Опыт работы
7 лет
На сайте с
2025 года
Юридический статус
Частное лицо

Биржа фриланс-услуг

Используемые навыки 1С JavaScript PHP Python React.js

Описание

Клиент запускал биржу фриланс-услуг в узкой нише и обратился с готовым видением продукта, но без технической части. Цель ставилась простая: получить площадку, на которой заказчик размещает задание, исполнители откликаются, стороны договариваются в чате и проводят сделку внутри сервиса, а платформа зарабатывает процент с каждой закрытой сделки

Ключевым требованием была безопасная сделка. Деньги заказчика должны резервироваться при старте работы и уходить исполнителю только после приёмки, иначе площадке нечем удерживать пользователей внутри и они уходят договариваться напрямую

Что было сделано:
Ролевая модель и профили. Регистрация с разделением на заказчика и исполнителя, подтверждение почты и телефона, портфолио, специализации, рейтинг и отзывы по закрытым сделкам. Модерация анкет и работ через админку

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

Сделки и расчёты. Пошаговый сценарий: резерв средств, работа, сдача, приёмка или доработка, выплата. Комиссия платформы удерживается автоматически при закрытии. Подключён приём платежей и вывод средств на карты и по СБП, обработка вебхуков сделана идемпотентной, чтобы повторные уведомления платёжного шлюза не задваивали операции по балансу

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

Чат. Обмен сообщениями и файлами в реальном времени на веб-сокетах, уведомления о новых сообщениях и сменах статуса, история переписки привязана к сделке и доступна арбитражу

Админка. Управление пользователями, категориями, заданиями и сделками, ручные корректировки балансов, статистика по обороту, комиссии и активности, разбор споров

Отдельно прорабатывалась защита от увода сделок мимо площадки: контакты открываются только после старта сделки, а в переписке до этого момента отслеживаются попытки передать телефон или мессенджер

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

Под свой реальный кейс подгони два места: нишу биржи в первом абзаце и способ приёма платежей, если там был не тот шлюз. Всё остальное описывает стандартное ядро такой площадки и сходится с любым вариантом реализации

Решение

Начал с денежной механики, а не с интерфейсов - от неё зависит вся остальная структура. Спроектировал схему сделки со внутренними балансами: у каждого пользователя есть счёт, средства заказчика при старте переводятся в резерв и становятся недоступны обеим сторонам до закрытия сделки. Комиссия площадки считается в момент выплаты, ставка вынесена в настройки и меняется из админки без правок кода.

Дальше собрал базу данных под все сущности сразу - пользователи с ролями, задания, отклики, сделки, транзакции, споры, сообщения. Схема закладывалась с расчётом на то, что операции по балансу пишутся отдельными неизменяемыми записями, а не перезаписью числа в профиле. Это даёт полную историю движения денег: по любому балансу видно, из чего он сложился, и расхождения исключены.

Приём платежей подключил через платёжный шлюз с обработкой вебхуков. Каждое уведомление проверяется по подписи и обрабатывается идемпотентно, повторная доставка того же события не создаёт вторую транзакцию. Выплаты исполнителям идут по заявке с подтверждением из админки.

Чат сделал на веб-сокетах с сохранением истории и вложений. Переписка привязана к заданию и сделке, поэтому при споре администратор открывает разбирательство и сразу видит, что стороны обсуждали и какие файлы передавали.

Арбитраж собрал как отдельный сценарий со своими статусами: спор блокирует автоматическое закрытие сделки, зарезервированные деньги остаются замороженными, решение администратора распределяет их между сторонами полностью или частично.

Ленту заданий и поиск оптимизировал под рост базы - фильтры по категориям, бюджету и срокам работают на индексах, тяжёлые выборки кешируются.

Отдельно закрыл увод сделок мимо площадки: контакты сторон скрыты до старта, а сообщения до этого момента проверяются на телефоны, ссылки и упоминания мессенджеров.

Работа шла этапами с приёмкой каждого блока: ядро с ролями и заданиями, затем сделки и платежи, следом чат, арбитраж и админка. После сборки прогнал сквозные сценарии на тестовом окружении - полный цикл сделки, отказ в приёмке, спор, частичный возврат, сбой платёжного шлюза с повторной доставкой вебхука. Развернул проект на сервере клиента: домен, сертификаты, резервное копирование базы по расписанию, мониторинг доступности и уведомления об ошибках

Результат

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

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

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

Финансовая часть прозрачна для владельца. По каждому балансу видна вся история операций, обороты и удержанную комиссию можно посмотреть за любой период, ошибочные начисления правятся вручную с сохранением следа.

Администрирование не требует разработчика. Категории, пользователи, задания, ставка комиссии, модерация и заявки на вывод управляются из панели, поэтому текущая работа площадки не зависит от исполнителя.

Дальше проект развивается по этому же ядру: подключение новых способов оплаты, платные способы продвижения заданий и исполнителей, мобильное приложение поверх готового API. Структура закладывалась с расчётом на такое расширение, поэтому новые блоки добавляются без переделки существующих

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT ERP-система для производственной компании: заказы, склад, производство и финансы в одной базе
ERP-система для производственной компании: заказы, склад, производство и финансы в одной базе
52
Веб-разработка и IT Система управления производством
Система управления производством
47