How thisisankit27/f-tree works
f-tree is an offline family-tree product centered on recording people and relationships, exploring the family visually, and asking how two members are related. The Android app persists the family locally; its graph layer supports kinship answers and chart layouts. Users can also export or merge tree files, share nearby, and compose printable family books. The repository includes a desktop editor and a browser-based viewer. The README documents these capabilities; sampled source is partial, so links between less-visible subsystems are not inferred beyond documented workflows.
Main entry points: FamilyRepository.kt Family repository · FTreeApp.kt Compose screens · TreeExporter.kt Tree file transfer · TreeViewModel.kt Family charts
Components 23
Family experience
- Android app
app/src/main/java/com/vibethroughcode/ftree/MainActivity.kt - Compose screens
app/src/main/java/com/vibethroughcode/ftree/ui/FTreeApp.kt - People editing
app/src/main/java/com/vibethroughcode/ftree/ui/person/PersonEditViewModel.kt - Family charts
app/src/main/java/com/vibethroughcode/ftree/ui/tree/TreeViewModel.kt - Relation finder
app/src/main/java/com/vibethroughcode/ftree/ui/relation/RelationViewModel.kt
Family domain
- Family repository
app/src/main/java/com/vibethroughcode/ftree/data/FamilyRepository.kt - Local family database
app/src/main/java/com/vibethroughcode/ftree/data/FTreeDatabase.kt - Family graph
app/src/main/java/com/vibethroughcode/ftree/graph/FamilyGraph.kt - Kinship answers
app/src/main/java/com/vibethroughcode/ftree/graph/Kinship.kt - Chart layout
app/src/main/java/com/vibethroughcode/ftree/graph/TreeLayoutEngine.kt
Import and sharing
- Tree file transfer
app/src/main/java/com/vibethroughcode/ftree/transfer/TreeExporter.kt - Import and merge
app/src/main/java/com/vibethroughcode/ftree/ui/transfer/TransferViewModel.kt - Nearby sharing UI
app/src/main/java/com/vibethroughcode/ftree/ui/nearby/NearbyViewModel.kt - Nearby transfer
app/src/main/java/com/vibethroughcode/ftree/nearby/NearbyRepository.kt
Family books
- Book composer UI
app/src/main/java/com/vibethroughcode/ftree/ui/book/BookViewModel.kt - Book composition
app/src/main/java/com/vibethroughcode/ftree/book/BookComposer.kt - PDF output
app/src/main/java/com/vibethroughcode/ftree/book/BookPrinter.kt
Desktop and browser
- Desktop editor
desktop/renderer/app.js - Browser viewer
site/playground/main.js - Archive reader
site/playground/archive.js - Viewer graph and layout
site/playground/model.js
Other components
- Family member
- Nearby device
Connections 32
- Family member → Android app: uses
- Android app → Compose screens: opens
- Compose screens → People editing: edits people
- Compose screens → Family charts: explores tree
- Compose screens → Relation finder: asks relation
- People editing → Family repository: saves changes
- Family charts → Family repository: loads family
- Relation finder → Family repository: loads family
- Family repository → Local family database: reads and writes
- Family repository → Family graph: builds snapshot
- Relation finder → Kinship answers: finds relation
- Family charts → Chart layout: arranges chart
- Family graph → Kinship answers: provides family links
- Family graph → Chart layout: provides family links
- Family member → Tree file transfer: exports tree
- Tree file transfer → Import and merge: opens for review
- Import and merge → Family repository: merges family
- Compose screens → Nearby sharing UI: starts sharing
- Nearby sharing UI → Nearby transfer: controls transfer
- Nearby transfer → Nearby device: sends or receives
- Nearby transfer → Tree file transfer: transfers tree file
- Family member → Book composer UI: creates book
- Book composer UI → Book composition: composes pages
- Book composition → Family repository: uses family data
- Book composition → PDF output: renders book
- Family member → Desktop editor: uses editor
- Desktop editor → Viewer graph and layout: draws family
- Desktop editor → Tree file transfer: imports and exports
- Family member → Browser viewer: opens tree file
- Browser viewer → Archive reader: reads archive
- Browser viewer → Viewer graph and layout: builds and lays out
- Archive reader → Viewer graph and layout: supplies tree data