Files
sparkantiplagiat-frontend/CLAUDE.md
Микаэл Оганесян 72ea8443cc
Some checks failed
CI / checks (push) Has been cancelled
feat: add plagiarism graph, domain API services, error/empty-state handling, and UI polish
- 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>
2026-04-18 15:25:21 +03:00

1.5 KiB
Raw Blame History

Tech Stack

  • Angular 21 (Signals, OnPush, Standalone)
  • TypeScript (strict)
  • Taiga UI v5, Maskito, ng-web-apis
  • Vitest + jsdom

Commands

  • Dev: npm start (поднимает dev-сервер с прокси, перед стартом выполняет env:sync)
  • Build: npm run build
  • Lint: npm run lint
  • Env sync: npm run env:sync

Rules

  • Для цветов используются только переменные цветов из src/styles/color-tokens.css.
  • Если что-то можно стилизовать через Taiga UI — делаем через него.
  • Минимум any-типов; интерфейсы API — readonly.
  • Доменные API-сервисы в src/app/core/services/*-api.service.ts (works, analysis-runs, students, groups, events, reference-sets, users, audit). Не возвращать WorksApiService в роль god-сервиса.
  • Роуты только через loadComponent(), защита — authGuard.
  • HTTP-ошибки классифицируются в core/http/error-classification.util.ts и показываются через UserErrorNotifyService.
  • Backend OpenAPI: docs/swagger.json.

Конфиг окружения

  • Правки делаются в .env (копия .env.example), затем npm run env:sync генерирует src/environments/environment.ts.
  • environment.ts в git не коммитится — это артефакт.