# Пользовательские истории: Индекс и обзор ## ✅ ВЕРИФИЦИРОВАНО: Только реально реализованные функции Angular **Дата последнего обновления:** 15 апреля 2026 GMT+3 **Статус:** Верифицировано v4.1 — полный аудит Angular-кода, добавлены пропущенные функции **Источник верификации:** `ClientApp/` (Angular 12.2.13) **Итоги аудита (Версия 4.0):** - 175 → **85 историй** (удалено 90, или ~51%) - 14 → **7 документов** (удалено 4 документа полностью + 1 устаревший индекс) - 100% оставшихся историй имеют подтверждение в исходном коде Angular --- ## 📌 Изменения в версии 4.0 ### Удалены документы (нереализованные функции) - ❌ **Документ 8: Многолётные рейсы** (US-106-120) — кроме базового отображения, всё гипотетика (трансфер услуги, переадресация багажа, риски пересадок). Базовый показ stay в Doc 4 (US-42). - ❌ **Документ 10: Производительность** (US-136-150) — Service Worker, A/B тесты, Web Workers, виртуализация — ничего нет в коде. Только базовый CacheService 30s. - ❌ **Документ 11: Продвинутые функции** (US-151-165) — конвертация валют, RTL, лояльность, IATA-поиск — не реализовано. Многоязычность уже описана в Doc 1 US-2. - ❌ **Документ 12: Граничные случаи целостности** (US-166-175) — кросс-таб синхронизация, восстановление сессии, rollback — ничего нет. ### Удалённые истории внутри сохранённых документов - **Doc 2:** US-21 (обработка ошибок сети) — нет UI обработки ошибок API - **Doc 3:** US-34 (кнопка "Очистить") — нет такой кнопки в форме - **Doc 4:** US-40, US-41 (перенесены в Doc 5), US-43 (фильтр по авиакомпании), US-44 (кнопка "Купить билет"), US-45 (живые обновления статусов в расписании) - **Doc 5:** US-57 (ограничения полёта), US-58 (рецензии), US-59 (исторические данные), US-60 (сравнение рейсов), US-61 (Print version) - **Doc 6:** US-77 (кластеризация), US-78 (выделение результатов), US-80 (топ маршруты), US-81 (легенда), US-82 (центральный офис), US-83 (ночной режим), US-84 (мобильная карта) - **Doc 7:** US-87 (Service Worker offline), US-97 (WCAG проверка контраста), US-105 (session timeout) ### Удалён устаревший файл - ❌ `USER_STORIES_VERIFIED_INDEX.md` — содержал устаревшие данные о 175 историях --- ## Обзор проекта Это набор пользовательских историй для **UI Dashboard** — React-версии онлайн доски полётов Аэрофлота. Документы организованы по функциональным областям и содержат описание целей, путей клиента и критериев приёмки. **Всего историй:** 89 пользовательских историй ✅ **Документов:** 7 **Источник:** Angular 12.2.13 (Aeroflot.Flights.Web/ClientApp) **Языки:** 9 (ru-ru, en-us, zh-cn, ko-kr, ja-jp, de-de, fr-fr, es-es, it-it) --- ## Структура документов ### 📄 [Документ 1: Навигация и элементы интерфейса](user-stories-1-navigation-ui.md) **US-1 до US-11** (11 историй) - US-1: Переключение между вкладками (Онлайн-Табло, Расписание, Карта полётов) - US-2: Переключение языка интерфейса (9 языков) - US-3: Хлебные крошки - US-4: Кнопка обратной связи - US-5: Кнопка прокрутки к началу - US-6: Боковая панель с фильтрами - US-7: Популярные запросы (popular-requests) - US-8: История поиска (in-memory) - US-9: Локализация заголовков и мета-тегов - US-10: Адаптивный дизайн - US-11: Отсутствие ошибок в консоли --- ### 📄 [Документ 2: Онлайн доска полётов](user-stories-2-online-board.md) **US-12 до US-22 (без US-21)** — 10 историй - US-12: Поиск по номеру рейса (SU 1402) - US-13: Выбор даты для поиска - US-14: Поиск по городу отправления (с автодополнением) - US-15: Поиск полётов с прибытием в город - US-16: Поиск маршрута (А → Б) - US-17: День вылета (переключение) - US-18: Фильтр по времени вылета/прибытия - US-19: Расширенный просмотр рейса - US-20: Обработка пустых результатов - US-22: Индикатор загрузки --- ### 📄 [Документ 3: Поиск расписания полётов](user-stories-3-schedule-search.md) **US-23 до US-33** — 11 историй - US-23: Переход на вкладку "Расписание" - US-24: Ввод города отправления - US-25: Ввод города прибытия - US-26: Кнопка "Обменять" - US-27: Выбор недели вылета - US-28: Поиск туров (туда и обратно) - US-29: Фильтр "Только прямые рейсы" - US-30: Фильтр по времени вылета - US-31: Фильтр по времени прибытия - US-32: Проверка валидности параметров - US-33: URL параметры расписания --- ### 📄 [Документ 4: Результаты расписания](user-stories-4-schedule-results.md) **US-35 до US-46 (без US-43, 44, 45; US-40, 41 в Doc 5)** — 7 историй - US-35: Страница результатов расписания - US-36: Переключение между днями - US-37: Навигация между неделями (week-tabs) - US-38: Расширенный просмотр полёта - US-39: Сортировка результатов (6 режимов) - US-42: Многоугольные полёты (рейсы с пересадками) - US-46: Кнопка "Назад" на странице деталей --- ### 📄 [Документ 5: Детали полёта](user-stories-5-flight-details.md) **US-40, US-41, US-47 до US-56, US-62, US-63, US-64** — 15 историй - US-40: Услуги на борту - US-41: Расписание полёта и время - US-47: Страница деталей полёта - US-48: Основная информация о полёте - US-49: Статус и детали статуса - US-50: Информация о воздушном судне - US-51: Информация об авиакомпании (operator-logo) - US-52: Информация об аэропортах (station) - US-53: Дни работы рейса - US-54: Действия с полётом (купить, регистрация, печать, поделиться) - US-55: Схема маршрута / timeline - US-56: Информация о пересадках - US-62: Поделиться информацией - US-63: Отсутствие ошибок на странице - US-64: Целостность данных --- ### 📄 [Документ 6: Карта полётов](user-stories-6-flights-map.md) **US-65 до US-79 (без US-77, 78)** — 13 историй - US-65: Переход на вкладку "Карта полётов" - US-66: Отображение маршрутов на карте (Leaflet polyline) - US-67: Выбор города отправления (city-autocomplete) - US-68: Выбор города прибытия - US-69: Обмен городов - US-70: Выбор даты - US-71: Фильтр "Внутренние рейсы" (toggle-switch) - US-72: Фильтр "Международные рейсы" - US-73: Фильтр "Соединительные рейсы" - US-74: Зуммирование (Leaflet defaults, zoom 3-6) - US-75: Панорамирование (Leaflet defaults, maxBounds) - US-76: Popup при выборе маршрута - US-79: Ссылка "Купить билет" (внешняя) --- ### 📄 [Документ 7: Обработка ошибок и доступность](user-stories-7-errors-accessibility.md) **US-85 до US-108 (без US-87, 97)** — 22 истории **Ошибки:** - US-85: Ошибка 404 - US-86: Ошибка 500 - US-88: Timeout при загрузке - US-89: Некорректный ввод - US-90: Невалидная комбинация параметров **Граничные случаи:** - US-91: Пустой результат поиска - US-92: Unicode символы - US-93: Очень длинные имена - US-94: Быстрая последовательность поисков **Доступность:** - US-95: Клавиатурная навигация (PrimeNG defaults) - US-96: ARIA-метки - US-98: Focus visible - US-99: Масштабирование текста - US-100: Сенсорная навигация **Состояние и кэш:** - US-101: Персистентное состояние (StateService) - US-102: История браузера - US-103: Обработка больших объёмов - US-104: Кэширование (CacheService, 30s) **Real-time и инфраструктура (добавлено в v4.1):** - US-105: Обновление данных в реальном времени (SignalR + FadeService) - US-106: Встроенный чат-бот - US-107: Canonical URL и SEO мета-теги по страницам - US-108: Отображение версии API (debug-режим) --- ## Статистика | Документ | Диапазон | Историй | Статус | | ------------------------ | -------------------------------- | ------- | --------------------------- | | 1. Навигация | US-1 до US-11 | 11 | ✅ Все реализованы | | 2. Онлайн-Табло | US-12 до US-22 | 10 | ✅ Все реализованы | | 3. Поиск расписания | US-23 до US-33 | 11 | ✅ Все реализованы | | 4. Результаты расписания | US-35-39, 42, 46 | 7 | ✅ Все реализованы | | 5. Детали полёта | US-40, 41, 47-56, 62-64 | 15 | ✅ Все реализованы | | 6. Карта полётов | US-65-76, 79 | 13 | ✅ Все реализованы | | 7. Ошибки и доступность | US-85-86, 88-96, 98-104, 105-108 | 22 | ✅ Все реализованы | | **ИТОГО** | **89 историй** | **89** | ✅ Полностью верифицировано | --- ## Удалённые документы и истории ### Полностью удалённые документы | Документ | Историй | Причина | | ------------------------------------ | ------- | ----------------------------------------------- | | 8. Многолётные рейсы (US-106-120) | 15 | Только базовый показ работает (см. Doc 4 US-42) | | 10. Производительность (US-136-150) | 15 | Service Worker, A/B, Web Workers — нет в коде | | 11. Продвинутые функции (US-151-165) | 15 | Валюта, лояльность, RTL, IATA-поиск — нет | | 12. Граничные случаи (US-166-175) | 10 | Кросс-таб синхронизация, recovery — нет | | **Всего удалено** | **55** | | ### Удалённые истории внутри сохранённых документов | Doc | Удалено | Причина | | --------- | -------------- | ------------------------------------------------------------- | | 2 | US-21 | Нет UI обработки сетевых ошибок | | 3 | US-34 | Нет кнопки "Очистить" в форме | | 4 | US-43,44,45 | Нет фильтра по авиакомпании, кнопки "Купить", live-обновлений | | 5 | US-57-61 | Нет ограничений, рецензий, истории, сравнения, print-версии | | 6 | US-77,78,80-84 | Нет кластеризации, выделения, легенды, ночного режима, моб. | | 7 | US-87,97,105 | Нет Service Worker, WCAG-проверки контраста, session timeout | | **Всего** | **35** | | --- ## Источник верификации Каждая оставшаяся история подтверждена в исходном коде по следующим путям: - `ClientApp/src/app/features/online-board/` — Doc 2 - `ClientApp/src/app/features/schedule/` — Docs 3, 4 - `ClientApp/src/app/features/flights-map/` — Doc 6 - `ClientApp/src/app/features/popular-requests/` — Doc 1 US-7 - `ClientApp/src/app/modules/pages/details/` — Doc 5 - `ClientApp/src/app/components/` (city-autocomplete, dates-selectors, breadcrumds, search-history, page) — Doc 1, общие - `ClientApp/src/app/shared/services/` (localization, state, cache) — Doc 1, Doc 7 - `ClientApp/src/app/modules/pages/error-pages/` — Doc 7 --- ## Управление версиями | Версия | Дата | Историй | Документов | Примечания | | ------- | -------------- | ------- | ---------- | ----------------------------------------------------- | | 1.0 | Feb 2026 | 103 | 7 | Начальная версия | | 1.4 | Mar 2026 | 103 | 7 | Исправления, восстановлены US-40, US-41 | | 2.0 | Apr 2026 | 210 | 14 | Расширение (многолётные, история, производительность) | | 3.0 | Apr 2026 | 175 | 11 | Удалены удалённые: история, уведомления, аккаунты | | 4.0 | Apr 9 2026 | 85 | 7 | Кодовая верификация: удалено всё неподтверждённое | | **4.1** | **Apr 15 2026**| **89** | **7** | **Повторная верификация: +4 истории (SignalR, чат-бот, SEO, debug), обновлены тултипы, календарь, автодополнение, код-шеринг** |