This website requires JavaScript.
Component Diagram: API Backend â Persons & Family Graph Component Diagram: API Backend â Persons & Family Graph API Backend (Spring Boot) [system] «component» PersonController [Spring MVC â /api/persons] Filtered, paginated directory (type/familyOnly/hasDocuments/provisional + page/size -> PersonSearchResult). Returns documents sent/received, correspondent suggestions, person summaries with counts. PATCH /{id}/confirm clears provisional; DELETE /{id} removes a person (both WRITE_ALL). «component» RelationshipController [Spring MVC â /api/network, /api/persons/{id}/relationships] CRUD for explicit person relationships and the full family network graph (nodes + edges) used by the Stammbaum view. «component» PersonService [Spring Service] Person CRUD, alias management, filtered paged search (PersonFilter -> paired slice/count), confirm (clears provisional), delete (detaches document refs first), and merge operations (reassigns all document sender/receiver references before deleting duplicate persons). «component» RelationshipService [Spring Service] Manages explicit directional family relationships (PARENT_OF, SPOUSE_OF, SIBLING_OF, etc.) with optional date ranges and notes. «component» RelationshipInferenceService [Spring Service] Computes transitive family relationships from explicit edges to infer grandparent/grandchild, aunt/uncle, and other extended-family links for the network graph. «component» PersonRepository [Spring Data JPA] Queries persons with name search (including aliases), correspondent discovery, person summaries with document counts, paired filter-aware slice + COUNT queries (one shared WHERE clause), and merge/reassignment helpers. «component» PersonRelationshipRepository [Spring Data JPA] Reads and writes PersonRelationship records. Supports lookup by person ID, by relation type, and existence checks for deduplication. «container» Web Frontend [SvelteKit] «container» PostgreSQL [PostgreSQL 16] Person requests [HTTP / JSON] Relationship and graph requests [HTTP / JSON] Delegates to Delegates to Queries inferred graph Reads / writes persons Reads / writes relationships Reads relationships for inference SQL queries [JDBC] SQL queries [JDBC]