Техническая документация

Angular / Ionic

Что где лежит в коде, как запускается и что проверялось.
Версия 71ea9d0d9724 · подготовлено 7 сентября 2026

О проекте

Запись выбирается из таблицы и редактируется в форме. При отмене исходная запись должна остаться как была. После переходов Ionic таблице нужно пересчитать размеры.

Расписание, фильтры и формы редактирования. На десктопе приложение открывается в рамке телефона, на мобильном — на весь экран. Данные тестовые, сервер расписаний не подключён.

  • Демонстрационный вход test / test не является системой аутентификации.
  • 180 синтетических лабораторных записей и четыре BCP-примера не являются рабочими данными.
  • Нереализованные разделы не включены в маршрут демонстрации. Число добавляемых строк ограничено 500.

Скриншоты, схемы и исходные материалы сохранены на языке оригинала; подписи и описание переведены.

Архитектура и схемы

  • Синтетические записи покрывают демонстрируемые поля, а не заменяют таблицу пустым макетом.
  • Форма редактирует черновик; отмена не должна менять исходную запись.
  • Изменения остаются внутри браузерной сессии; серверный API расписаний в публичное демо не подключён.
Компоненты опубликованного демо
Компоненты опубликованного демо · Mermaid ↓
Основной сценарий
Основной сценарий · Mermaid ↓
Размещение опубликованной версии
Размещение опубликованной версии · Mermaid ↓

Code-map: файлы и связи

Карта привязана к версии 71ea9d0d9724. В таблице — экран или API, связанный модуль и данные.

ФункцияЭкран / APIМодульДанные / проверка
Рамка телефонаКорневой URL / iframesrc/main.ts; src/phone-preview.ts; src/global.scssDOM viewport; 390/600/768/1024/1440 px
Синхронизация адресаlogin, schedule, bcpAppComponent NavigationEnd; phone-preview message listenersame-origin/source checks; refresh QA
Демо-входlogin / users/authenticatelogin.page; AuthenticationService; fake backendtest/test; sessionStorage; login/reset QA
Расписание и фильтрыscheduleschedule.page; table component; table service180 seed-записей; фильтр/пустое состояние
Формы и удалениеschedule / Ionic modalschedule.page openNew/openEdit/confirmкопия черновика, обязательные поля; cancel/create/delete QA
Пункты забораbcp / менюbcp page; demo data serviceчетыре синтетических пункта; навигация QA
СбросСбросить свой примерAppComponent.resetDemoперезагрузка вкладки, удаление demo login; isolation QA

Как работать с картой

  1. Перед изменением найти функцию и пройти связи до API, состояния и хранилища.
  2. Проверить входы, ошибки, повторные события и зависимые сценарии.
  3. После изменения обновить карту и затронутые схемы вместе с кодом.
  4. Выполнить связанные проверки и привязать новые материалы к версии исходников.

Сценарии и API

  1. Войдите test / test и откройте расписание.
  2. Отфильтруйте записи, переключите статусы и сравните представления.
  3. Добавьте запись, проверьте обязательные поля, откройте редактирование и отмените изменение.
  4. Проверьте мобильный вид и сброс исходного набора.

Проверка опубликованной версии

CI: Portfolio static build ↗ · 71ea9d0d · версия этого демо · 2026-09-07T03:53:46Z

  • Login → schedule
  • Filtering and empty state
  • Edit cancellation leaves original record unchanged
  • Required validation and successful creation
  • Independent browser session has original dataset
  • Delete selected record
  • Reset clears tab session

Эти проверки относятся к указанной версии. Коммерческие показатели и качество моделей на независимой выборке здесь не измерялись.

Измерения

Общий ресурсный контекст VPS для статического демо · 2026-09-07T01:08:27 — 01:11:22 UTC
Общий ресурсный контекст VPS для статического демо · 2026-09-07T01:08:27 — 01:11:22 UTC · Исходные данные ↓
Измеренные повторения сценария через HTTPS · 2026-09-07T01:08:36 UTC; ограничения методики в JSON
Измеренные повторения сценария через HTTPS · 2026-09-07T01:08:36 UTC; ограничения методики в JSON · Исходные данные ↓
  • Сохранено 13 содержательных кадров фактического интерфейса.
  • Дата, сценарий и версия указаны у каждого кадра.
  • Отдельного backend-процесса на VPS нет: Nginx раздаёт статику. Ресурсы общего Nginx нельзя честно приписать одному сайту.
  • Измерено 6 повторений сценария; медиана 2390.0 мс, максимум 3282 мс. Время включает браузер и HTTPS; методика и ограничения приложены.

Запуск и эксплуатация

На компьютере демо работает внутри рамки телефона с same-origin iframe. При ширине окна до 600 px оболочка исчезает, приложение занимает весь экран. После перехода адрес синхронизируется; прямые ссылки и обновление страницы проверены.

Графики от 7 сентября 01:08–01:11 UTC сняты до визуального обновления. Это контекст статического хостинга предыдущей версии, а не новый замер скорости мобильного интерфейса.

В исходном приложении расписания приходят с сервера. Здесь используется локальный тестовый набор; это указано на экране.

Production-сборка Angular выполняется вне VPS. На сервер передаётся каталог готовых файлов, Nginx отдаёт его по HTTPS. Постоянного Node.js-процесса для этого демо нет.

Проверять /healthz, прямые маршруты после обновления страницы, вход, сохранение и отмену формы. Для отката переключить current на сохранённый каталог релиза. Данные восстанавливаются из встроенного набора.

Сборка вне VPS, на сервер уходят готовые файлы и образы с фиксированной версией. Секреты отдельно. Логи ротируются; после изменения log options контейнер нужно пересоздать. Общий docker prune не используется.

Code-map связывает экран или API с модулем и данными. При правке нужно проверить эти связи, обновить карту и прогнать затронутые сценарии: обычный проход, ошибку, повтор, сброс. Схема может устареть, поэтому её версия указана рядом.

Откат проверен 2026-09-07T00:59:39.939043+00:00: 20260907-verified → 20260907 → 20260907-verified. После каждого переключения подтверждены HTTPS, readiness и SHA. Это проверка конфигурации и артефактов на одном проверенном SHA; обратная миграция БД не выполнялась.

Стек

Angular 17Компоненты страниц, формы, маршрутизация и состояние.
Ionic 7Навигация, элементы управления, модальные формы и адаптивный интерфейс.
SlickGridТабличное представление и операции со строками.

Материалы и исходники

В репозитории есть исходный снимок от 1 мая 2024; начало разработки этим не установлено. Демо: 7 сентября 2026.

Архив материалов на языке оригинала.