Files
familienarchiv/docs/architecture/c4/l3-frontend-3b-document-workflows.puml

3.1 KiB

Component Diagram: Web Frontend — Document WorkflowsComponent Diagram: Web Frontend — Document WorkflowsWeb Frontend (SvelteKit / SSR)[system]«component»/ (Home / Search)[SvelteKit Route] Loader: parses URL params(q, from, to, senderId,receiverId, tags), fetches/api/documents/search and/api/persons. Renderssearch form with full-text,date range, sender/receivertypeahead, and tag filters.«component»/documents/[id][SvelteKit Route] Loader: GET/api/documents/{id}. Page:metadata panel, inline fileviewer, transcription editor,annotation layer, andcomment thread.«component»/documents/[id]/edit[SvelteKit Route] Edit form withPersonTypeahead,TagInput, date/locationfields. Form action: PUT/api/documents/{id}.«component»/documents/new[SvelteKit Route] Upload form for a newdocument. Loader: GET/api/persons. Form action:POST /api/documents withmultipart file.«component»/documents/bulk-edit[SvelteKit Route] Multi-document metadataeditor. Loader: GET/api/documents/incomplete.Requires WRITE_ALL(redirects otherwise).Action: PATCH/api/documents/bulk.«component»/enrich/[id][SvelteKit Route] Guided enrichmentworkflow. Loader: GET/api/documents/{id}.Progressively savesannotations andtranscription blocks.«component»/api/persons(SvelteKit API)[SvelteKit Server Route] Proxies GET/api/persons?q=... tobackend forPersonTypeaheadsuggestions.«component»/api/tags (SvelteKitAPI)[SvelteKit Server Route] Proxies GET /api/tags tobackend for TagInputautocomplete.«component»PersonTypeahead.svelte[Svelte Component] Async autocomplete forselecting a person.Debounces input, calls/api/persons?q=.«component»TagInput.svelte[Svelte Component] Multi-tag input. Supportsfree-text entry andselecting existing tags from/api/tags.«person»User«container»API Backend[Spring Boot]Searches andbrowses[HTTPS / Browser]GET/api/documents/search,GET /api/persons[HTTP / JSON]GET/api/documents/{id},GET/api/documents/{id}/file[HTTP / JSON + Binary]PUT/api/documents/{id}[HTTP / Multipart]GET /api/persons,POST /api/documents[HTTP / JSON +Multipart]GET/api/documents/incomplete,PATCH/api/documents/bulk[HTTP / JSON]GET/POST/api/transcription,POST/api/documents/{id}/annotations[HTTP / JSON]Uses forsender/receiver filterUses forsender/receiverselectionUses for senderselectionUses for tagmanagementFetches suggestions[HTTP]Fetches existing tags[HTTP]GET /api/persons[HTTP / JSON]GET /api/tags[HTTP / JSON]