Кейсы 6 мин чтения

Бронирование боксов для склада хранения в Красноярске: демо-система

Склад ответственного хранения из Красноярска, 93 бокса в двух ярусах. Я собрал демо: схема склада, бронь на 15 минут, кабинет арендатора и панель владельца. Оплата имитируется, в бою система не запущена.

кейсбронированиеself-storageличный кабинетFastAPI

Коротко (TL;DR)

  • Склад ответственного хранения в Красноярске, 93 бокса в двух ярусах. Нужна система: клиент видит схему склада, выбирает бокс, бронирует и платит сам, а владелец видит занятость и долги без штатного администратора.
  • Я собрал демо: 7 экранов, 28 эндпоинтов API на FastAPI, 9 таблиц в SQLite. Схема яруса А нарисована по плану склада, ярус Б условный, потому что схемы от склада ещё нет.
  • Бронь держит бокс 15 минут, пока клиент оформляет аренду. Двух арендаторов на один бокс система не допускает, это закрыто в коде.
  • Статус: демо на нашем стенде. Оплата имитируется, SMS не уходят, договор и запуск на складе не состоялись.

Рассказываю, как я собрал демо системы для такого склада и что в нём настоящее, а что пока заглушка.

Задача

Владелец склада в Красноярске хотел облачную систему без собственного администратора. На складе 93 бокса, замки пока навесные, позже планируют электронные. Нумерация по ярусам: А, Б и так далее, внутри яруса слева направо, то есть А1, А2.

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

Первый разговор начался со страницы предложения про self-storage и ответственное хранение. Дальше я сразу показал работающий стенд.

Что я сделал

Схема склада и бронь

Склад прислал план одного этажа картинкой, на нём 50 боксов с объёмами. Я снял с неё координаты в пикселях: контур, двери, каждый бокс, включая те, что идут многоугольником. Получился ярус А на 50 боксов. Для яруса Б плана не было, я нарисовал условную раскладку на 43 бокса. Вместе 93, как у клиента. Карта рисуется как SVG, на экране брони бокс выбирается кликом, цена считается от объёма.

Бронь устроена так. Клик по свободному боксу создаёт запись-удержание на 15 минут. За это время человек вводит имя и телефон, выбирает срок, принимает договор и согласие на обработку данных. Если время вышло, бокс снова свободен. Если человек ушёл на этапе контактов, запись попадает в список брошенных оформлений, и владелец может его дожать сообщением.

Для других ресурсов такую механику я разбирал в статье про бронирование ресурсов компании.

Кабинет арендатора и панель владельца

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

Панель владельца показывает занятость, деньги за 30 дней, долги, тех, у кого срок заканчивается, и карту склада с цветами по состоянию боксов. Есть спрос по размерам: боксы делятся на четыре группы по объёму, 26, 39, 21 и 7 боксов, и по каждой видно занятость. Есть лист ожидания: если нужного размера нет, клиент оставляет телефон. Владелец одной кнопкой переключает замки с навесных на электронные, и в кабинете появляется код доступа.

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

Что было сложно

Первое, схема. Ярус А снимал с картинки вручную, и номера пришлось сохранить как на плане клиента, хотя он говорил про нумерацию слева направо. Вопрос про нумерацию остался открытым. Ярусы В и Г не нарисованы совсем.

Второе, гонка за бокс. Два человека могут нажать на один бокс одновременно. Я закрыл это блокировкой в API и проверкой внутри одной транзакции: занят или удержан, значит ответ 409 и сообщение «бокс только что заняли». От перебора броней по одному адресу стоит лимит в три удержания.

Третье, фоновые задачи без планировщика. Снятие просроченных удержаний, напоминания и закрытие доступа должникам выполняет функция, которая запускается при обращении к API. Для демо хватает, для боя я бы вынес их в планировщик.

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

Что получилось

ЧтоСостояние
Боксов в схеме93 (50 по плану склада, 43 условных)
Экранов7 страниц
Эндпоинтов API28
Таблиц в базе9
Автотестовнет
Оплатаимитация записью в базе, провайдер не подключён
SMS и мессенджерыпоказываются как события в журнале, не отправляются
Вход по коду из SMSв демо фиксированный код
Запуск в боюне состоялся

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

Что дальше

Склад ещё не принял решение. Если оно будет, порядок такой. Сначала реальные платежи: приём через эквайринг или СБП, с чеком. О выборе между ними я писал в статьях эквайринг или СБП и как принимать оплату на сайте. Затем SMS через провайдера и вход по настоящему коду. Затем схемы остальных ярусов и настоящие условия аренды. Только после этого запуск на одном складе.

Электронные замки и сеть складов я считаю отдельными этапами. По замкам есть близкая тема, IoT-платформы для арендодателей. Любой этап проще согласовывать, когда деньги и сроки разложены по шагам, как в статье про этапы разработки.

Частые вопросы

Система уже работает на складе?

Нет. Это демо на нашем стенде. Клиент видел его и обсуждал запуск, но договор не подписан, на реальных боксах система не работала.

Можно ли принимать оплату прямо в системе?

В демо оплата имитируется: запись о платеже создаётся, деньги не движутся. Для боевого запуска нужно подключать эквайринг или СБП и чеки. Я это не проверял, пока подключения нет.

Что будет, если два клиента выберут один бокс?

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

Коротко о главном

Для склада с десятками боксов система бронирования собирается на небольшом стеке: Python, SQLite и статические страницы. Схема из SVG, удержание бокса на 15 минут, кабинет и панель владельца закрывают основной цикл аренды. Объём работы виден по числам: 7 экранов, 28 эндпоинтов, 9 таблиц.

Сейчас это демонстрация. Платежи, SMS, схемы остальных ярусов и запуск на реальном складе ещё впереди, и решение за владельцем. Если вам нужна такая система под свой склад или другой объект с боксами, напишите в Telegram, MAX или VK.

Услуги по теме

Что я делаю для бизнеса

  • Боты в Telegram, MAX, VK
  • Автоматизация процессов и CRM
  • Аналитика и дашборды
  • Сайты и лендинги под ключ

Бесплатно: чек-лист «Готов ли ваш бизнес к 152-ФЗ»

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

Готовы обсудить вашу задачу?

Бесплатная консультация — разберём, как внедрить это в вашем бизнесе под ключ. Без форм, пишите напрямую.

Пишу о разработке, ИИ и законах для бизнеса

Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.

Готовые решения под ключTurnkey solutionsSoluciones llave en mano交钥匙解决方案Түлхүүр гардуулах шийдэл 451 готовых IT-решений для бизнеса451 ready-made IT solutions for business451 soluciones IT listas para empresas451 个面向企业的现成 IT 解决方案Бизнест зориулсан 451 бэлэн IT шийдэл Автоматизация, боты, AI, 152-ФЗ и платформы · бесплатная консультацияAutomation, bots, AI, data privacy and platforms · free consultationAutomatización, bots, IA, privacidad de datos y plataformas · consulta gratis自动化、机器人、AI、数据合规与平台 · 免费咨询Автоматжуулалт, бот, AI, өгөгдлийн хамгаалалт ба платформ · үнэгүй зөвлөгөө Смотреть каталогView catalogVer catálogo查看目录Каталог үзэх