Diese Seite fasst zusammen, was in der Anwendung steckt und wie man es benutzt —
von Rollen & Rechten über Import und Qualitätsprüfung bis zur Systemkonfiguration.
Wer stattdessen Code lesen will: die technische Referenz liegt als
README.md im Projekt-Repository, ebenso vollständig auf Deutsch.
Zwei unabhängige Ebenen: die funktionale Rolle bestimmt Schreibrechte, das Capability-Profil bestimmt Leserechte — pro Rolle einzeln konfigurierbar.
| Rolle | Schreibrechte |
|---|---|
admin | Alles — inkl. Benutzerverwaltung und Systemeinstellungen |
editor | Lesen + Schreiben (Personen, Familien, Dokumente, …) |
viewer | Nur lesen |
guest | Nur lesen — JWT ohne DB-Eintrag, 24 h gültig |
WHERE
bzw. 403) — die Navigation blendet passend zusätzlich Punkte aus, ist aber nicht die eigentliche Schranke.
guest_access in den Systemeinstellungen aktivierbar.
Gäste sehen standardmäßig genealogische Daten, Orte und Quellen — aber keine Dokumente,
keine privaten/lebenden Personen, keinen KI-Review und keine Admin-Seiten.
Mein Konto (/profile.html) — Anzeigename und Sprache ändern, Passwort wechseln, 2FA verwalten, eigene Person im Stammbaum verknüpfen.
Bei aktivem SMTP: Passwort-Reset per zeitlich begrenztem Link, aus Datenschutzgründen immer generische Antwort (keine Auskunft, ob ein Konto existiert).
Zwei-Faktor-Authentifizierung (TOTP): QR-Code mit Authenticator-App scannen, Code bestätigen → Backup-Codes werden einmalig angezeigt. Login wird danach zweistufig. E-Mail-Code als Fallback, falls SMTP aktiv ist.
Admins können 2FA über require_2fa für alle Nutzer erzwingen.
allow_registration): Besucher beantragen im Login-Dialog ein
Konto, Admins genehmigen mit Rollenwahl (versendet einen „Passwort festlegen"-Link) oder lehnen ab.
Landing-Page nach dem Login (/dashboard.html) — kombiniert Zähler, Zeitleisten-Diagramme und genealogische Kennzahlen zu einem Überblick über den ganzen Baum. Zwei Auswertungen gehen über einfache Aggregation hinaus: eine Analyse der zusammenhängenden Zweige und der längste bekannte Generationen-Pfad, beide per Klick direkt im Stammbaum nachvollziehbar.
Jede Kachel und jedes Diagramm respektiert die Rolle des Betrachters — ohne Leserecht erscheint ein Schloss-Symbol statt eines dauerhaften Ladezustands.
Personen haben Grunddaten (Name inkl. Adelsprädikat/Beiname, Geburts-/Sterbejahr, ein Descriptor-Kurztext für Stammbaum und Karten), beliebig viele Ereignisse mit Datum und Ort, Quellverweise, verknüpfte Dokumente und ein Profilfoto.
Familien verbinden zwei Partner und beliebig viele Kinder, mit eigenen Ereignissen, Quellen und Dokumenten.
Sowohl die Personen- als auch die Familienliste zeigen eine Spalte mit der Anzahl verknüpfter Ereignisse — ein schneller Blick, wie gut eine Person oder Familie schon belegt ist, ohne erst hineinklicken zu müssen.
/tree.html) — Lazy-Load per Klick, Suche, Zoom, Geschwister per Drag & Drop sortierbar/fan.html) — bis 6 Generationen, Zentrum frei wechselbar/timeline.html) — Personen & Ereignisse als verbundene KnotenUpload unter /documents.html — JPEG, PNG, WebP, GIF, TIFF, PDF. SHA256-Duplikaterkennung, automatisches Thumbnail. Jedes Dokument bekommt automatisch eine 1-Seiten-Gruppe; mehrseitige Dokumente lassen sich zu Gruppen zusammenfassen (Drag & Drop zum Umsortieren, Gesamttext aus Einzeltranskriptionen). Wie bei Personen und Familien lassen sich einem Dokument mehrere Quellen zuordnen, je mit Fundstelle, Zitat und Konfidenz.
Ein Dokument lässt sich direkt mit beliebig vielen Personen, Familien und Ereignissen verknüpfen — praktisch, wenn ein Beleg (z. B. eine Urkunde) mehrere Personen gleichzeitig betrifft. Für ein Ereignis geht das in beide Richtungen: von der Ereignisseite aus ein bestehendes Dokument suchen und anhängen, oder umgekehrt vom Dokument aus ein Ereignis suchen (nach beteiligter Person, Ort, Datum oder Typ, da Ereignisse keinen eigenen Namen haben) und verknüpfen. Belegt das Dokument stattdessen ein noch gar nicht erfasstes Ereignis, muss man dafür nicht erst zur Person wechseln: „Neues Ereignis" direkt aus der Dokumentenansicht heraus legt Typ, Datum, Ort und die zugehörige Person oder Familie in einem Schritt an und verknüpft das Dokument automatisch als Beleg.
Die Dokumentenliste zeigt neben Typ und Datum auch eine Spalte „Verknüpfungen" (Anzahl verbundener Personen/Familien/Ereignisse auf einen Blick), lässt sich nach Dateiname oder Datum sortieren, und der Spaltenkopf bleibt beim Scrollen sichtbar.
/admin_import.html — zwei gleichwertige Formate, ein Ablauf: Upload → Review → Commit, jederzeit unterbrechbar.
GEDCOM 5.5.1 — der Standardweg für Daten aus Gramps, MacFamilyTree, Ancestry & Co. Export ebenfalls als GEDCOM 5.5.1 jederzeit möglich, inkl. Ereignissen, Quellen, Notizen und Datums-Qualifikatoren (ABT/BEF/AFT/BET).
JSON — eigenes Schema für Daten aus eigener Recherche, die mehr abbilden als GEDCOM erlaubt: echte Beteiligten-Rollen (Pate, Trauzeuge, Amtsperson statt nur „Subjekt"), Zitat-Seite/-Text mit Konfidenz, Orts-Koordinaten, Quellen-Hierarchie per parent_ref.
Beide Formate teilen sich Dublettenerkennung (fuzzy Namensvergleich + phonetischer Vorfilter, Konfidenz-Score Exact/Probable/Possible) und denselben zweistufigen Commit: zuerst werden alle Datensätze angelegt, dann Querverweise aufgelöst — auch wenn eine referenzierte Quelle oder Person erst später in der Datei steht.
Diese drei gehören zusammen: Ein Ereignis ist die Einheit, die belegt wird — eine Quelle liefert dafür Fundstelle, Zitat und eine Zuverlässigkeit (0–100, angelehnt an die GEDCOM-QUAY-Skala), ein Dokument ist meist der konkrete Scan dahinter. Personen und Familien erben Quellen und Zuverlässigkeit automatisch über ihre Ereignis-Beteiligung — ein Zitat direkt an der Geburt reicht, es muss nicht zusätzlich an der Person wiederholt werden.
In der Ereignisliste steht deshalb ganz am Ende jeder Zeile (vor dem Bearbeiten-Stift) eine einzige Spalte für beides zusammen: ein farbiger Kreis mit Symbol, wenn eine Quelle bewertet wurde (rot = wenig zuverlässig, gelb = mittel, grün = hoch), ein grauer Kreis-Umriss bei Quelle ohne Bewertung, ein ausgegrauter Strich bei fehlender Quelle. Ein Dropdown in der Filterleiste grenzt gezielt auf eine dieser Stufen ein (z. B. „nur unzuverlässige/fragwürdige Ereignisse anzeigen", um gezielt Nacharbeit zu finden) oder auf „ohne Quelle" — nützlich, um systematisch offene Lücken in der eigenen Recherche aufzuspüren, statt sie zufällig beim Durchklicken zu entdecken.
Quellenangaben lassen sich mit Personen, Familien, Ereignissen und Dokumenten verknüpfen — einheitlich über dasselbe Zitat-Modell (Fundstelle, Zitat, Konfidenz) — und seit der Hierarchie-Erweiterung auch untereinander gruppieren, analog zum Orte-Modell (Ort → Gemeinde → Kreis → Land).
sources.html: auf-/zuklappbarer Baum, drei übliche Ebenen (Repository → Publikation → Artikel), aber beliebig tiefNützlich vor allem nach Imports: mehrere Einzelartikel derselben Publikation (z. B. ein biographisches Lexikon) lassen sich unter einem gemeinsamen Repository-Eintrag bündeln, statt die Liste als gleichrangige Einzeleinträge zu überfluten.
Orientiert an GEDCOM 5.5.1, da Quellen darüber importiert/exportiert werden — zwei Felder werden häufig verwechselt:
| Feld | Bedeutung |
|---|---|
| Archiv / Repository | Die Institution, die das Original verwahrt — Archiv, Bibliothek, Kirchengemeinde, Online-Datenbank (z. B. „Staatsarchiv Aurich", „FamilySearch") |
| Signatur | Die genaue Fundstelle innerhalb dieser Institution — Aktenzeichen, Band/Seite, Mikrofilm-Nummer (z. B. „Rep. 135, Nr. 42") |
| Standard-Zuverlässigkeit | Optional — Vorbelegung der Konfidenz für neue Zitate dieser Quelle; bereits angelegte Zitate bleiben davon unberührt |
Kurz: Archiv/Repository beantwortet „wo?", Signatur „wo genau dort?" — wie Bibliotheksname vs. Signaturnummer im Katalog. Vollständige Feldliste inkl. GEDCOM-Tags: README.md, Abschnitt „Quellen".
Das zentrale Ortsverzeichnis (/places.html) verknüpft sich mit Ereignissen und lässt sich — analog zu den Quellen — hierarchisch gruppieren (Ort → Gemeinde → Kreis → Land).
places.html: auf-/zuklappbarer Baum, Drag & Drop zum Umhängen zwischen Ebenen oder Umsortieren, „Auf oberste Ebene"-Button — gleiche Mechanik wie bei QuellenJede Listenseite hat eine Freitextsuche, die parallel als Filter-Chips gesammelt werden (mehrere Begriffe = UND-Verknüpfung). Zusätzlich lässt sich gezielt auf eine einzelne Spalte einschränken:
Nützlich, wenn ein Suchbegriff sonst mehrdeutig wäre (ein Ort, der zufällig auch als Nachname vorkommt) oder wenn eine Spalte gar nicht Teil der normalen Freitextsuche ist (z. B. Geburts-/Sterbedatum bei Personen). Ein Tooltip am Such-Icon jeder Liste zeigt die dort verfügbaren Spalten-Schlüsselwörter — sie unterscheiden sich je nach Liste, angelehnt an deren sichtbare Spalten. Unbekannte wort:-Kombinationen fallen automatisch auf die normale Suche zurück, es kann also nichts kaputtgehen, wenn ein Doppelpunkt zufällig im Suchtext vorkommt.
/admin_quality.html — über fünfzehn regelbasierte Prüfungen, unterteilt in:
Ein datenbankweiter Dubletten-Scan (unabhängig von jedem Import) findet doppelt angelegte Personen und schlägt ein Zusammenführen vor — Feld für Feld, mit automatischer Übernahme aller Fremdschlüssel (Familien, Ereignis-Beteiligte, Dokumente, Notizen, Quellenverweise). Die Ähnlichkeitssuche kombiniert Jaro-Winkler (Tippfehler/Buchstabendreher) mit Kölner Phonetik als phonetischer Vorauswahl — robuster bei deutschen/friesischen Namensvarianten als die häufig genutzte, englisch-phonetische SOUNDEX-Funktion. Auf der Personenseite selbst gibt es zusätzlich einen „Duplikate finden"-Knopf, der gezielt nach möglichen Dubletten dieser einen Person sucht, unabhängig vom großen Scan.
/admin_settings.html — App-Name, Basis-URL, 2FA-Pflicht, Registrierung, Stammbaum-Startperson, Ereignis-Sortierung, SMTP, Audit-Log-Schalter, KI-Provider — sowie das komplette Branding der Willkommensseite (Layout, Texte, Bilder, Impressum/Datenschutz) über einen Mini-WYSIWYG-Editor, kein Deployment nötig.
app_url — ohne app_url werden
aus Sicherheitsgründen keine Links mehr verschickt.
localStorageYYYY-MM-DD / YYYY-MM / YYYY, Jahre < 1000 mit führender NulllocalStorage des
Browsers und wird nie automatisch an den Server geschickt. Vollständige Liste aller
gespeicherten Schlüssel: Technologie & Lizenzen.