This website requires JavaScript.
Component Diagram: API Backend â Document Management & Import Component Diagram: API Backend â Document Management & Import API Backend (Spring Boot) [system] «component» DocumentController [Spring MVC â /api/documents] CRUD for documents: search, get by ID, update metadata, upload/download file, conversation thread, batch metadata updates, and per-month density aggregation for the timeline filter widget. «component» AdminController [Spring MVC â /api/admin] Triggers asynchronous Excel/ODS mass import (requires ADMIN permission). Reports import state (IDLE/RUNNING/DONE/FAILED). «component» DocumentService [Spring Service] Core document business logic: store, update, search. Resolves persons and tags, delegates file I/O to FileService, builds dynamic JPA Specifications, and integrates with audit logging. «component» FileService [Spring Service] Wraps AWS SDK v2 S3Client. Uploads files with UUID-keyed paths, computes SHA-256 hash, downloads with content-type detection, and generates presigned URLs for OCR access. «component» MassImportService [Spring Service â @Async] Reads Excel/ODS files from /import mount. Tracks import state (IDLE/RUNNING/DONE/FAILED) and delegates to ExcelService. Returns immediately; processing runs asynchronously. «component» ExcelService [Spring Service] Parses Excel/ODS workbooks (Apache POI). Column indices configurable via application.properties. Creates/updates document records per row. «component» MinioConfig [Spring @Configuration] Creates the S3Client and S3Presigner beans with path-style access for MinIO. Validates MinIO connectivity on startup. «component» DocumentRepository [Spring Data JPA] Queries documents with Specification-based dynamic search, bidirectional conversation thread queries, full-text search with ranking and match highlighting, and transcription pipeline queue projections. «component» DocumentSpecifications [JPA Criteria API] Factory for composable predicates: hasText (full-text), hasSender, hasReceiver, isBetween (date range), hasTags (subquery AND/OR logic). «container» Web Frontend [SvelteKit] «container» PostgreSQL [PostgreSQL 16] «container» Object Storage [MinIO (S3-compatible)] «component» PersonService [Spring Service] See diagram 3e. Called by DocumentService to resolve sender / receiver persons by ID. «component» TagService [Spring Service] See diagram 3d. Called by DocumentService to find or create tags by name. Document requests [HTTP / JSON] Trigger import [HTTP / JSON] Delegates to Triggers Upload / download files Reads / writes documents Builds search predicates Resolves sender / receivers Finds or creates tags Parses Excel/ODS file Creates / updates documents Provides S3Client and S3Presigner beans PUT / GET / presigned URL objects [S3 API / HTTP] SQL queries [JDBC]