Перейти к основному содержимому

Функциональные требования (FR)

В данном документе описаны функциональные требования к первой версии продукта (MVP), реализуемой в пределах Москвы. Требования оформлены в формате Use Case и покрывают основные сценарии взаимодействия пользователей с системой.

UC-01 Просмотр ленты объявлений без авторизации (гостевой режим)

РазделОписание
IDUC-01
НазваниеПросмотр ленты и карты объявлений (гостевой режим)
Акторы• Пользователь (неавторизованный)
• Система Lost&Found
• API карты
Предусловия• У пользователя есть доступ к интернету
• Пользователь открывает приложение/веб-сервис без входа
Основной поток1. Пользователь открывает главную страницу/экран сервиса без авторизации.
2. Система отображает ленту активных объявлений.
3. Пользователь открывает карточку объявления из ленты.
4. Система показывает карточку объявления (тип, категория, время, место, описание/приметы, фото, статус).
5. Пользователь переключается на вкладку «Карта».
6. Система отображает карту Москвы с маркерами объявлений.
7. Пользователь нажимает на маркер объявления.
8. Система показывает краткую плашку и позволяет открыть карточку объявления.
9. Пользователь возвращается в ленту/продолжает просмотр.
Постусловия (успех)• Пользователь просмотрел ленту/карту/карточки без авторизации
• Пользовательская сессия не создана
Постусловия (неудача)• Лента/карта/карточка не загружены, пользователь видит сообщение об ошибке
Альтернативные потокиA1. Нет результатов в ленте (точка входа: шаг 2)
2.1 Система показывает «Ничего не найдено».
2.2 Система предлагает обновить страницу/снять фильтры.

A2. Попытка действия, требующего авторизации (точка входа: шаг 3/4/8)
3.1/4.1/8.1 Пользователь нажимает «Создать объявление» / «Откликнуться» / «Написать в чат».
3.2/4.2/8.2 Система перенаправляет на экран входа/регистрации.
Исключительные потокиE1. Ошибка загрузки ленты (точка входа: шаг 2)
2.1 Система показывает «Не удалось загрузить объявления» и кнопку «Повторить».

E2. Карта не загрузилась (точка входа: шаг 6)
6.1 Система показывает «Карта временно недоступна» и предлагает продолжить через ленту.

E3. Ошибка открытия карточки (точка входа: шаг 4/8)
4.1/8.1 Система показывает «Не удалось открыть объявление» и возвращает пользователя в ленту/карту.
Бизнес-правилаBR-01: Просмотр объявлений (лента/карта/карточка) доступен без авторизации.
BR-02: Создание объявлений, отклик, чат, owner-check, жалобы и закрытие объявления доступны только авторизованным пользователям.

Критерии приёмки:

IDДействиеОжидаемый результат
AC-01Открыть сервис без авторизацииОтображается лента активных объявлений, сессия пользователя не создаётся.
AC-02Открыть карточку объявления из лентыОткрывается карточка с полями: тип, категория, время, место, описание/приметы, фото (если есть), статус.
AC-03Перейти на вкладку «Карта» в гостевом режимеОтображается карта Москвы с маркерами объявлений.
AC-04Нажать на маркер на карте и открыть карточкуПоказывается превью/плашка и доступна кнопка открытия карточки объявления.
AC-05Нажать «Создать», «Откликнуться», «Чат», «Жалоба», «Закрыть»Система перенаправляет на экран входа/регистрации либо показывает, что действие недоступно без входа.

UC-02 Регистрация пользователя

РазделОписание
IDUC-02
НазваниеРегистрация нового пользователя в системе
Акторы• Пользователь (неавторизованный)
• Система Lost&Found
Предусловия• Пользователь не авторизован
• У пользователя есть доступ к интернету
• Пользователь находится на экране регистрации
Основной поток1. Пользователь открывает экран «Регистрация».
2. Пользователь вводит данные регистрации (например: email/телефон, пароль, имя/ник).
3. Пользователь принимает условия (пользовательское соглашение/политика конфиденциальности.
4. Пользователь нажимает «Зарегистрироваться».
5. Система валидирует введённые данные (формат, обязательность, уникальность email/телефона, требования к паролю).
6. Система создаёт учётную запись пользователя.
7. Система создаёт пользовательскую сессию и переводит пользователя на главный экран (лента объявлений).
Постусловия (успех)• Создана новая учётная запись пользователя.
• Пользователь авторизован (сессия создана).
• Доступны действия, требующие авторизации: создание объявления, отклик, чат, owner-check, жалобы, закрытие объявления.
Постусловия (неудача)• Учётная запись не создана, пользователь остаётся неавторизованным.
Альтернативные потокиA1. Пользователь не принимает условия (точка входа: шаг 3)
3.1 Пользователь не ставит согласия.
3.2 Система блокирует кнопку «Зарегистрироваться» и показывает сообщение «Необходимо принять условия».

A2. Пользователь отменяет регистрацию (точка входа: шаг 2)
2.1 Пользователь закрывает экран регистрации – система возвращает в гостевой режим (лента).
Исключительные потокиE1. Некорректные данные (точка входа: шаг 5)
5.1 Система подсвечивает поля с ошибками и показывает подсказки (например: «Неверный формат email», «Пароль слишком короткий»).

E2. Email/телефон уже используется (точка входа: шаг 5)
5.2 Система показывает сообщение «Аккаунт уже существует» и предлагает перейти к входу.

E3. Нет сети/ошибка сервера (точка входа: шаг 5/6)
5.3/6.1 Система показывает сообщение «Не удалось зарегистрироваться, попробуйте позже» и кнопку «Повторить».
Бизнес-правилаBR-01: Для регистрации пользователь должен принять пользовательское соглашение и политику конфиденциальности.
BR-02: Email/телефон должен быть уникальным в системе.

Критерии приёмки:

IDДействиеОжидаемый результат
AC-01Открыть экран «Регистрация» из гостевого режимаЭкран регистрации открывается, пользователь остаётся неавторизованным до завершения регистрации
AC-02Заполнить все обязательные поля корректно, принять условия и нажать «Зарегистрироваться»Создаётся аккаунт, выполняется создаётся сессия, пользователь попадает в ленту
AC-03Попробовать зарегистрироваться без принятия условийРегистрация блокируется, кнопка неактивна и появляется сообщение «Необходимо принять условия»
AC-04Ввести некорректный email/телефон или слишком слабый пароль и нажать «Зарегистрироваться»Поля с ошибками подсвечиваются, рядом отображаются понятные сообщения, аккаунт не создаётся
AC-05Попробовать зарегистрироваться с email/телефоном, который уже существует в системеОтображается сообщение «Аккаунт уже существует», предлагается перейти к входу (кнопка «Войти»)
AC-06Во время регистрации отключить интернет/получить ошибку сервера и нажать «Зарегистрироваться»Появляется сообщение «Не удалось зарегистрироваться, попробуйте позже» и кнопка «Повторить», введённые данные не очищаются

UC-03 – Авторизация пользователя

РазделОписание
IDUC-03
НазваниеВход пользователя в систему
Акторы• Пользователь
• Система Lost&Found
Предусловия• Пользователь находится на экране входа
• У пользователя есть доступ к интернету
Основной поток1. Пользователь открывает экран входа.
2. Пользователь вводит учётные данные.
3. Система валидирует данные.
4. Система создаёт пользовательскую сессию.
5. Система переводит пользователя на главную страницу и отображает ленту объявлений.
Постусловия (успех)• Пользователь авторизован.
• Становятся доступны действия, требующие авторизации: создать объявление, откликнуться, чат, подача жалобы, закрытие объявления, owner-check.
Постусловия (неудача)• Пользователь не авторизован, пользовательская сессия не создана.
Альтернативные потокиA1. Пользователь отменил вход (точка входа: шаг 2)
2.1 Пользователь закрывает экран – система возвращает пользователя на предыдущий экран (ленту в гостевом режиме).
Исключительные потокиE1. Неверные данные (точка входа: шаг 3)
3.1 Система показывает сообщение «Неверные данные».
3.2 Пользователь может повторить ввод.

E2. Нет сети (точка входа: шаг 3)
3.3 Система показывает сообщение «Нет соединения».
Бизнес-правилаBR-01: Просмотр объявлений (лента/карта/карточка) доступен без авторизации.
BR-02: Создание объявлений, отклик, чат, owner-check, подача жалобы и закрытие объявления доступны только авторизованным пользователям.

Критерии приёмки:

IDДействиеОжидаемый результат
AC-01Ввести корректные данные и выполнить входСоздаётся пользовательская сессия, пользователь попадает на главный экран (лента объявлений)
AC-02После входа открыть карточку объявления и нажать «Откликнуться»Действие доступно (не перенаправляет на вход), начинается процесс отклика
AC-03Ввести неверные данные и нажать «Войти»Появляется сообщение «Неверные данные», сессия не создаётся, можно попробовать снова
AC-04При отсутствии сети попытаться войтиПоявляется сообщение «Нет соединения», сессия не создаётся
AC-05Отменить входПользователь возвращается на предыдущий экран (например, гостевая лента), без авторизации
AC-06Проверить гостевой доступПросмотр ленты/карты/карточек доступен без входа, для действий (создать/отклик/чат/жалоба/закрыть/owner-check) требуется вход

UC-04 Восстановление доступа («Забыл пароль»)

IDUC-04
НазваниеВосстановление доступа к аккаунту (сброс пароля)
Акторы• Пользователь (неавторизованный)
• Система Lost&Found
• Сервис доставки кода/ссылки (email/SMS)
Предусловия• Пользователь не авторизован
• Пользователь находится на экране входа
• У пользователя есть доступ к интернету
Основной поток1. Пользователь на экране входа нажимает «Забыл пароль».
2. Система открывает форму восстановления и просит указать email/телефон.
3. Пользователь вводит email/телефон и нажимает «Отправить код».
4. Система валидирует формат email/телефона.
5. Система генерирует одноразовый токен восстановления и отправляет пользователю код.
6. Пользователь вводит код.
7. Система проверяет токен (валиден/не истёк/не использован).
8. Система открывает форму «Новый пароль».
9. Пользователь вводит новый пароль и подтверждение, нажимает «Сохранить».
10. Система валидирует пароль, сохраняет новый пароль, инвалидирует токен восстановления.
11. Система завершает восстановление и предлагает войти.
Постусловия (успех)• Пароль изменён
• Токен восстановления использован и больше не действует
• Пользователь может войти с новым паролем
Постусловия (неудача)• Пароль не изменён, токен не используется или помечен ошибочным, пользователь видит сообщение о причине.
Альтернативные потокиA1. Повторная отправка кода (точка входа: шаг 6)
6.1 Пользователь нажимает «Отправить ещё раз».
6.2 Система повторно отправляет код.

A2. Пользователь передумал (точка входа: шаг 2/8)
2.1/8.1 Пользователь отменяет действие система возвращает на экран входа.
Исключительные потокиE1. Некорректный формат email/телефона (точка входа: шаг 4)
4.1 Система подсвечивает поле и показывает сообщение «Проверьте формат».

E2. Аккаунт не найден (точка входа: шаг 5)
5.1 Система показывает нейтральное сообщение «Если аккаунт существует, мы отправили инструкции» (чтобы не раскрывать наличие аккаунта).

E3. Неверный/истёкший код (точка входа: шаг 7)
7.1 Система показывает «Неверный или истёкший код», предлагает повторить ввод или запросить новый.

E4. Нет сети/ошибка сервера (точка входа: шаг 5/10)
5.1/10.1 Система показывает «Не удалось выполнить операцию, попробуйте позже» и кнопку «Повторить».
Бизнес-правилаBR-01: Токен восстановления одноразовый и действует ограниченное время (15 минут).
BR-02: Новый пароль должен соответствовать требованиям безопасности (минимальная длина и т.п.).

Критерии приёмки (Acceptance Criteria)

IDДействиеОжидаемый результат
AC-01Нажать «Забыл пароль» на экране входаОткрывается форма восстановления с полем email/телефон
AC-02Ввести корректный email/телефон и отправить запросПоказывается подтверждение отправки, пользователь может перейти к вводу кода
AC-03Ввести некорректный email/телефон и отправитьПоле подсвечивается, отображается понятная ошибка, запрос не отправляется
AC-04Ввести неверный или истёкший кодОтображается сообщение «Неверный/истёкший код», есть возможность повторить ввод или запросить новый
AC-05Установить новый пароль, не соответствующий правилам (слишком короткий и т.п.)Система не сохраняет пароль, показывает ошибку рядом с полем и требования к паролю
AC-06Установить новый пароль корректноПароль успешно изменён, токен инвалидирован, пользователю предлагается выполнить вход.
AC-07Нажать «Отправить ещё раз» несколько раз подрядСрабатывает ограничение по частоте: повторная отправка откладывается с понятным сообщением

UC-05 Публикация объявления «Потерял»

РазделОписание
IDUC-05
НазваниеПубликация объявления о потере
Акторы• Пользователь (Потерявший, авторизованный)
• Система Lost&Found
• API карты
Предусловия• Пользователь авторизован
• География MVP: публикация только в пределах Москвы
Основной поток1. Пользователь нажимает «Создать объявление».
2. Выбирает тип «Потерял».
3. Выбирает категорию (вещи/документы/животные).
4. Система отображает обязательные поля по выбранной категории/типу вещи и показывает краткую подсказку «что можно/нельзя публиковать» (см. таблицу «Обязательные поля по типу вещи»).
5. Пользователь указывает дату и примерное время потери.
6. Пользователь указывает место на карте (маркер).
7. Пользователь заполняет описание/приметы и категорийные поля (см. таблицу «Обязательные поля по типу вещи»).
8. Пользователь добавляет фото (опционально).
9. При добавлении фото система показывает предупреждение о безопасной публикации (не публиковать фото номера/ФИО/адреса).
10. Пользователь нажимает «Опубликовать».
11. Система валидирует обязательные поля и географию (Москва).
12. Система создаёт объявление со статусом «Активно» и показывает карточку.
Постусловия (успех)• Объявление «Потерял» создано и видно в ленте/поиске/на карте
• Статус «Активно»
Постусловия (неудача)• Объявление не создано, пользователь видит причины
Альтернативные потокиA1. Фото не добавлено (точка входа: шаг 8)
8.1 Пользователь пропускает фото, публикация разрешена.
A2. Карта недоступна, ввод места текстом (точка входа: шаг 6)
6.1 Система сообщает «Карта временно недоступна».
6.2 Пользователь вводит место текстом (район/адрес/ориентир).
6.3 Система сохраняет текстовое место и позволяет продолжить публикацию.
A3. Не заполнены обязательные поля выбранной категории/типа вещи (точка входа: шаг 11)
11.1 Система подсвечивает незаполненные поля
11.2 Публикация блокируется до заполнения.
Исключительные потокиE1. Точка вне Москвы (точка входа: шаг 11)
11.1 Система блокирует публикацию и показывает «Публикация доступна только в Москве».
Бизнес-правилаBR-01: Для чувствительных типов запрещено публиковать персональные/опасные данные; секретные признаки используются для owner-check (см. таблицу «Обязательные поля по типу вещи»).
BR-03: География MVP, только Москва.

Обязательные поля по типу вещи:

Тип вещиПублично в объявлении (можно показывать всем)Нельзя публиковать (запрещено)Секретные признаки (только для owner-check)Фото (правила)
Кошелёк / картхолдер / картаТип (кошелёк/картхолдер/карта), цвет, материал (если известен), внешние приметы (наклейка/потёртость/рисунок)Любые номера карт, банк/платёжная система, имя на карте, фото карты/данных, что внутри кошелька/картхолдера(наличка/документы/карты)Последние 4 цифры карты (если была), какой банк/платёжная система, что было внутриМожно: общий вид кошелька/картхолдера.
Нельзя: фото карты/данных, фото содержимого с персональными данными.
Ключи (связка/ключ-карта)Тип (связка/один ключ/ключ-карта), количество ключей, приметы (брелок/форма), “есть домофонный ключ” (да/нет)Адрес/подъезд/квартира на бирке, коды домофона, надписи на ключах, любые данные для доступа в домЧто написано на брелке/жетоне, особенности домофонного ключа (форма/цвет/надписи)Можно: общий вид связки без адресов. Нельзя: фото с адресом/биркой, фото, раскрывающее доступ (коды/идентификаторы).
Техника (телефон/ноут/наушники и т.п.)Тип техники, бренд, цвет, внешние приметы (чехол/наклейка/трещина), комплектность (есть ли кейс/зарядка)IMEI/серийный номер, пароли/коды/аккаунты, фото экрана с уведомлениями/контактамиЗаставка/обои, особенности блокировки, точные уникальные дефектыМожно: фото устройства/чехла/царапин. Нельзя: фото экрана с личными данными, фото коробки/наклеек с серийником крупно.
Сумка / рюкзак / чемоданТип, цвет, примерный размер, внешние приметы (нашивки/брелоки/наклейки), дефекты (порван ремень и т.п.)Подробное содержимое (особенно деньги/техника/документы)Что лежало в скрытом кармане/отделении, внутренняя метка/подкладкаМожно: общий вид, нашивки/брелоки. Нельзя: фото содержимого с документами/картами/адресами.
Украшение/ часыТип (кольцо/цепочка/браслет/часы), материал/цвет, общий стиль/форма, камень/вставка (если есть)Точный текст гравировки/уникальная надпись, любые персональные данные на изделии,внешняя примета (скол/особенность застёжки)Гравировка/внутренние метки/уникальные детали, известные владельцуМожно: фото общего вида. Нельзя: фото, где читается гравировка/уникальный текст крупно.
ОдеждаТип одежды, цвет, размер, брендФото с персональными данными (например, бирки с ФИО/номерами), контактные данные, внешние приметы (пятно/дырка/нашивка)Редкие детали (что было в кармане, особая бирка/надпись внутри), внешние приметыМожно: фото вещи. Нельзя: фото внутренних бирок/чеков/адресных данных крупно.
ПрочееКраткий тип (текстом), основной признак/цвет, внешние приметыЛюбые персональные данные/номера/доступы, подробные секретные признакиЛюбые признаки, которые владелец может сказатьМожно: общий вид. Нельзя: фото с персональными данными/кодами/адресами.

Критерии приёмки:

IDДействиеОжидаемый результат
AC-01Заполнить все обязательные поля и нажать «Опубликовать»Объявление создаётся со статусом «Активно» и открывается его карточка
AC-02Не заполнить одно обязательное поле (категория/время/место/описание) и нажать «Опубликовать»Публикация блокируется, незаполненные поля подсвечиваются, выводится подсказка
AC-03Указать точку на карте вне Москвы и нажать «Опубликовать»Публикация блокируется, отображается сообщение «Публикация доступна только в Москве»
AC-04Пропустить добавление фото и опубликоватьПубликация разрешена, объявление создаётся без фото
AC-05После публикации открыть ленту/картуНовое объявление отображается в ленте/поиске и на карте (в пределах Москвы)
AC-06При ошибке карты на шаге выбора местаСистема предлагает повторить загрузку карты или указать место текстом (район/адрес)

UC-6 – Публикация объявления о находке

РазделОписание
IDUC-06
НазваниеПубликация объявления о находке
Акторы• Пользователь (Нашедший, авторизованный)• Система Lost&Found• API карты
Предусловия• Пользователь авторизован• География MVP: Москва
Основной поток1. Пользователь нажимает «Создать объявление».
2. Выбирает тип «Нашёл».
3. Выбирает категорию.
4. Система отображает обязательные поля для выбранной категории/типа вещи и показывает краткие подсказки «что можно/нельзя публиковать» для этой категории (см. таблицу «Обязательные поля по типу вещи»).
5. Пользователь указывает дату и примерное время находки.
6. Пользователь указывает место обнаружения на карте (маркер).
7. Пользователь заполняет описание/приметы согласно таблице «Обязательные поля по типу вещи».
8. Пользователь добавляет фото (опционально).
9. При добавлении фото система показывает подсказку по безопасной публикации фото для выбранной категории (например, «не публикуйте номера/ФИО/адреса/данные доступа»).
10. Пользователь нажимает «Опубликовать».
11. Система валидирует обязательные поля и географию (Москва).
12. Система создаёт объявление со статусом «Активно» и показывает карточку.
Постусловия (успех)• Объявление «Нашёл» опубликовано
• Статус «Активно»
• Объявление доступно в ленте/поиске/на карте
Постусловия (неудача)• Объявление не создано, пользователь видит причины
Альтернативные потокиA1. Фото не добавлено (точка входа: шаг 8)
8.1 Пользователь пропускает добавление фото, публикация разрешена.
A2. Карта недоступна, ввод места текстом (точка входа: шаг 6)
6.1 Система сообщает, что карта временно недоступна.
6.2 Пользователь вводит место текстом (район/адрес/ориентир).
6.3 Система сохраняет текстовое место и позволяет продолжить публикацию.
Исключительные потокиE1. Не заполнено обязательное поле (точка входа: шаг 11)
11.1 Система подсвечивает незаполненные поля и показывает «Заполните обязательные поля».
E2. Точка вне Москвы (точка входа: шаг 11)
11.2 Система блокирует публикацию и показывает «Публикация доступна только в Москве».
Бизнес-правилаBR-01: Дополнительные обязательные поля зависят от категории/типа вещи (см. таблицу «Обязательные поля по типу вещи»).
BR-02: При выборе категории и добавлении фото система показывает подсказки по безопасной публикации данных (что можно/нельзя).
BR-03: Модерация в MVP: нарушения выявляются по жалобам; модератор может скрыть объявление и/или ограничить аккаунт.

Критерии приёмки:

IDДействиеОжидаемый результат
AC-01Заполнить обязательные поля и опубликоватьОбъявление «Нашёл» создаётся со статусом «Активно»
AC-02Не заполнить обязательное поле и опубликоватьПубликация блокируется, показывается, что нужно заполнить
AC-03Указать точку вне МосквыПубликация блокируется сообщением о географии MVP
AC-04После публикации проверить отображениеОбъявление видно в ленте/поиске/на карте
AC-05Попытаться опубликовать при сбое картыСистема предлагает повторить загрузку карты или ввести место текстом

UC-07 – Поиск и фильтрация объявлений в ленте

РазделОписание
IDUC-07
НазваниеПоиск объявлений по типу/категории/времени/району/радиусу и тексту
Акторы• Пользователь (авторизованный или неавторизованный)
• Система Lost&Found
Предусловия• Пользователь находится в ленте объявлений
Основной поток1. Пользователь открывает фильтры.
2. Выбирает тип объявлений: «Потерял»/«Нашёл»/все.
3. Выбирает категорию.
4. Выбирает интервал времени (например, последние 24ч/7 дней или диапазон дат).
5. Выбирает район или радиус.
6. Вводит текст для поиска по описанию.
7. Нажимает «Применить».
8. Система обновляет выдачу и показывает список объявлений.
Постусловия (успех)• Пользователь видит список, соответствующий выбранным фильтрам
Постусловия (неудача)• При ошибке загрузки пользователь видит сообщение и может повторить
Альтернативные потокиA1. Нет результатов (точка входа: шаг 8)
8.1 Система показывает «Ничего не найдено» и предлагает ослабить фильтры.
Исключительные потокиE1. Ошибка получения данных (точка входа: шаг 8)
8.1 Система показывает «Не удалось загрузить объявления» и кнопку «Повторить».
Бизнес-правилаBR-01: Поиск и фильтры работают только по объявлениям Москвы в MVP.

Критерии приёмки:

IDДействиеОжидаемый результат
AC-01Применить фильтр по типу «Потерял/Нашёл»В выдаче остаются объявления выбранного типа
AC-02Применить фильтры категория + время + район/радиусВыдача соответствует всем выбранным фильтрам одновременно
AC-03Ввести текст в поиск и нажать «Применить»Выдача учитывает совпадения в описании/приметах
AC-04Сбросить фильтрыВыдача возвращается к состоянию «по умолчанию»
AC-05Получить пустую выдачу (слишком строгие фильтры)Появляется экран/сообщение «Ничего не найдено» и рекомендация ослабить фильтры
AC-06Ошибка загрузки данных (сервер недоступен)Появляется сообщение «Не удалось загрузить объявления» и кнопка «Повторить»

UC-08 – Просмотр объявлений на карте

РазделОписание
IDUC-08
НазваниеПросмотр объявлений на карте с фильтрами
Акторы• Пользователь
• Система Lost&Found
• API карты
Предусловия• Пользователь открыл вкладку «Карта»
Основной поток1. Система загружает карту (Москва).
2. Пользователь задаёт фильтры (тип, категория, время, радиус).
3. Система отображает точки (маркеры) объявлений по фильтрам.
4. Пользователь нажимает на маркер объявления.
5. Система показывает краткую плашку и кнопку «Открыть».
6. Пользователь открывает карточку объявления.
Постусловия (успех)• Пользователь видит актуальные объявления на карте и может открыть карточку
Постусловия (неудача)• При проблемах с картой показывается сообщение и вариант продолжить без карты
Альтернативные потокиA1. Слишком много точек (точка входа: шаг 3)
3.1 Система группирует точки (кластеризация) и предлагает увеличить масштаб.
Исключительные потокиE1. Карта недоступна/не загрузилась (точка входа: шаг 1)
1.1 Система показывает «Карта временно недоступна».
1.2 Система предлагает перейти к ленте и фильтрам.
Бизнес-правилаBR-01: В MVP карта показывает только объявления в пределах Москвы.

Критерии приёмки:

IDДействиеОжидаемый результат
AC-01Открыть вкладку «Карта»Карта загружается и отображает маркеры объявлений
AC-02Применить фильтры на картеОтображаются только маркеры, соответствующие фильтрам
AC-03Нажать на маркер объявленияОтображается плашка/превью с возможностью открыть карточку
AC-04Открыть карточку из плашкиОткрывается карточка объявления
AC-05При большом количестве точек в областиМаркеры группируются (кластеризация) и позволяют раскрывать точки при приближении
AC-06Карта не загрузиласьПоявляется сообщение «Карта временно недоступна» и переход к ленте

UC-09 – Просмотр карточки объявления и совпадений

РазделОписание
IDUC-09
НазваниеПросмотр карточки объявления и списка возможных совпадений
Акторы• Пользователь (просмотр)
• Система Lost&Found
Предусловия• Пользователь открыл объявление из ленты или карты
Основной поток1. Система отображает карточку: тип, категория, время, место, описание/приметы, фото, статус.
2. Система рассчитывает совпадения по параметрам: география, время, категория, приметы/описание.
3. Система показывает блок «Возможные совпадения» (если порог достигнут).
4. Пользователь открывает одно из совпадений и переходит в его карточку.
Постусловия (успех)• Пользователь может быстро перейти к потенциально подходящим объявлениям
Постусловия (неудача)• Если совпадений нет – блок не показывается, карточка доступна полностью
Альтернативные потокиA1. Совпадений нет (точка входа: шаг 3)
3.1 Система не показывает блок совпадений.
Исключительные потокиE1. Ошибка расчёта совпадений (точка входа: шаг 2)
2.1 Система скрывает блок совпадений и показывает карточку без него.
Бизнес-правилаBR-01: Совпадения показываются только при достижении порога совпадения.
BR-02:Совпадения формируются по параметрам, не по фото (MVP).

Критерии приёмки:

IDДействиеОжидаемый результат
AC-01Открыть карточку объявленияОтображаются все поля объявления и текущий статус
AC-02Открыть карточку, для которой есть совпаденияПоявляется блок «Возможные совпадения»
AC-03Открыть одно из совпаденийОткрывается карточка выбранного совпадения
AC-04Открыть карточку, где совпадений нетБлок совпадений не отображается
AC-05Проверить метод сопоставленияСовпадения формируются по параметрам (место/время/категория/приметы)

UC-10 – Отклик на объявление и запуск чата

РазделОписание
IDUC-10
НазваниеОтклик на объявление и запуск диалога в режиме owner-check
Акторы• Пользователь (авторизованный)
• Система Lost&Found
Предусловия• Пользователь авторизован
• Объявление имеет статус «Активно»
Основной поток1. Пользователь открывает карточку объявления.
2. Нажимает «Откликнуться».
3. Система создаёт диалог между сторонами (создателем объявления и откликнувшимся) со статусом «Ожидается подтверждение владельца».
4. Система открывает экран диалога.
5. Система показывает интерфейс owner-check: отправка/получение контрольных вопросов и ответов (без свободного чата до подтверждения).
Постусловия (успех)• Диалог создан и доступен участникам
• Диалог находится в режиме owner-check до подтверждения владельца
Постусловия (неудача)• Диалог не создан, пользователь видит сообщение об ошибке
Альтернативные потокиA1. Объявление закрыто (точка входа: шаг 2)
2.1 Система сообщает «Объявление закрыто», кнопка отклика недоступна.
Исключительные потокиE1. Ошибка создания диалога (точка входа: шаг 3)
3.1 Система показывает «Не удалось создать диалог» и кнопку «Повторить».
Бизнес-правилаBR-01: Отклик доступен только авторизованным пользователям.
BR-02: После отклика диалог создаётся в статусе «Ожидается подтверждение владельца» (owner-check).
BR-03: До подтверждения владельца свободное общение ограничено: разрешены только вопросы/ответы owner-check.
BR-04: После подтверждения владельца ограничения снимаются и диалог становится обычным чатом.

Критерии приёмки:

IDДействиеОжидаемый результат
AC-01Авторизованный пользователь нажимает «Откликнуться» на активном объявленииСоздаётся диалог со статусом «Ожидается подтверждение владельца» и открывается экран диалога
AC-02Попытаться откликнуться на закрытое объявлениеКнопка отклика недоступна и появляется сообщение «Объявление закрыто», диалог не создаётся
AC-03Попытаться откликнуться без авторизацииСистема переводит на экран регистрации, диалог не создаётся
AC-04Открыть созданный диалог до подтверждения владельцаОтображается режим owner-check: доступны только вопросы/ответы (свободный чат недоступен)
AC-05Повторно нажать «Откликнуться» по тому же объявлениюОткрывается существующий диалог (дубликат не создаётся)
AC-06Ошибка создания диалога (сервер/сеть)Появляется сообщение об ошибке и кнопка «Повторить», диалог не создаётся

UC-11 – Owner-check: подтверждение владельца через контрольные вопросы

РазделОписание
IDUC-11
НазваниеПодтверждение владельца перед передачей (owner-check) и перевод диалога в обычный чат
Акторы• Пользователь (Нашедший / Инициатор проверки)
• Пользователь (Потерявший / Отвечающий)
• Система Lost&Found
Предусловия• Между сторонами создан диалог по объявлению в статусе «Ожидается подтверждение владельца»
• Объявление имеет статус «Активно»
Основной поток1. Нашедший в диалоге нажимает «Проверка владельца (owner-check)».
2. Система предлагает выбрать 2–3 контрольных вопроса из шаблонов или добавить свои вопросы.
3. Нашедший выбирает/вводит вопросы и отправляет их.
4. Система показывает вопросы Потерявшему и запрашивает ответы.
5. Потерявший отвечает на вопросы и отправляет ответы.
6. Система показывает ответы Нашедшему.
7. Нашедший выбирает действие: «Подтвердить владельца» или «Отклонить».
8. Если выбран вариант «Подтвердить владельца», система фиксирует результат и переводит диалог в режим обычного чата (ограничения снимаются).
9. Система отображает участникам статус проверки (подтверждён/не подтверждён).
Постусловия (успех)• Зафиксирован результат owner-check: «Подтверждён» или «Отклонён»
• При подтверждении диалог становится обычным чатом (свободное общение доступно)
Постусловия (неудача)• Проверка не завершена (например, отсутствуют ответы), диалог остаётся в статусе «Ожидается подтверждение владельца»
Альтернативные потокиA1. Потерявший не отвечает (точка входа: шаг 5)
5.1 Система показывает статус «Ожидаются ответы».
5.2 Нашедший может изменить вопросы или повторно отправить запрос.

A2. Нашедший не подтверждает владельца (точка входа: шаг 7)
7.1 Нашедший выбирает «Отклонить».
7.2 Система фиксирует результат «Не подтверждён».
7.3 Диалог остаётся в режиме owner-check (ограничения сохраняются).
Исключительные потокиE1. Ошибка сохранения вопросов/ответов (точка входа: шаг 3–6)
Система показывает сообщение об ошибке и предлагает повторить действие.

E2. Ошибка фиксации результата (точка входа: шаг 7–8)
Система сообщает об ошибке и не меняет режим диалога.
Бизнес-правилаBR-01: До подтверждения владельца диалог работает в режиме owner-check.
BR-02: Результат owner-check фиксируется и отображается участникам диалога.
BR-03: При статусе «Подтверждён» система переводит диалог в обычный чат и снимает ограничения на общение.
BR-04: При статусе «Не подтверждён» ограничения сохраняются, повторная проверка возможна по решению нашедшего.

Критерии приёмки:

IDДействиеОжидаемый результат
AC-01Нашедший запускает owner-check и отправляет 2–3 вопросаВопросы сохраняются и становятся доступны Потерявшему для ответа
AC-02Потерявший отправляет ответы на вопросыОтветы сохраняются и отображаются Нашедшему
AC-03Нашедший нажимает «Подтвердить владельца»Статус owner-check «Подтверждён», диалог переводится в обычный чат.
AC-04После подтверждения отправить произвольное сообщение в чатСообщение отправляется и отображается в истории
AC-05Нашедший нажимает «Отклонить»Статус owner-check «Не подтверждён», диалог остаётся в режиме owner-check (ограничения сохраняются)
AC-06Потерявший не отвечает на вопросыОтображается статус «Ожидаются ответы», подтверждение невозможно до получения ответов
AC-07Ошибка сохранения вопросов/ответов/результатаПоявляется сообщение об ошибке и возможность повторить действие, режим диалога не меняется самопроизвольно

UC-12 – Закрытие объявления (статус «Закрыто»)

РазделОписание
IDUC-12
НазваниеЗакрытие объявления после возврата/нахождения
Акторы• Пользователь – автор объявления (авторизованный)
• Система Lost&Found
Предусловия• Пользователь авторизован
• Пользователь является автором объявления
• Объявление имеет статус «Активно»
Основной поток1. Автор открывает свою карточку объявления.
2. Нажимает «Закрыть объявление».
3. Система запрашивает подтверждение (да/нет).
4. Автор подтверждает закрытие.
5. Система меняет статус на «Закрыто».
6. Система убирает объявление из активной выдачи (или помечает как закрыто в списке).
Постусловия (успех)• Статус объявления «Закрыто»
Постусловия (неудача)• Статус не изменён
Альтернативные потокиA1. Автор отменил (точка входа: шаг 3)
3.1 Статус остаётся «Активно».
Исключительные потокиE1. Ошибка обновления статуса – система показывает сообщение и предлагает повторить.
Бизнес-правилаBR-1: Закрыть объявление может только автор объявления.

Критерии приёмки:

IDДействиеОжидаемый результат
AC-01Автор объявления нажимает «Закрыть объявление» и подтверждаетСтатус меняется на «Закрыто»
AC-02Не автор объявления пытается закрыть объявлениеКнопка недоступна
AC-03Отменить подтверждение закрытияСтатус остаётся «Активно»
AC-04После закрытия проверить лентеОбъявление не показывается в активной ленте
AC-05Попытаться откликнуться на закрытое объявлениеОтклик недоступен

UC-13 – Подача жалобы на объявление/пользователя

РазделОписание
IDUC-13
НазваниеОтправка жалобы на объявление или пользователя
Акторы• Пользователь (авторизованный)
• Система Lost&Found
Предусловия• Пользователь авторизован
• Открыта карточка объявления или чат
Основной поток1. Пользователь нажимает «Пожаловаться».
2. Система предлагает выбрать причину жалобы (спам/мошенничество/персональные данные/прочее) и оставить комментарий (опционально).
3. Пользователь отправляет жалобу.
4. Система регистрирует жалобу и показывает подтверждение «Жалоба отправлена».
Постусловия (успех)• Жалоба создана и доступна для обработки модерацией
Постусловия (неудача)• Жалоба не создана
Альтернативные потокиA1. Пользователь отменил – система закрывает форму жалобы без отправки.
Исключительные потокиE1. Ошибка отправки – система показывает сообщение и кнопку «Повторить».
Бизнес-правилаBR-1: Жалобы используются для реагирования: скрытие/проверка объявлений, ограничения аккаунтов.

Критерии приёмки:

IDДействиеОжидаемый результат
AC-01Отправить жалобу из карточки объявленияЖалоба регистрируется, отображается подтверждение «Жалоба отправлена»
AC-02Отправить жалобу из чатаЖалоба регистрируется аналогично AC-01
AC-03Попытаться отправить жалобу без выбора причиныОтправка блокируется, система просит выбрать причину
AC-04Указать причину и отправитьЖалоба создаётся с выбранной причиной
AC-05Отменить отправкуФорма закрывается, жалоба не создаётся