Logo Lanfrica
  • Home
  • Atlas
  • Insights
  • Docs
  • Sign in

© 2026 Lanfrica. All rights reserved. All copyrights of the resources shown on the Lanfrica website belong to the original copyright holders, unless explicitly stated otherwise.

Virimuje97/familyroots-africa

Record type:

software
Creator:
Vir
Host:
# FamilyRoots Namibia A family tree builder with a **configurable cultural-inheritance validation engine** (seeded with Ovaherero eanda/oruzo rules) and a **targeted family messaging** feature. ## Run it ```bash npm install npm run dev ``` Open localhost. That's it — no environment variables or accounts needed for this version; everything is stored in your browser's localStorage. ## Data model Follows the Fact/Relationship pattern from `FamilyRoots_Africa_Master_Architecture.md` (Section 4) instead of flat fields on Person: - **`Person`** holds identity, a primary photo, a media gallery, and a `facts: Fact[]` array — birth, death, occupation, biography, and every cultural trait (eanda, oruzo, ...) are all facts, not separate columns. - **`Fact`** has an open-ended `type` string (not a fixed enum), so new kinds of facts — praise names, chieftaincy installations, initiation ceremonies — are addable as data, never a schema change. Traits use the convention `trait: ` (e.g. `trait:eanda`), so the same mechanism that lets you add a new fact type also lets you add a new cultural trait, with no special-casing anywhere in the code. - **`Relationship`** is a first-class record between two people (`parent-child` or `partnership`), with its own `facts[]` for things like marriage date/type. This correctly models multiple marriages — each is its own record, not a slot on a person — and replaces the old `parents[]`/`spouses[]`/`children[]` arrays. `lib/facts.ts` and `lib/relationships.ts` are the only places that know how to read/derive from this shape (get a person's children, resolve a union's mother/father, etc.) — components never touch `facts[]` or `personIds` directly. Note: localStorage keys were bumped to `:v2` for this migration, so existing browser data from the previous flat-field version isn't read back — you'll see the seed data fresh rather than a crash on load. ## What's actually implemented - **Tree builder** — add father/mother/spouse/child/ …

Visit

github.com

Languages

Herero