Клиентское приложение DocAI — система предзащитной проверки пакетов программной документации (ТЗ / ПМИ / ПЗ / ВКР).
- Vue 3 + Composition API
- Quasar 2
- Vue Router
- Pinia
- Axios
- Node.js 20+
- npm 9+
- Запущенный docback на
localhost:8080
npm install
cp .env.example .env
npm run devDev-сервер доступен на http://localhost:9000.
# .env.example
VITE_API_BASE_URL=http://localhost:8080Если переменная не задана, используется http://localhost:8080 (дефолт в src/boot/axios.js).
| Команда | Описание |
|---|---|
npm run dev |
Dev-сервер с hot-reload |
npm run build |
Production-сборка в dist/ |
npm run lint |
ESLint |
npm run format |
Prettier |
npm test |
Vitest unit-тесты |
| Путь | Компонент | Описание |
|---|---|---|
/login |
LoginPage.vue |
Вход по логину/email + паролю |
/register |
RegisterPage.vue |
Регистрация |
/packages |
PackagesPage.vue |
Список пакетов, создание нового |
/packages/:id |
PackageCheckPage.vue |
Запуск проверки, вкладки A / B / C, PDF-отчёт |
/profiles |
ProfilesPage.vue |
Список профилей ГОСТ |
Приватные маршруты требуют авторизации. При 401 сессия сбрасывается, пользователь перенаправляется на /login?next=....
Пакеты документов
- Создание пакета с произвольным набором DOCX/PDF-файлов
- Запуск полного pipeline: Prepare → A-quality → B-quality → C-quality
- Polling статуса проверки
- Скачивание пакета (оригиналы + отчёты) одним ZIP-архивом
Отчёт (PackageCheckPage)
- Вкладка A — структурная полнота по ГОСТ 19.x: найденные / пропущенные разделы, оценка completeness
- Вкладка B — дефекты формулировок: B1 (неоднозначность), B2 (непроверяемость), B3 (неатомарность) с подсветкой проблемных фрагментов
- Вкладка C — согласованность ТЗ ↔ ПМИ/ПЗ: статусы COVERED / PARTIAL / MISSING / CONFLICT / UNKNOWN с объяснениями LLM
- Вкладка Требования — сгруппированные требования ТЗ с кандидатами ПМИ/ПЗ
- Печать / экспорт в PDF через браузерный
window.print()
Авторизация
- JWT access-токен хранится в
localStorage(ключdocback_auth) - Refresh-токен не хранится на клиенте; при истечении access-токена пользователь проходит re-login
- Axios-интерцептор автоматически добавляет
Authorization: Bearer ...ко всем запросам
src/
├── api/
│ └── docback.js # все API-вызовы к backend
├── boot/
│ └── axios.js # настройка Axios + интерцепторы
├── components/
│ ├── CQualityView.vue # вкладка C-quality
│ ├── CreateModal.vue # диалог создания пакета
│ ├── PackageReportView.vue # агрегированный отчёт + PDF-печать
│ └── RequirementsTab.vue # вкладка «Требования»
├── pages/
│ ├── PackageCheckPage.vue # главная страница проверки
│ └── PackagesPage.vue # список пакетов
├── stores/
│ └── auth.js # Pinia store авторизации
└── router/
└── routes.js
npm testТесты находятся в src/components/__tests__/. Покрывают логику reportViewModel.js — форматирование отчёта и фильтрацию внутренних диагностических меток из объяснений LLM.