Backend (9): document, person, tag, user, geschichte, notification, ocr, audit, dashboard. Frontend (8): document, person, tag, user, geschichte, notification, ocr, shared. OCR service (1): ocr-service/README.md. Each README covers: what the domain owns, explicit non-ownership, public surface (verified by grep against the codebase), internal layout, and cross-domain dependencies. Closes #400 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ocr (frontend)
UI for OCR job management, progress display, and sender-model training in the admin/enrichment panel.
What this domain owns
Components: OcrProgress.svelte, OcrTrigger.svelte, OcrTrainingCard.svelte, SegmentationTrainingCard.svelte, TrainingHistory.svelte.
Utilities: translateOcrProgress.ts (progress-state → display-string mapping), training.ts (training API helpers).
What this domain does NOT own
- OCR processing — all text recognition runs in the Python
ocr-service/container. The frontend shows job state; it does not run OCR. - Transcription block display — rendered by
document/transcription/components.
Key components
| Component | Used in | Notes |
|---|---|---|
OcrProgress.svelte |
document header, enrich panel | Progress bar and status label for an active OCR job |
OcrTrigger.svelte |
enrich panel, document detail | Button to start an OCR job; disabled when one is running |
OcrTrainingCard.svelte |
/admin/ocr |
Trigger sender-model training; shows training history |
SegmentationTrainingCard.svelte |
/admin/ocr |
Trigger segmentation training |
TrainingHistory.svelte |
/admin/ocr |
List of past training runs with status |
Backend counterpart
backend/src/main/java/org/raddatz/familienarchiv/ocr/README.md