Функциональные требования (FR)
В данном документе описаны функциональные требования к первой версии продукта (MVP), реализуемой в пределах Москвы. Требования оформлены в формате Use Case и покрывают основные сценарии взаимодействия пользователей с системой.
UC-01 – Просмотр ленты объявлений без авторизации (гостевой режим)
| Раздел | Описание |
|---|---|
| ID | UC-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 – Регистрация пользователя
| Раздел | Описание |
|---|---|
| ID | UC-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 – Авторизация пользователя
| Раздел | Описание |
|---|---|
| ID | UC-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 – Восстановление доступа («Забыл пароль»)
| ID | UC-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 – Публикация объявления «Потерял»
| Раздел | Описание |
|---|---|
| ID | UC-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 – Публикация объявления о находке
| Раздел | Описание |
|---|---|
| ID | UC-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 – Поиск и фильтрация объявлений в ленте
| Раздел | Описание |
|---|---|
| ID | UC-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 – Просмотр объявлений на карте
| Раздел | Описание |
|---|---|
| ID | UC-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 – Просмотр карточки объявления и совпадений
| Раздел | Описание |
|---|---|
| ID | UC-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 – Отклик на объявление и запуск чата
| Раздел | Описание |
|---|---|
| ID | UC-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: подтверждение владельца через контрольные вопросы
| Раздел | Описание |
|---|---|
| ID | UC-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 – Закрытие объявления (статус «Закрыто»)
| Раздел | Описание |
|---|---|
| ID | UC-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 – Подача жалобы на объявление/пользователя
| Раздел | Описание |
|---|---|
| ID | UC-13 |
| Название | Отправка жалобы на объявление или пользователя |
| Акторы | • Пользователь (авторизованный) • Система Lost&Found |
| Предусловия | • Пользователь авторизован • Открыта карточка объявления или чат |
| Основной поток | 1. Пользователь нажимает «Пожаловаться». 2. Система предлагает выбрать причину жалобы (спам/мошенничество/персональные данные/прочее) и оставить комментарий (опционально). 3. Пользователь отправляет жалобу. 4. Система регистрирует жалобу и показывает подтверждение «Жалоба отправлена». |
| Постусловия (успех) | • Жалоба создана и доступна для обработки модерацией |
| Постусловия (неудача) | • Жалоба не создана |
| Альтернативные потоки | A1. Пользователь отменил – система закрывает форму жалобы без отправки. |
| Исключительные потоки | E1. Ошибка отправки – система показывает сообщение и кнопку «Повторить». |
| Бизнес-правила | BR-1: Жалобы используются для реагирования: скрытие/проверка объявлений, ограничения аккаунтов. |
Критерии приёмки:
| ID | Действие | Ожидаемый результат |
|---|---|---|
| AC-01 | Отправить жалобу из карточки объявления | Жалоба регистрируется, отображается подтверждение «Жалоба отправлена» |
| AC-02 | Отправить жалобу из чата | Жалоба регистрируется аналогично AC-01 |
| AC-03 | Попытаться отправить жалобу без выбора причины | Отправка блокируется, система просит выбрать причину |
| AC-04 | Указать причину и отправить | Жалоба создаётся с выбранной причиной |
| AC-05 | Отменить отправку | Форма закрывается, жалоба не создаётся |