Files
rosmol_shop/docs/tz_sozdano_molodymi.md
T

193 lines
20 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ТЕХНИЧЕСКОЕ ЗАДАНИЕ
## на разработку электронной площадки «Создано молодыми» (региональный уровень)
Версия 1.0 · Сентябрь 2026 г.
---
## 1. Общие сведения
**1.1. Наименование системы:** электронная площадка (витрина-маркетплейс) «Создано молодыми» — региональный сегмент федерального проекта поддержки молодых предпринимателей.
**1.2. Заказчик:** оператор проекта (НКО / региональное отделение Росмолодёжи / ЦМИТ — уточняется).
**1.3. Назначение:** единая площадка, на которой молодые предприниматели региона размещают товары и услуги, а покупатели их находят, сравнивают и приобретают.
**1.4. Цели:**
- снизить порог входа молодых брендов на рынок (витрина + канал продаж);
- дать жителям региона удобный способ «покупать у своих»;
- накопить актуальную базу региональных молодых брендов для программ поддержки и офлайн-мероприятий.
**1.5. Целевая аудитория:**
- продавцы: самозанятые, ИП, микробизнес в возрасте 14–35 лет, зарегистрированные/производящие в регионе;
- покупатели: жители региона (B2C), туристы (сувениры), корпоративные заказчики (B2B, этап 3).
**1.6. Термины:**
- «Бренд» — профиль продавца на площадке;
- «Позиция» — карточка товара или услуги;
- «GMV» — товарооборот, прошедший через площадку.
**1.7. Ограничение:** площадка — витрина агентского типа. Продавец остаётся продавцом по закону; площадка на этапе 2 выступает агентом по приёму оплаты.
---
## 2. Роли пользователей
1. **Гость** — просмотр каталога, брендов, подборок без регистрации.
2. **Покупатель** — избранное, заказы/заявки, отзывы (после покупки).
3. **Продавец** — заявка на участие, кабинет бренда, управление товарами/услугами, заказами, аналитика.
4. **Модератор** — проверка заявок брендов и карточек, работа с жалобами, контент-подборки.
5. **Администратор** — пользователи, роли, справочники, настройки, финансовые операции (этап 2).
6. **Партнёр (Росмолодёжь)** — read-only доступ к сводной аналитике и реестру брендов.
---
## 3. Функциональные требования
### 3.1. Регистрация и верификация продавца (FR-01)
- Регистрация покупателя: email/телефон, вход через VK ID и «Госуслуги» (если доступно) — этап 2.
- Регистрация продавца — многошаговая анкета: ФИО, дата рождения, статус (самозанятый/ИП/юрлицо), ИНН, регион/город, ссылки на соцсети, описание деятельности, чек-лист подтверждений (выписка/справка, фото производства).
- Заявка попадает в очередь модерации. Статусы: «на проверке», «одобрен», «на доработке», «отклонён» с причиной.
- Критерии одобрения: возраст 14–35 (или команда основателей), регистрация/производство в регионе, соответствие продукции правилам площадки (запрещённая продукция — по реестру).
### 3.2. Каталог и витрина (FR-02)
- Каталог с разделами «Товары» и «Услуги»; категории — двухуровневый деревовидный справочник (настраивается админом).
- Фильтры: категория, цена, город/район, рейтинг, наличие, «новинки», «участники грантов».
- Поиск: по названию, бренду, категории; нечёткий поиск, подсказки (suggest).
- Сортировки: популярность, новизна, цена, рейтинг.
- Карточка позиции: галерея фото (до 10), название, цена, бренд, описание, характеристики, наличие, способы получения (самовывоз/доставка), кнопка «В корзину» / «Записаться» (для услуг).
- Страница бренда: логотип, обложка, история (до 3000 знаков), регион, соцсети, все позиции, рейтинг, отзывы, знак «Участник проекта Росмолодёжи».
### 3.3. Корзина, заказы, оплата (FR-03)
- Этап 1 (MVP): корзина формирует «заявку» — заказ с контактами покупателя, продавец получает уведомление и подтверждает; оплата напрямую продавцу (наличные/перевод/СБП по договорённости). Площадка фиксирует сделку для статистики.
- Этап 2: онлайн-оплата через платёжный агрегатор (ЮKassa и аналог) по агентской схеме: сплит-платежи, зачисление продавцу за вычетом комиссии, возвраты, чеки (54-ФЗ), реестр выплат в админке.
- Статусы заказа: «новый», «подтверждён», «оплачен», «собран», «передан в доставку», «выполнен», «отменён», «возврат».
- Личный кабинет покупателя: история заказов/заявок, избранное, повтор заказа.
### 3.4. Блок услуг (FR-04)
- Карточка услуги: формат (онлайн/офлайн), длительность, цена/«от», график доступности.
- Запись: выбор слота из календаря продавца; продавец подтверждает слот; напоминания за 24 ч.
- Этап 2: предоплата/депозит через агрегатор.
### 3.5. Отзывы и рейтинг (FR-05)
- Отзыв доступен только после подтверждённого заказа (защита от накруток); оценка 1–5 + текст + фото.
- Рейтинг бренда = среднее оценок позиций; ответ бренда на отзыв.
- Модерация отзывов: жалоба → проверка модератором.
### 3.6. Личный кабинет продавца (FR-06)
- Управление профилем бренда (публикация после модерации изменений).
- CRUD позиций: черновик → отправка на модерацию → «опубликовано» / «отклонено».
- Склад: остатки, «под заказ» (срок изготовления).
- Заказы: лента входящих, смена статусов, чат/контакты с покупателем (этап 1 — контакты в заявке; этап 2 — встроенный чат или переход в Telegram-бот).
- Аналитика: просмотры, переходы, добавления в избранное, конверсия в заявку/заказ, выручка (этап 2).
- Уведомления: email + Telegram-бот (подписка по желанию).
### 3.7. Контент-разделы (FR-07)
- Подборки и подборки-лендинги к сезонам/событиям («Подарки к 8 марта», «Сделано в районе X») — собираются модератором вручную.
- Раздел «Истории брендов» (статьи/интервью).
- Баннерная зона на главной (управляется из админки).
- Новости проекта и анонсы офлайн-ярмарок с формой заявки на участие.
### 3.8. Модерация и админка (FR-08)
- Очереди: заявки брендов, карточки, отзывы (по жалобам), жалобы на товары.
- Массовые действия, фильтры, назначение ответственного модератора.
- Справочники: категории, регионы/города, пункты выдачи, запрещённая продукция, комиссии.
- Пользователи и роли; журнал действий (audit log).
- Экспорт реестра брендов в XLSX/CSV; read-only дашборд для партнёра Росмолодёжи (FR: отчёт по брендам, регионам, категориям).
### 3.9. Уведомления (FR-09)
- Каналы: email (обязательно), Telegram-бот (опционально), push (этап 2).
- Триггеры: смена статуса заявки/заказа, новый отзыв, напоминание о записи, публикация, итоги модерации.
### 3.10. Аналитика заказчика (FR-10)
- Дашборд: число брендов (всего/активных), позиций, заказов, GMV, конверсия, география.
- Источники трафика (интеграция с Яндекс.Метрикой), воронка каталог → карточка → корзина → заказ.
---
## 4. Модель данных (основные сущности)
- **User** — id, роль, ФИО, телефон, email, дата рождения, регион, дата регистрации.
- **Brand (SellerProfile)** — user_id, название, логотип, обложка, история, статус верификации, статус ИП/самозанятости, ИНН, город, соцсети, рейтинг, знаки («грантополучатель» и т.п.).
- **Category** — id, parent_id, название, тип (товар/услуга), порядок сортировки.
- **Product** — brand_id, category_id, название, описание, цена, фото[], атрибуты (JSON), остаток, срок изготовления, статус модерации.
- **Service** — brand_id, категория, формат (онлайн/офлайн), длительность, цена, слоты расписания.
- **Order / OrderItem** — покупатель, бренд(-ы), позиции, сумма, статус, способ получения, адрес/ПВЗ, способ оплаты, комиссия площадки (этап 2).
- **Review** — order_id, оценка, текст, фото[], ответ бренда, статус публикации.
- **PickupPoint** — название, адрес, часы работы, партнёр (ТЦ/вуз/МИР), активность.
- **ModerationRequest** — сущность (заявка/карточка/отзыв), решение, комментарий, модератор, дата.
- **Payout** (этап 2) — бренд, период, сумма, комиссия, статус выплаты.
- **Collection** — подборка: название, баннер, позиции[], даты публикации.
Хранение медиа — объектное хранилище (S3-совместимое) с CDN; изображения — автоматическая генерация превью (несколько размеров).
---
## 5. Интеграции
1. Платёжный агрегатор (ЮKassa или аналог) — этап 2: платежи, сплит, возвраты, чеки 54-ФЗ, вебхуки.
2. Логистика — СДЭК API (расчёт доставки, ПВЗ, трек-номера) и/или Почта России — этап 2. Этап 1: самовывоз + «доставка по договорённости».
3. Telegram-бот — уведомления и (опционально) чат продавец↔покупатель.
4. Email-сервис (SMTP / Unisender-совместимый API).
5. Яндекс.Метрика + вебвизор; цели на воронку.
6. Федеральная площадка «Создано молодыми» — обмен каталогом (API/фид); этап 3, по соглашенованному формату.
7. СМС — оператор-агрегатор (этап 2, по необходимости).
---
## 6. Нефункциональные требования
- **Нагрузка:** 5 000 уникальных пользователей/день, до 200 одновременных сессий на MVP; горизонтальная масштабируемость — без ограничений на рост каталога.
- **Доступность:** 99,5% в рабочее время; мобильный трафик ≥ 70% — дизайн mobile-first, адаптив 360–1440 px.
- **Производительность:** время отклика страниц < 2 с при 95-м перцентиле; LCP < 2,5 с на мобильных.
- **Безопасность и 152-ФЗ:** хранение и обработка ПДн на серверах в РФ; согласия на обработку ПДн; разграничение ролей; журнал действий; резервное копирование ежедневно, хранение бэкапов 30 дней; HTTPS везде.
- **SEO:** ЧПУ, мета-теги, микроразметка Schema.org (Product, Organization, Review), карта сайта, индексируемые страницы брендов и подборок.
- **Требования к платформе:** веб-приложение (адаптив), без нативных приложений на MVP; рекомендуемый стек на выбор подрядчика — например, backend Python (Django/FastAPI) или PHP (Bitrix/1C-Битрикс как готовое ядро), PostgreSQL, React/Vue фронтенд. Готовый движок маркетплейса допускается при соответствии FR.
- **Доступность (a11y):** контраст по WCAG AA, alt-тексты, управление с клавиатуры.
---
## 7. Требования к дизайну
- Фирменный стиль: логотип и айдентика проекта «Создано молодыми» (предоставляет заказчик; использование — по соглашению с Росмолодёжью).
- UI-kit: типографика, цвета, состояния компонентов (кнопки, поля, карточки, бейджи верификации).
- 2 концепции главной страницы → 1 раунд правок → финальный макет; макеты ключевых страниц: главная, каталог, карточка товара, карточка услуги, бренд, корзина/заявка, кабинет продавца (3–4 экрана), админка (2–3 экрана).
- Прототип ключевых пользовательских сценариев до отрисовки UI.
---
## 8. Этапы разработки и приёмка
**Этап 0. Подготовка (2–3 недели):** аналитика, прототипы, дизайн-концепция, финальное ТЗ. Приёмка — утверждённые макеты.
**Этап 1. MVP (3–4 недели):** FR-01, FR-02, FR-03 (заявки без онлайн-оплаты), FR-05, FR-06 (без аналитики продвинутой), FR-07, FR-08, FR-09 (email), FR-10 (базовый дашборд), SEO-база.
**Этап 2. Маркетплейс (8–10 недель):** онлайн-оплата и агентская модель, доставка (СДЭК), Telegram-бот, аналитика продавца, push, чат, СМС.
**Этап 3. Экосистема (по готовности):** B2B-витрина, обмен с федеральной площадкой, мобильное PWA, продвинутая аналитика.
**Критерии приёмки этапа 1:**
1. Все функции MVP работают по сценариям приёмочного тестирования (UTP — 20+ сценариев: регистрация продавца, модерация, публикация карточки, оформление заявки, отзыв и т.д.).
2. 0 критических и высоких дефектов; средние — с планом устранения.
3. Нагрузочное тестирование: 200 одновременных пользователей без деградации.
4. Пентест-чеклист пройден (OWASP Top 10), уязвимости высокого риска устранены.
5. SEO-чеклист, адаптив 360/768/1440 px, скорость по п. 6.
6. Передана документация: админ-инструкция, руководство продавца, схема развёртывания, доступы.
**Гарантийная поддержка:** 3 месяца с момента приёмки этапа (исправление дефектов бесплатно), далее — SLA-поддержка по отдельному договору.
---
## 9. Команда и сроки (ориентир)
- Продакт/аналитик — 0,5 ставки; дизайнер — 1 на этап 0; backend-разработчик — 1–1,5; frontend — 1; QA — 0,5; координатор контента/модерации — 1 (на стороне заказчика).
- Общий срок до запуска MVP: 5–7 недель (этап 0 — 2–3 недели, этап 1 — 3–4 недели); этап 2 — +3 месяца.
## 10. Открытые вопросы к заказчику (блокеры для старта разработки)
1. Юрлицо-оператор и схема договоров с продавцами (публичная оферта агентская / договор оказания услуг).
2. Размер комиссии площадки (для этапа 2) и модель выплат.
3. Соглашение о бренде «Создано молодыми» и доступ к федеральному API/фиду.
4. Хостинг: собственный / облако в РФ (требование 152-ФЗ) — бюджет на инфраструктуру.
5. Кто наполняет контент на старте (30–50 брендов) — ответственный со стороны заказчика.