Backend (Server.WatchBody.Web): AdminAuthService — PBKDF2 (pbkdf2$100000$salt$hash) → in-memory Bearer-сессии TTL 8 ч (Admin.Login пуст → консоль отключена); 6 контроллеров /api/admin/*: login/logout; атлеты (создание — ключ wb-… возвращается один раз, смена ключа, блокировка → 401 на /api/v1); тренировки всех атлетов (фильтры/пагинация, карточка план/факт + таймлайн Lap/пульс + пульсограмма ≤600 точек), CSV (;/BOM, tech-req 2.4); программы (версии/body, активация draft, применение rules-предложения через author=admin-копию — неизменяемость версий); метрики (+weekly ISO-агрегат); план/факт (PlanSummaryService: недели от понедельника создания active-версии, performed — только плановые дни). Errata m02: ApiKeyMiddleware сужен до /api/v1/* (перехватывал статику); Kit.Routes — роут на блок AddController (NeedHttpPost_All не чейнится). Flutter Web UI (3-app\3-web\admin-web, SDK 3.47.7): Material 3 тёмная тема, NavigationRail, 6 экранов, токен sessionStorage, 401 → логин, CSV через Bearer+Blob, графики CustomPaint; без внешних pub-пакетов; build.ps1 → wwwroot\admin (сборка в .gitignore — артефакт). Тесты: Web 105/105 (m08 — 7), Core 56/56; flutter analyze 0 ошибок/варнингов; HTTP-смок хостинга/логина пройден. Эксплуатационные файлы в коммит не включены. |
||
|---|---|---|
| .. | ||
| lib | ||
| web | ||
| .gitignore | ||
| .metadata | ||
| README.md | ||
| analysis_options.yaml | ||
| build.ps1 | ||
| pubspec.lock | ||
| pubspec.yaml | ||
README.md
admin_web
A new Flutter project.
Getting Started
This project is a starting point for a Flutter application.
A few resources to get you started if this is your first Flutter project:
For help getting started with Flutter development, view the online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.