feat: add plagiarism graph, domain API services, error/empty-state handling, and UI polish
Some checks failed
CI / checks (push) Has been cancelled

- Add PlagiarismGraphComponent (force-graph) with legend, abbreviated names,
  risk-derived node colors, and particle animation; integrated into work, event,
  group, and student detail pages
- Extract domain API services (students, events, groups, reference-sets, users,
  analysis-runs, audit) from WorksApiService
- Add RiskLevelPipe for translating risk level values to Russian
- Replace raw IDs with entity names across all detail page overview sections
- Dashboard: remove Works tab, reorder tabs (Students, Events, Groups, Ref-sets),
  hide list cards when empty or on error
- Hide secondary blocks (runs, matches, graph, analytics) on error instead of
  showing error text; keep top-level entity load errors visible
- Refset detail: split Ingestions tab into separate list and upload cards;
  hide list card when empty or on error
- Convert analysis runs list to table; fix kv-grid vertical alignment
- Style native select[tuiSelect] to match other form fields
- Add favicon (yellow star) from sparkguardian
- Add CLAUDE.md, .env.example, proxy config, CI workflow, and Makefile

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Микаэл Оганесян
2026-04-18 15:25:21 +03:00
parent 44b80cd4b5
commit 72ea8443cc
49 changed files with 1939 additions and 589 deletions

View File

@@ -3,10 +3,15 @@
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"env:sync": "node scripts/sync-env.cjs",
"prestart": "npm run env:sync",
"prebuild": "npm run env:sync",
"prewatch": "npm run env:sync",
"start": "ng serve --proxy-config proxy.conf.cjs",
"build": "ng build",
"watch": "ng build --watch --configuration development",
"test": "ng test"
"test": "ng test",
"lint": "eslint ."
},
"private": true,
"packageManager": "npm@11.6.2",
@@ -35,6 +40,7 @@
"@taiga-ui/kit": "^5.2.0",
"@taiga-ui/polymorpheus": "^5.0.0",
"@taiga-ui/styles": "^5.2.0",
"force-graph": "^1.51.4",
"rxjs": "~7.8.0",
"tslib": "^2.3.0"
},
@@ -44,6 +50,7 @@
"@angular/compiler-cli": "^21.2.0",
"@eslint/js": "^10.0.1",
"angular-eslint": "^21.3.1",
"dotenv": "^16.4.7",
"eslint": "^10.2.0",
"jsdom": "^28.0.0",
"less": "^4.6.4",