Заработок в интернете

Как я устал искать нормального мастера и сделал свою карту заказов и услуг в реальном времени без комиссий агрегаторов

Как я устал искать нормального мастера и сделал свою карту заказов и услуг в реальном времени без комиссий агрегаторов

Все началось классически — с потекшего смесителя на кухне. Вода капает, жена нервничает, я открываю один известный агрегатор услуг. Начинается квест: заполни форму из 20 пунктов, подожди предложений, отсей ботов, выдержай атаку «менеджеров по продажам», а потом узнай, что мастер Василий готов приехать… только в следующий четверг. И стоить это будет как крыло от самолета, потому что сам агрегатор забирает у Василия до 40% от чека. Я сидел на кухне под мерный стук капель и думал: «Мы живем в 2026 году. Я могу за секунду увидеть на карте, где едет мой самокат или курьер с пиццей. Почему я не могу открыть карту и увидеть мастера, который прямо сейчас свободен в двух кварталах от меня? Или, наоборот, «выкинуть» свою беду на карту, чтобы ближайший свободный спец сам прибежал на помощь?» Так родилась идея СрочноТочно.рф — интерактивной real-time карты, где при регистрации ты просто выбираешь роль: Заказчик или Мастер. Никаких скрытых комиссий, посредников и бесконечных созвонов. Ниже — история о том, как спроектировать двусторонний гео-сервис в реальном времени, не сойти с ума от синхронизации сотен точек и уложить всё в понятный стек.

Концепция Uber для услуг: Как это работает на одной карте

Большинство современных платформ — это огромные, неповоротливые доски объявлений. Их цель — удержать вас на сайте как можно дольше, чтобы показать рекламу и выжать максимум денег за «отклики». Мы полностью перестроили логику взаимодействия и объединили обе стороны на одной карте: 1. Если ты Мастер: Включаешь тумблер «Я на работе» — твоя иконка появляется на карте для заказчиков. Ты видишь, какие заказы прямо сейчас «горят» вокруг тебя (например, «Починить замок, ул. Ленина 15, бюджет 3000₽»), кликаешь на точку и забираешь в работу. 2. Если ты Заказчик: Тебе не нужно ждать часами. Ты либо выбираешь свободного мастера прямо на карте своего района и пишешь ему в один клик, либо за 10 секунд публикуешь свой заказ. Он тут же загорается красным маркером на карте для всех ближайших мастеров. 3. Честный P2P (Без комиссий): Мы не прячем телефоны и не берем процент со сделки. Сервис соединяет людей напрямую. Обывателю кажется: «Ну, карта и точки, делов-то». Но когда мы с головой ушли в бэкенд, оказалось, что подружить real-time координаты перемещающихся мастеров и динамически появляющиеся/исчезающие заказы на копеечном сервере — задача со звездочкой.

Под капотом: Архитектура, стек и борьба за миллисекунды

Для разработки был выбран надежный и быстрый асинхронный стек: Python (FastAPI), PostgreSQL + PostGIS, Redis, Docker и Nginx.

Вот как устроена архитектура системы изнутри:

Как я устал искать нормального мастера и сделал свою карту заказов и услуг в реальном времени без комиссий агрегаторов

1. Как мы разгрузили базу данных с помощью Redis Geo

Пулсить сервер стандартными HTTP-запросами в поисках изменений на карте каждые 3 секунды — это путь к моментальному падению базы при первых же ста пользователях. Поэтому вся «живая» карта крутится в оперативной памяти. • Для мастеров: Смартфон исполнителя через WebSockets шлет легковесные JSON-пакеты с координатами. FastAPI принимает их и обновляет в Redis Geo с помощью команды GEOADD. • Для заказов: Когда заказчик создает заявку, она тоже падает в Redis с определенным радиусом видимости. • Синхронизация: Как только клиент открывает карту, FastAPI делает мгновенный запрос: GEORADIUS по мастерам и по активным заказам в радиусе 3-5 км. Всё это собирается в один массив за микросекунды и отдается на фронтенд. Основная база (PostgreSQL) в этот момент вообще отдыхает.

2. Механизм «Мертвых душ» (TTL)

Что делать, если у мастера сел телефон или пропал интернет, а он остался «висеть» на карте? Или если заказчик решил проблему сам и ушел, забыв удалить точку? Мы внедрили механизм TTL (Time to Live) в Redis. • Координаты мастера автоматически «испаряются» с карты, если от него нет пинга больше 5 минут. • Заказ имеет свой жизненный цикл (например, 2 часа), после чего точка гаснет, если заказчик её не продлил.

3. Оптимизация батареи и контейнеризация

Постоянный GPS-трекинг выедает батарею смартфона мастера за пару часов. Мы оптимизировали логику на клиенте: если акселерометр показывает, что мастер стоит на месте (или выполняет заказ), частота отправки координат снижается до минимума. Как только началось движение — частота увеличивается. Весь проект упакован в Docker-контейнеры. Nginx выступает в роли обратного прокси: он держит WebSocket-соединения, рулит SSL-сертификатами и моментально отдает статику.

Главные выводы

Проект SrochnoTochno.ru запущен. Нам удалось создать отзывчивую, интерактивную карту, которая одинаково полезна и тем, кто ищет работу прямо сейчас, и тем, кому помощь нужна «еще вчера». И главное — мы доказали, что для создания работающего аналога Uber-механики для услуг не нужны миллионные бюджеты и штаты из сотен разработчиков.

Сейчас мы активно наполняем карту в пилотных районах. Заходите протестировать интерфейс (не важно, в роли мастера или заказчика). Как вам концепция единой карты для заказов и исполнителей? Пишите в комментариях, чего, на ваш взгляд, не хватает такой системе в первую очередь!

Источник

Нажмите, чтобы оценить!
[Общий: 1 Средний: 1]

Discover more from Бизнес идеи, как открыть своё дело, заработать в интернете.

Subscribe to get the latest posts to your email.

Показать больше

Leave a Reply

Кнопка «Наверх»

Discover more from Бизнес идеи, как открыть своё дело, заработать в интернете.

Subscribe now to keep reading and get access to the full archive.

Continue reading