# 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`
