# Диаграммы (PlantUML) Исходники диаграмм для диссертации. Построены по фактическому коду (`src/lib/api/*`, `src/lib/features/tracking/*`, `src/lib/features/wind/*`). ## Архитектура | Файл | Что описывает | |------|----------------| | [architecture.puml](architecture.puml) | Слоистая архитектура клиента: routes → features → lib (api/map/ui/state/i18n/auth/domain), внешние сервисы (Backend, предсказатель) и библиотеки | ## Диаграммы последовательности (по всем запросам) | Файл | Что описывает | Запросы | |------|----------------|---------| | [seq-request-csrf.puml](seq-request-csrf.puml) | Сквозная обёртка `request()`: CSRF, cookie, обработка ошибок и 401 | `GET /api/csrf/` | | [seq-auth.puml](seq-auth.puml) | Проверка сессии, вход, выход | `GET /api/session/`, `GET /api/whoami/`, `POST /api/login/`, `POST /api/logout/` | | [seq-resource-crud.puml](seq-resource-crud.puml) | Единый CRUD-шаблон справочников | `/api/saved-points/`, `/api/saved-templates/`, `/api/saved-profiles/` (GET/POST/PUT/DELETE) | | [seq-prediction.puml](seq-prediction.puml) | Запуск прогноза траектории | `POST /api/predictions/` | | [seq-telemetry.puml](seq-telemetry.puml) | Загрузка истории и приём телеметрии | `GET /api/{id}/telemetry/`, `WS /api/ws/satellite/{id}/telemetry/` | | [seq-wind.puml](seq-wind.puml) | Визуализация поля ветра (статика + синхронизация) | `GET /api/v1/wind/field`, `GET /api/v1/wind/meta` | ## Диаграмма потоков данных | Файл | Что описывает | |------|----------------| | [dfd-telemetry.puml](dfd-telemetry.puml) | DFD подсистемы слежения: внешние сущности, процессы 1.0–5.0, хранилища D1–D3 | ## Рендеринг в PNG/SVG В системе есть Java, но нет CLI PlantUML. Один раз скачать jar и собрать все диаграммы: ```sh curl -L -o plantuml.jar https://github.com/plantuml/plantuml/releases/latest/download/plantuml.jar java -jar plantuml.jar -tpng docs/diagrams/*.puml # PNG java -jar plantuml.jar -tsvg docs/diagrams/*.puml # SVG (для печати) ``` Альтернатива без установки — онлайн-редактор или расширение PlantUML для VS Code (предпросмотр `Alt+D`).