Кейс 02 · NEO RENT · собственный продукт

NEO RENT — платформа аренды и проката техники

Каталог техники, онлайн-бронирование, календарь загрузки, ценовые правила и приём оплаты.

NEO RENT (https://neo.rent/) — универсальная цифровая платформа аренды и проката, которая соединяет владельцев техники и клиентов в единой среде поиска, бронирования, управления доступностью, коммуникаций и оплаты.

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

Ядро сознательно универсальное и не заточено под одну нишу: водный транспорт, квадроциклы и багги, велосипеды и сапборды, строительный инструмент, спецтехника, автомобили, объекты размещения. В системе три роли со своими кабинетами: арендодатель, клиент и администратор платформы.

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

Функционал системы

  • Публичная витрина и каталог
    • Главная страница платформы со статистикой, списком и картой прокатов.
    • Публичная страница компании: описание проката, контакты, точки выдачи на карте.
    • Единый каталожный модуль с фильтрами, подбором свободной техники на нужные даты и расчётом стоимости.
    • Страница объекта со всеми условиями аренды, галереей и калькулятором цены.
  • Виджет бронирования
    • Пошаговый сценарий: боковая панель на десктопе, полный экран на мобильном.
    • Перенос параметров из каталога и открытие сразу на первом незаполненном шаге.
    • Календарь доступности с готовыми вариантами времени старта вместо свободного ввода.
    • Пересчёт стоимости на любое изменение параметров и авто-пропуск ненужных шагов.
    • Скрытое атомарное назначение свободного экземпляра — без двойных броней.
  • Календарь загрузки и доступность
    • Календарная сетка с масштабами День / Неделя / Месяц / Список.
    • Выделение интервала мышью, перетаскивание и растягивание броней с пересчётом цены до сохранения.
    • Доступность экземпляров интервалами, копирование графика между экземплярами, технические перерывы между арендами.
    • График работы точки как ограничивающий фактор отдельно от физической доступности техники.
  • Ценовой движок
    • Модель «база + правила» с независимыми часовой и суточной ветками тарификации.
    • Поправочные коэффициенты по периодам (сезон, выходные) с проверкой непересечения.
    • Скидки за длительность аренды и за количество единиц, дополнительные услуги, предоплата.
    • Расчёт стоимости через API — одинаковый в каталоге, виджете, календаре и карточке брони.
  • Брони и платежи
    • Единое окно управления бронью: клиент, ресурсы, расчёт, оплата, переписка, комментарии, журнал действий.
    • Пересчёт стоимости до сохранения с подтверждением при недоступности, пересечении и переплате.
    • Автоматическое объединение броней одного клиента.
    • Платёжная ведомость: наличные, безналичные, возвраты, переплата.
    • Эквайринг ЮKassa — оплата по QR-коду и по ссылке.
  • Уведомления и коммуникации
    • Матрица уведомлений письмами и внутри кабинета, рассылка фоновым воркером.
    • Чат по брони: сообщения проката, клиента и системные события в одной ленте, переход в чат прямо из письма.
    • Вход клиента по одноразовому коду на email, без пароля.
    • Автоматическая отмена по таймерам ожидания оплаты и напоминания перед началом аренды.
  • Кабинеты, аналитика и админпанель
    • Статистика аренд и загрузки парка с фильтрами по периоду, точке и объекту.
    • Выгрузка списка броней в Excel, сводный раздел платежей и истории операций.
    • Кабинет клиента: персональные данные, история броней, чаты, уведомления.
    • Админпанель платформы: реестры прокатов и пользователей, сквозные витрины броней и платежей, общий классификатор категорий, журнал аудита.

Технические решения

  • Модульный монолит на FastAPI, полностью асинхронный (Python 3.12+, psycopg 3). Границы модулей спроектированы так, что каталог и ценовой движок переиспользуются как библиотеки, а любой модуль можно вынести в отдельный сервис.
  • Параметризованный SQL без ORM и нумерованные SQL-миграции: план запроса виден, схема и запросы читаются одним языком.
  • Планировщик задач на самом PostgreSQL (SELECT ... FOR UPDATE SKIP LOCKED) вместо Redis/Celery — таймеры отмены и напоминаний живут в той же транзакции, что и бронь.
  • Атомарное назначение экземпляра при бронировании и единая транзакционная модель — двойная бронь невозможна на уровне БД.
  • Next.js (React, TypeScript): SSR для публичных страниц ради SEO и скорости первого экрана, CSR для кабинетов; общий UI-kit на витрину, виджет и кабинеты.
  • Медиапайплайн: ресайз, сжатие, EXIF-strip, генерация миниатюр.
  • Интеграции: ЮKassa, Яндекс Карты и Геокодер, email-провайдер, вход через ВКонтакте.
  • Безопасность: RBAC, шифрование платёжных реквизитов в БД, заголовки безопасности, журнал аудита с фактическим автором действия.
  • Эксплуатация: собственный VPS без Docker — Granian, фоновый воркер и Next.js под systemd, nginx с TLS, отдельный тестовый контур, регулярные бэкапы, выкладка одной командой.
  • Адаптивная вёрстка от 320px, кроссбраузерная проверка в Safari / Firefox / Edge, стенд производительности на тестовом объёме данных.

Масштаб проекта

  • ~25 000 строк Python в backend (113 модулей) и ~21 000 строк TypeScript/React во frontend.
  • 68 таблиц в PostgreSQL.
  • Более 600 автотестов.
  • 13 фаз реализации — от фундамента до нефункциональных требований и промышленного развёртывания.

Результаты

  • Платформа запущена и работает на собственном VPS: https://neo.rent/
  • Полный цикл проката онлайн: поиск → подбор свободной техники → бронирование → оплата → коммуникация с клиентом
  • Ценовой движок «база + правила» с часовой и суточной тарификацией, сезонными коэффициентами и скидками
  • Интерактивный календарь загрузки с drag & drop броней и пересчётом стоимости
  • Приём оплаты через ЮKassa: QR-код и ссылка на оплату
  • Три роли и три кабинета: арендодатель, клиент, администратор платформы

Интерфейс проекта

NEO RENT — платформа аренды и проката техники: скриншот - 1

LLM Technology

Нужен похожий продукт?

Разберём задачу и предложим реалистичный план первого этапа.

Обсудить проект