Initial commit: ТЗ площадки «Создано молодыми»

This commit is contained in:
apuc committed 2026-09-23 15:28:27 +03:00
commit c327618e89
2 files changed
+219

No files matched your search

+27
View File
@@ -0,0 +1,27 @@
# Python
__pycache__/
*.py[cod]
*.egg-info/
.venv/
venv/
env/
# Environment / secrets
.env
.env.*
*.local
# Logs / temp
*.log
*.tmp
.cache/
# IDE / OS
.idea/
.vscode/
.DS_Store
Thumbs.db
# Local private data (никогда не коммитим)
private/
secrets/
+192
View File
@@ -0,0 +1,192 @@
# ТЕХНИЧЕСКОЕ ЗАДАНИЕ
## на разработку электронной площадки «Создано молодыми» (региональный уровень)
Версия 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 (10–12 недель):** 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: 3–4 месяца до запуска; этап 2 — +3 месяца.
## 10. Открытые вопросы к заказчику (блокеры для старта разработки)
1. Юрлицо-оператор и схема договоров с продавцами (публичная оферта агентская / договор оказания услуг).
2. Размер комиссии площадки (для этапа 2) и модель выплат.
3. Соглашение о бренде «Создано молодыми» и доступ к федеральному API/фиду.
4. Хостинг: собственный / облако в РФ (требование 152-ФЗ) — бюджет на инфраструктуру.
5. Кто наполняет контент на старте (30–50 брендов) — ответственный со стороны заказчика.