Продукт: Мобильное приложение Stage+
Назначение: Коммуникация с клиентами, каталог аукционных автомобилей, отслеживание заказов
Платформы: iOS + Android
Бренд: Stage+ — автомобили из Японии, Кореи и Китая
| Роль |
Описание |
Кол-во на старте |
| Клиент |
Покупатели авто, используют мобильное приложение |
~100 |
| Менеджер |
Сотрудники Stage+, работают через веб-панель |
~10 |
| Администратор |
Управление системой, пользователями, настройками |
1-2 |
¶ 3.1. Мобильное приложение (iOS + Android)
Для клиентов. Единая кодовая база (Flutter / React Native — выбор на этапе проектирования).
Для сотрудников Stage+. Веб-приложение (React/Vue).
Единый сервер для мобильного приложения и веб-панели.
- API партнёра (аукционный каталог)
- Bitrix24 CRM (статусы заказов)
- SMS-шлюз (авторизация)
- Push-уведомления (FCM / APNs)
Клиент (мобильное приложение):
- Регистрация / вход по номеру телефона + SMS-код
- Профиль: имя, телефон, аватар
- Сессия с автоматическим продлением
Менеджер (веб-панель):
- Вход по логину + пароль
- Двухфакторная аутентификация (опционально)
- Управление профилем
Ключевая функция приложения — обмен сообщениями между клиентами и менеджерами.
Типы чатов:
- Личный (клиент ↔ менеджер)
- Групповой (клиент + несколько менеджеров, или несколько клиентов + менеджер)
Типы сообщений:
- Текст
- Фото (сжатие + оригинал)
- Документы (PDF, сканы, договоры)
- Видео (опционально, фаза 2)
- Голосовые (опционально, фаза 2)
Возможности:
- Полная история переписки (сохраняется на сервере)
- Индикатор прочитано / не прочитано
- Индикатор «печатает...»
- Поиск по сообщениям
- Пересылка и ответ на сообщение (reply)
- Отправка нескольких файлов одновременно
- Превью документов и изображений
- Счётчик непрочитанных на иконке чата
Push-уведомления:
- Новое сообщение в чате
- Настройка: мьют отдельных чатов
Техническая реализация:
- WebSocket для real-time доставки
- Оффлайн-очередь: сообщения отправляются при восстановлении связи
- Хранение медиа: S3-совместимое хранилище (MinIO / AWS S3)
Источник данных: API партнёра (парсинг/синхронизация)
Карточка автомобиля:
- Марка, модель, год выпуска
- Объём двигателя, тип топлива, КПП
- Пробег
- Оценка аукциона (если есть)
- Фотографии (галерея, свайп)
- Цена аукциона
- Статус (доступен / продан / в пути)
Фильтры:
- Марка / модель
- Год выпуска (от — до)
- Цена (от — до)
- Пробег (от — до)
- Тип топлива
- КПП (АКПП / МКПП / вариатор)
- Страна (Япония / Корея / Китай)
Дополнительно:
- Сортировка (по цене, году, пробегу, дате добавления)
- Избранное (сохранённые авто)
- Push: новые авто по сохранённому фильтру (опционально, фаза 2)
- Возможность отправить авто в чат менеджеру («Интересует этот лот»)
Синхронизация:
- Периодический импорт из API партнёра (интервал настраивается)
- Локальная БД для быстрого поиска и фильтрации
Интеграция: Bitrix24 CRM → API бэкенда → приложение
Отображение:
- Список заказов клиента
- Текущий статус с таймлайном (визуальный прогресс-бар)
- История изменений статуса с датами
Примерные статусы (настраиваемые из Bitrix24):
- Заявка принята
- Поиск на аукционе
- Авто выиграно
- Оплата
- Оформление документов
- Отгрузка
- В пути (морем/авто)
- Таможенное оформление
- Доставка клиенту
- Завершено
Push-уведомления:
- Отображение актуальных курсов: JPY, CNY (АТБ, продажа), USD, EUR (ЦБ РФ)
- Обновление при каждом открытии раздела
- Возможность встроить в главный экран (виджет)
- Имя, телефон, аватар
- Список заказов
- Избранные авто
- Настройки уведомлений
- Выход из аккаунта
- Список всех чатов с клиентами
- Назначение чата на менеджера
- Создание групповых чатов
- Те же возможности что в мобильном: текст, фото, документы
- Шаблоны быстрых ответов
- Фильтр: мои чаты / все / без ответа
- Список клиентов с поиском
- Профиль клиента: контакты, заказы, история чатов
- Создание нового клиента
- Просмотр синхронизированного каталога
- Ручное добавление / редактирование лотов (если нужно)
- Управление импортом из API партнёра
- Просмотр заказов (данные из Bitrix24)
- Привязка заказа к клиенту
- Количество активных чатов
- Время ответа менеджера
- Популярные марки/модели в каталоге
- Время отклика API: < 200мс (95-й перцентиль)
- Доставка сообщения: < 1с (real-time)
- Загрузка каталога: < 2с (первые 20 авто)
- HTTPS everywhere
- JWT-токены для авторизации
- Rate limiting на API
- Шифрование медиафайлов в хранилище
- Валидация загружаемых файлов (тип, размер)
- Максимальный размер файла: 50 МБ
- Архитектура рассчитана на рост до 1000+ клиентов
- Горизонтальное масштабирование бэкенда
- CDN для медиа-контента
- Uptime: 99.5%
- Graceful degradation: приложение работает при недоступности каталога/CRM
| Компонент |
Технология |
Обоснование |
| Мобильное приложение |
Flutter |
Единая кодовая база iOS+Android, высокая производительность, богатый UI |
| Веб-панель |
React + TypeScript |
Стандарт индустрии, большая экосистема |
| Бэкенд API |
Python (FastAPI) или Go |
FastAPI — быстрая разработка, Go — производительность |
| БД основная |
PostgreSQL |
Надёжность, JSON-поддержка, полнотекстовый поиск |
| БД чатов/real-time |
PostgreSQL + Redis |
Redis для pub/sub и кэширования |
| WebSocket |
FastAPI WebSocket или Go gorilla/websocket |
Real-time чаты |
| Хранилище файлов |
MinIO (self-hosted S3) |
Контроль данных, совместимость с S3 API |
| Push-уведомления |
Firebase Cloud Messaging (FCM) + APNs |
Стандарт для обеих платформ |
| SMS-шлюз |
SMS.ru / Twilio / SMS Aero |
Зависит от бюджета и региона |
| Кэш |
Redis |
Сессии, online-статусы, pub/sub |
| CI/CD |
GitLab CI |
Уже используется GitLab |
| Деплой |
Docker + Docker Compose |
Простота, воспроизводимость |
| Мониторинг |
Grafana + Prometheus (фаза 2) |
Метрики и алерты |
- Формат: REST API (уточнить)
- Синхронизация: периодическая (cron, каждые N минут)
- Маппинг полей: на этапе разработки
- REST API Bitrix24
- Webhook: Bitrix24 → бэкенд (при смене статуса сделки)
- Маппинг: сделка Bitrix = заказ в приложении
- Отправка OTP-кодов при регистрации/входе
- Rate limit: max 3 SMS / 10 минут на номер
- FCM для Android
- APNs для iOS (через FCM или напрямую)
- Типы: новое сообщение, смена статуса заказа
| Вопрос |
Решение |
| API аукционов |
Парсинг auc.stage-plus.ru (AJES), авторизация cookie-based |
| Bitrix24 |
Да, сделки клиентов со статусами, связь по номеру телефона, вебхук будет |
| SMS-шлюз |
TBD |
| Хостинг |
Сервер приложений (CI/CD stageplus group) + db3.zubat.ru (PostgreSQL 16) |
| Дизайн |
Брендбук создан на основе stage-plus.ru (см. BRANDBOOK.md), UI-кит на базе Flutter Material 3 |
| Публикация |
Юра берёт на себя (сборка + сторы) |
| Домен API |
mapp.stage-plus.ru |
| Фреймворк |
Flutter (мобильное), React (веб-панель) |
| Бэкенд |
Python FastAPI |
| Разработка |
iZub — бэкенд + веб-панель + код Flutter; Юра — сборка, тесты на устройствах, публикация |
- Bitrix24 вебхук — ожидаем от Юры
- SMS-шлюз — выбор провайдера (SMS.ru / SMS Aero / другой)
- AJES аккаунт — логин и пароль в .env, нет доступа к portal_api
- SSL для mapp.stage-plus.ru — Let's Encrypt на сервере приложений
| Риск |
Вероятность |
Митигация |
| API партнёра нестабильный |
Средняя |
Локальный кэш, graceful degradation |
| Bitrix24 API лимиты |
Низкая |
Webhook вместо polling, кэширование |
| Задержка публикации в App Store |
Средняя |
Заложить 2-4 недели на ревью |
| Рост нагрузки |
Низкая (на старте) |
Архитектура с запасом, горизонтальное масштабирование |
Документ создан: 2026-02-10
Версия: 1.0 (черновик)