Memudahkan setiap keluarga Melayu dan Nusantara merekod, memelihara, dan berkongsi salasilah keluarga mereka secara digital — sebelum generasi yang tahu cerita itu tiada lagi.
Menjadi platform salasilah keluarga #1 di Asia Tenggara — dibina oleh orang kita, untuk budaya kita, dalam bahasa kita.
Bilangan hubungan keluarga (family links) yang berjaya direkodkan. Setiap parent-child atau marriage link yang ditambah = satu ikatan keluarga yang diselamatkan daripada dilupakan.
Keluarga sendiri (LAN) berjaya masukkan sekurang-kurangnya 50 ahli keluarga dengan hubungan lengkap — dari atuk/nenek sampai anak saudara.
5 keluarga lain (bukan keluarga LAN) secara sukarela guna platform dan actively tambah data. Tanpa dipaksa.
Orang yang tak tech-savvy (umur 40+) boleh buat akaun, tambah 5 ahli keluarga, dan link relationships — dalam masa 10 minit tanpa bantuan.
Sekurang-kurangnya 1 orang guna wali nikah calculator atau faraid calculator untuk urusan sebenar — bukan sekadar test.
Penting juga untuk jelas apa yang kita tak nak buat — supaya tak hilang fokus:
Orang Melayu dan Nusantara semakin hilang rekod salasilah keluarga. Tradisi lisan semakin pupus — tok-tok kita yang tahu cerita makin tua. Platform sedia ada seperti Geni.com direka untuk budaya Barat (first name + surname tetap), langsung tak faham sistem penamaan Melayu (bin/binti, patronymic), gelaran (Pak Long, Mak Ngah), atau keperluan Islamic seperti wali nikah dan faraid.
Leluhur ialah platform salasilah keluarga yang dibina khas untuk budaya Melayu/Nusantara — dari cara kami simpan nama, sampai cara kami kira hubungan kekeluargaan.
| Ciri | Geni.com | Leluhur |
|---|---|---|
| Sistem nama bin/binti | ✗ Tak support | ✓ Native |
| Gelaran Melayu (Pak Long, Mak Cik) | ✗ Tiada | ✓ Auto dari birth order |
| Wali nikah calculator | ✗ Tiada | ✓ Auto dari hierarki |
| Faraid calculator | ✗ Tiada | ✓ Berdasarkan family tree |
| Kampung asal tagging | ✗ Generic location | ✓ Kampung + negeri + migrasi |
| Relationship calculator | ✓ Basic | ✓ Dalam Bahasa Melayu |
| Cerita & memori | ● Basic photos | ✓ Foto + audio + cerita |
| Bahasa Melayu UI | ✗ English only | ✓ BM first + EN |
| Collaborative editing | ✓ Ada | ✓ Invite family members |
| Free tier | ● Limited | ✓ Generous free tier |
Orang yang nak rekod salasilah keluarga besar — biasanya anak sulung atau cucu yang ambil berat.
Perlu kenal pasti wali nikah yang sah. Leluhur auto-calculate dari family tree.
Bila ada kematian, perlu tahu waris yang layak dan bahagian masing-masing.
Nak tahu "siapa dia ni?" bila jumpa family gathering. Relationship calculator selesai masalah ni.
Leluhur cover 7 negara/wilayah dalam rumpun Melayu-Nusantara — 335+ juta orang yang share akar budaya, bahasa, dan agama. Ini bukan sekadar Malaysia app — ini platform untuk seluruh rantau.
| Negara / Wilayah | Populasi | Muslim % | Sistem Nama | Struktur Keluarga | Tier | |
|---|---|---|---|---|---|---|
| 🇮🇩 | Indonesia | 284.4 juta | 87% | Pelbagai (marga, suku, tunggal, bin/binti) | Patrilineal / Matrilineal | |
| 🇲🇾 | Malaysia | 34.2 juta | 63% | Patronymic (bin/binti) | Patrilineal | |
| 🇸🇬 | Singapura | 5.7 juta | 16% | Patronymic (bin/binti) | Patrilineal | |
| 🇧🇳 | Brunei | 400 ribu | 82% | Patronymic (bin/binti) | Patrilineal | |
| 🇵🇭 | Filipina Selatan (Bangsamoro) | 5.7 juta | 90%+ | Surname Sepanyol + nama Islam | Patrilineal | |
| 🇹🇭 | Thailand Selatan (Patani) | 2 juta | 80% | Melayu tradisional / surname Thai | Patrilineal | |
| 🇰🇭 | Kemboja (Cham Muslim) | 300-700 ribu | 2% | Patronymic (reversed order) | Patrilineal |
Tier: ■■■ = Core market ■■□ = Secondary ■□□ = Niche
Market terbesar Nusantara. Tapi paling complex — setiap suku bangsa ada sistem nama yang berbeza. App kena flexible untuk handle semua.
Core market dan "home turf" kita. Highest digital literacy, strong genealogy interest, dan budaya yang kita paling faham.
Komuniti Melayu kecil tapi affluent, digital-savvy, dan deeply connected dengan keluarga di Malaysia/Indonesia. High spending power.
Ini summary semua jenis sistem nama yang app kena handle. Setiap satu perlukan input field dan logic yang berbeza.
| Jenis | Wilayah | Cara Kerja | Impak Pada App |
|---|---|---|---|
| Patronymic | Malaysia, Brunei, Singapura, Aceh, Melayu Riau, Cham | Nama + bin/binti + nama bapa. Setiap generasi berubah. | Auto-generate dari parent link. Connector options: bin, binti, binte, a/l, a/p, anak. |
| Nama Tunggal | Jawa, Sunda | Satu nama sahaja. Tiada surname. Moden: 2-3 nama. | Surname field OPTIONAL. Single name valid. Jangan force "last name". |
| Marga (Clan) | Batak | Nama + marga (clan bapa). Diwarisi patrilineal. 14+ sub-clan. | Clan/marga field. Exogamy check (tak boleh kahwin dalam marga sama). |
| Suku (Matrilineal) | Minangkabau | Suku ikut IBU, bukan bapa. 96 suku. Harta ikut garis ibu. | Matrilineal tree mode. Garis ibu = primary line. Exogamy check. |
| Birth Order Cycle | Bali (Hindu) | Wayan (1st) → Made (2nd) → Nyoman (3rd) → Ketut (4th) → reset. + I/Ni prefix + caste title. | Birth order auto-name. Caste field. Gender prefix. Cycle reset tiap 4 anak. |
| Title System | Bugis/Makassar | 13 gelaran status: Andi, Daeng, Karaeng, Puang, Opu. | Title/gelaran field. Status hierarchy. Genealogy = harta keluarga. |
| Tribal | Dayak (Kalimantan) | Nama + suku/tribe. 18 suku besar, 403+ sub-suku. | Tribal affiliation field. Longhouse/kampung tag. Bilateral tracking. |
| Surname (Sepanyol) | Bangsamoro (Filipina) | Nama Islam + surname diwarisi (Spanish-era). Family surname tetap. | Standard surname field BERSAMA nama Islam. Support both systems. |
| Dual System | Patani (Thailand) | Nama Melayu tradisional ATAU surname Thai yang di-assign. | Support both Malay traditional name + Thai official name. Dual name field. |
Nota penting: Bahasa Melayu ≠ Bahasa Indonesia. Walaupun serupa, ada beza istilah: "keluarga" (BM) vs "keluarga" (BI) sama, tapi "isteri" (BM) vs "istri" (BI), "beranak" (BM) vs "melahirkan" (BI). Perlu separate translation file, bukan copy-paste.
Walaupun majoriti Nusantara adalah Islam, app kena inclusive untuk semua — sebab dalam satu keluarga besar pun boleh ada pelbagai agama dan bangsa.
Malaysia, Indonesia, Brunei, Singapura, Patani, Bangsamoro, Cham. Features Islamic: wali nikah, faraid, nasab, Haji/Hajjah title. Mazhab Syafie majoriti SEA.
Bali (3% Indonesia), Cham Hindu minoriti. Caste system Bali affect naming. Upacara & ritual berbeza. Kena support tanpa Islamic-specific features.
Batak majoriti Kristian (Protestan/Katolik). Dayak juga ramai Kristian. Church records important untuk genealogy. Baptism dates relevant.
Dayak tradisional, Bugis (bissu). Kepercayaan tradisional masih wujud walaupun minoriti. App kena neutral — jangan assume semua Muslim.
Design principle: Islamic features (wali, faraid) = optional modules, bukan forced. Default UI neutral. User pilih nak enable features mana based on keperluan keluarga mereka. Orang Batak Kristian boleh guna app tanpa nampak faraid calculator.
Based on analisis semua negara Nusantara, ini features yang kita kena tambah dalam plan:
Bukan sekadar "first name + last name". Kena support: nama tunggal, patronymic, marga, suku, birth order cycle, titles, dual-name (official vs traditional). Ini the #1 differentiator.
Minangkabau trace garis IBU, bukan bapa. App kena boleh switch primary line dari patrilineal ke matrilineal. Affect tree visualization, inheritance, property.
Batak marga, Minang suku, Dayak tribe — ini bukan sekadar "tag". Ini identity. Kena ada dedicated field dengan exogamy rules (tak boleh kahwin dalam clan sama).
Alert kalau cuba link marriage antara orang yang sama marga (Batak) atau sama suku (Minang). Ini real cultural rule yang orang ambil serius.
Islamic: wali, faraid, nasab. Hindu: caste, upacara. Kristian: baptism, church. Semua optional — user pilih modules yang relevant.
Keluarga Nusantara selalu cross border. Orang Bugis ada family di Sabah, Sulawesi, Singapura, Johor. Satu tree, pelbagai negara.
Malaysia: Pak Long/Mak Ngah. Sunda: Teteh/Akang. Jawa: Mas/Mbak. Bali: Wayan/Made/Nyoman/Ketut. Auto dari budaya + birth order.
Support nama dalam Jawi (Arabic script), Rumi (Latin), dan Aksara Bali/Jawa untuk rekod lama. Optional field — bukan forced.
332+ juta
Kalau 1% sahaja guna Leluhur = 3.3 juta users. Kalau setiap user masukkan 20 ahli keluarga = 66 juta person records.
FamilySearch, Geni, MyHeritage — semua Western-centric. Tiada satu pun platform genealogy yang dibina khas untuk budaya Nusantara. Blue ocean.
Visualisasi family tree yang boleh zoom, pan, expand/collapse. Support ribuan ahli. Setiap node boleh klik untuk lihat profil penuh.
Nama penuh + bin/binti, tarikh lahir/meninggal, jantina, gambar, kampung asal, pekerjaan, cerita hidup. Support nama lama dan nama moden.
Link parent-child, pasangan (termasuk poligami/cerai/janda). Setiap perkahwinan boleh ada anak sendiri. Support anak angkat, anak tiri.
Jemput ahli keluarga untuk sama-sama isi data. Role-based: admin, editor, viewer. Approve system untuk tambah ahli baru.
Auto-generate nama penuh berdasarkan nama bapa. Ahmad + bapa Abu = "Ahmad bin Abu". Support bin, binti, a/l, a/p, d/o, s/o.
Auto-assign gelaran berdasarkan birth order: Pak Long, Pak Ngah, Pak Lang, Pak Cik, Pak Su. Sama untuk Mak. Boleh override dengan gelaran custom.
Auto-determine wali nikah yang sah berdasarkan hierarki fiqh: bapa → datuk → abang → anak saudara → pakcik → sepupu. Kalau wali asob tiada, turun ke wali hakim.
Pilih siapa yang meninggal, sistem auto-detect waris: anak lelaki, anak perempuan, isteri, suami, ibu, bapa, adik-beradik. Kira bahagian ikut hukum faraid.
Tag setiap ahli dengan kampung asal + tempat tinggal sekarang. Lihat peta migrasi keluarga — dari kampung ke bandar, antara negeri, ke luar negara.
"Dia ni apa dengan aku?" — pilih dua orang, sistem terangkan hubungan dalam Bahasa Melayu: "Sepupu sebelah mak, sekali removed" atau "Anak saudara bapa saudara kamu".
Simpan cerita hidup, kenangan, peristiwa penting. Attach gambar lama, dokumen, rakaman suara. Timeline view untuk setiap ahli.
Record cerita dari orang tua terus dalam app. Transkrip auto ke teks. Simpan suara nenek/atuk untuk generasi akan datang.
Upload gambar lama, tag siapa dalam gambar, auto-link ke profil. Album mengikut peristiwa: kenduri, raya, majlis.
Simpan salinan surat beranak, IC lama, surat nikah, geran tanah. Encrypted storage. Untuk rujukan generasi akan datang.
Kehidupan keluarga tak selalu straightforward. App kena handle semua senario tanpa judgement — cerai, kahwin semula, poligami, anak angkat, anak tiri. Ini realiti Nusantara.
Seorang suami boleh ada hingga 4 isteri serentak (Islam). Setiap marriage = record berasingan. marriage_order = isteri ke-berapa. Tree visualization tunjuk semua isteri dengan anak masing-masing.
Record perceraian dengan tarikh cerai. Kedua-dua pihak boleh kahwin semula (marriage baru). Anak-anak kekal linked ke marriage asal. Bekas pasangan masih visible dalam tree (garis putus-putus).
Bila kahwin dengan orang yang dah ada anak, anak tu jadi anak tiri. relation_type: step. Anak tiri nampak dalam tree tapi dengan garis berbeza (dashed). Tetap boleh trace ke ibu/bapa kandung.
relation_type: adopted. Anak angkat appear dalam tree macam anak biasa tapi boleh toggle untuk tunjuk garis ke family asal (kalau diketahui). Penting untuk faraid — anak angkat ada hukum berbeza.
Pasangan meninggal = marriage.status: meninggal. Tarikh kematian auto-detect dari person record. Kalau kahwin semula = marriage baru. Marriage lama kekal visible.
relation_type: biological tapi marriage_id: NULL. Sensitive topic — app tak judge. Data simpan private by default. Penting untuk nasab (garis keturunan Islam) yang perlukan bapa yang sah.
Macamana tree view handle family structures yang tak standard? Guna visual cues yang jelas.
| Hubungan | Garis / Visual | Warna | Nota |
|---|---|---|---|
| Perkahwinan aktif | ━━━ Garis solid tebal | ■ Hijau | Garis mendatar antara suami-isteri |
| Cerai | - - - Garis putus-putus | ■ Merah | Ex-spouse masih nampak tapi faded |
| Pasangan meninggal | ━━━ Garis solid | ■ Kelabu | Node pasangan ada marker ✝ |
| Anak kandung | ┃ Garis menegak solid | ■ Emas | Standard parent-child line |
| Anak angkat | ┄ Garis menegak putus-putus | ■ Biru | Label "angkat" pada garis |
| Anak tiri | ┄ Garis menegak putus-putus | ■ Ungu | Connect ke step-parent sahaja |
| Poligami | ━ Multiple garis dari suami | ■ Hijau | Isteri 1, 2, 3, 4 labeled. Anak grouped by marriage. |
| Anak luar nikah | ┄ Garis menegak dotted | ■ Kelabu | Hanya visible kepada admin/editor. Hidden by default. |
App bukan sekadar rekod statik — ia hidup bersama keluarga. Ingatkan events penting supaya ikatan keluarga kekal erat.
Auto-detect dari tarikh_lahir. Push notification: "Esok hari lahir Pak Long Abu — 76 tahun!" Boleh set reminder berapa hari awal (1 hari / 3 hari / 1 minggu).
Auto dari tarikh_nikah dalam marriages. "Hari ini ulang tahun perkahwinan ke-25 Pak Long & Mak Long!" Kira tahun ke-berapa automatically.
Untuk ahli yang dah meninggal — auto remind setahun sekali. "Hari ini genap 3 tahun Allahyarham Datuk Hussein meninggal dunia." Boleh set reminder untuk bacaan Yasin / kenduri arwah.
User boleh tambah tarikh custom: hari pencen, hari masuk university, hari pindah rumah, hari dapat anugerah. Attach ke person. Recurring reminder optional.
Dashboard yang tunjuk "bulan ni" / "minggu ni" — siapa birthday, anniversary, haul. Calendar view. Boleh share list ke WhatsApp group keluarga.
Dari notification, terus generate kad ucapan cantik → share WhatsApp. Birthday card dengan gambar orang tu + nama keluarga. Anniversary card untuk pasangan. Memorial card untuk haul.
User kena boleh control apa yang dia nak dapat notification — jangan spam.
| Jenis | Default | Options | Channel |
|---|---|---|---|
| 🎂 Hari lahir | ON | 1 hari / 3 hari / 1 minggu sebelum | Push notification |
| 💍 Anniversary | ON | Hari yang sama / 1 hari sebelum | Push notification |
| 🛒 Haul / Kematian | ON | 1 hari / 3 hari / 1 minggu sebelum | Push notification |
| 📝 Custom dates | OFF | Per-event toggle | Push notification |
| 👥 Ahli baru join | ON | Setiap kali / daily digest | Push notification |
| ✏ Perubahan tree | OFF | Setiap kali / daily digest | In-app only |
| 💬 Cerita baru | ON | Setiap kali / weekly digest | Push notification |
| 📅 Ringkasan mingguan | OFF | Setiap Jumaat | Push / Email |
Scope filter: User boleh pilih nak notification untuk semua orang dalam tree, atau hanya generasi terdekat (parents, siblings, children). Jangan notify pasal birthday sepupu yang kita tak pernah jumpa.
Tarikh penting untuk setiap person. Birthday & death auto-created dari persons table. Custom events manual.
Per-user notification preferences.
Bagaimana ahli keluarga dijemput masuk? App kena make it semudah mungkin — target user termasuk mak cik pakcik yang tak tech-savvy. Multiple channels supaya sesuai dengan semua orang.
Channel #1 di Nusantara. Tap "Jemput" → auto-generate message + deep link → buka WhatsApp → pilih contact/group. Message siap tulis:
Best untuk family gathering / reunion / kenduri. Satu orang show QR code → semua scan → terus join family tree. QR code boleh juga print untuk letak atas meja.
Untuk orang tua yang tak guna WhatsApp. Masukkan nombor → hantar SMS dengan link. Juga boleh invite by phone number — "Masukkan nombor Mak Cik, kita hantar jemputan."
Link leluhur.com/join/abc123 yang boleh share mana-mana: Telegram, Facebook Messenger, email, copy paste. Kalau app installed → buka terus. Kalau tak → App Store / Play Store.
Untuk ahli keluarga overseas / yang lebih formal. Auto-generate email cantik dengan preview family tree. Less common di SEA tapi perlu untuk coverage.
Dua phone tap together → auto-invite. Cool factor tinggi, tapi adoption rendah (tak semua phone support). Good for demo / wow factor. Backup kalau QR scan gagal.
Dari invite sampai masuk tree — setiap step kena frictionless.
Bila user join, dia bukan masuk sebagai "new person" — kemungkinan besar, admin dah masukkan nama dia dalam tree. So kita tanya:
Setiap ahli keluarga boleh link social media mereka — supaya family members boleh connect & follow. Bukan dalam Leluhur, tapi bridge ke platform sedia ada.
Setiap invite link = satu record. Track usage, expiry, dan siapa guna.
Social media links untuk setiap person. Satu person boleh ada banyak links.
Genealogy app ada built-in viral mechanic — setiap user secara semulajadi nak invite ahli keluarga lain. Kita kena maximise ini.
Ahmad invite Siti. Siti join, nampak tree tak lengkap. Siti invite Ali untuk isi bahagian dia pula. Chain reaction.
Fan Chart cantik → screenshot → post WhatsApp Status / IG Story → "Wah cantiknya, app apa ni?" → organic download.
QR code di meja kenduri. "Scan ni join family tree kita." 20 orang scan sekaligus. Bulk onboarding moment.
Relationship calculator result: "Dia sepupu sebelah mak, 2x removed." Share result → orang lain nak try → download app.
Notification: "Bahagian sebelah mak masih kosong. Jemput Mak Cik Siti untuk isi?" — gentle push to invite.
Seasonal push: "Raya ni jom lengkapkan salasilah! Share dengan keluarga." Family reunions = natural onboarding window.
Integrasi dengan 23andMe / MyHeritage DNA. Match DNA relatives dengan family tree sedia ada.
Upload gambar lama tanpa nama, AI suggest siapa berdasarkan persamaan wajah dengan ahli lain dalam tree.
Export family tree sebagai poster besar untuk kenduri, reunion, atau frame. PDF dan canvas format.
Flutter app untuk iOS & Android. Scan gambar lama, record audio, browse tree on the go.
Screen mobile = 6 inci. Family tree boleh ada 200+ orang. Penyelesaian: jangan cuba tunjuk semua sekaligus. Guna multiple views — setiap satu serve purpose berbeza.
User boleh switch antara 4 views. Setiap view optimized untuk use case yang berbeza.
User baru buka app, tree masih kosong. Daripada tunjuk blank screen, kita tunjuk "skeleton tree" — placeholder nodes dengan butang +. User nampak bentuk family tree dan terus faham apa yang kena isi.
Walaupun tree dah ada 50 orang, empty + placeholders tetap muncul di sekeliling focused person — atas (parents), kiri/kanan (siblings), bawah (children/spouse). Remind user ada lagi ruang untuk isi.
Placeholder tak tulis generic "Add Person". Tulis hubungan: "Bapa", "Ibu", "Abang/Kakak", "Adik", "Pasangan", "Anak". User faham apa yang dia tambah tanpa fikir.
Form tambah orang: hanya Nama + Jantina = wajib. Semua lain (tarikh lahir, kampung, bio, gambar) dalam accordion "optional". User tak overwhelmed. Boleh isi detail later.
Selepas tambah orang, terus tanya: "Jemput dia guna app?" dengan pilihan WhatsApp / SMS / Link. Atau skip. Tak force, tapi nudge pada waktu yang betul.
Progress bar / counter: "6 orang direkodkan". Bagi sense of achievement. Milestone celebrations: "Tahniah! 10 ahli keluarga pertama!" Gamification ringan.
Bila user tambah bapa "Ahmad", system auto-update nama penuh user dari "Razak" jadi "Razak bin Ahmad". Satisfying moment — user nampak data connect live.
Bottom nav 5 tab utama. Setiap tab serve purpose yang jelas.
| Tab | Fungsi | Screens |
|---|---|---|
| 🌳 Pokok | Family tree views (4 modes) | Focus View, Pedigree, List, Fan Chart + View Switcher |
| 🔍 Cari | Search & discovery | Search by name, filter by generasi/kampung/negeri, Relationship Calculator ("dia siapa dengan aku?") |
| ➕ Tambah | Quick add (FAB-style) | Add Person, Add Marriage, Add Story, Add Photo. Context-aware — kalau tengah view orang, auto-link. |
| 📖 Cerita | Stories & warisan | Timeline, Story cards, Audio recordings, Photo albums, Documents |
| 👤 Profil | Settings & account | My families, Invites, Notifications, Wali Calculator, Faraid Calculator, Settings |
Semua tree views support pinch zoom. InteractiveViewer dalam Flutter. Zoom out = nampak lebih ramai orang (nodes jadi kecil). Zoom in = detail.
Tap mana-mana node = navigate ke orang tu. Tree re-center. Back button = balik ke orang sebelum. History stack macam browser.
Long press node = quick actions popup: Edit, Add Child, Add Spouse, View Profile, Delete. Haptic feedback.
Swipe left/right pada list items = quick edit / delete. Swipe between tree views (atau guna tab switcher).
Double tap node = terus buka full profile page. Shortcut daripada single tap (navigate) → tap lagi (profile).
Drag person node ke orang lain = create relationship. "Drag Ahmad ke Fatimah = add as spouse?" Confirmation dialog.
Guna Supabase PostgreSQL dengan recursive CTE queries untuk traverse family tree. Lebih praktikal daripada graph DB (Neo4j) kerana:
Setiap "pokok salasilah" = satu family. Boleh ada ramai collaborators.
Setiap ahli keluarga = satu person. Flexible naming untuk semua budaya Nusantara.
Hubungan perkahwinan. Support poligami dan cerai.
Hubungan ibu bapa — anak. Separate table untuk support anak angkat, anak tiri.
Collaboration — siapa boleh edit family tree ni.
Cerita, kenangan, peristiwa — attach ke satu atau lebih persons.
WITH RECURSIVE descendants AS ( SELECT child_id AS person_id, 1 AS generation FROM parent_child WHERE parent_id = :person_id UNION ALL SELECT pc.child_id, d.generation + 1 FROM parent_child pc JOIN descendants d ON pc.parent_id = d.person_id ) SELECT p.*, d.generation FROM descendants d JOIN persons p ON p.id = d.person_id ORDER BY d.generation;
WITH RECURSIVE ancestors AS ( SELECT parent_id AS person_id, 1 AS generation FROM parent_child WHERE child_id = :person_id UNION ALL SELECT pc.parent_id, a.generation + 1 FROM parent_child pc JOIN ancestors a ON pc.child_id = a.person_id ) SELECT p.*, a.generation FROM ancestors a JOIN persons p ON p.id = a.person_id ORDER BY a.generation;
SELECT p.nama_panggilan,
CASE p.jantina
WHEN 'lelaki' THEN
CASE p.birth_order
WHEN 1 THEN 'Pak Long'
WHEN 2 THEN 'Pak Ngah'
WHEN 3 THEN 'Pak Lang'
WHEN 4 THEN 'Pak Njang'
WHEN 5 THEN 'Pak Cik'
WHEN 6 THEN 'Pak Su'
ELSE 'Pak ' || p.birth_order
END
WHEN 'perempuan' THEN
CASE p.birth_order
WHEN 1 THEN 'Mak Long'
WHEN 2 THEN 'Mak Ngah'
WHEN 3 THEN 'Mak Lang'
WHEN 4 THEN 'Mak Njang'
WHEN 5 THEN 'Mak Cik'
WHEN 6 THEN 'Mak Su'
ELSE 'Mak ' || p.birth_order
END
END AS gelaran
FROM persons p
WHERE p.family_id = :family_id
AND p.birth_order IS NOT NULL;
┌─────────────────────────────────────────────────┐
│ Flutter Mobile App │
│ (iOS + Android + Web) │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Tree View│ │ Profiles │ │ Stories │ │
│ │ (Custom │ │ (CRUD) │ │ (Media) │ │
│ │ Painter) │ │ │ │ │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
│ └─────────────┼───────────┘ │
│ ┌──────┴──────┐ │
│ │ Riverpod │ │
│ │ State │ │
│ └──────┬──────┘ │
│ ┌────────────┼────────────┐ │
│ ┌────┴─────┐ ┌────┴─────┐ │
│ │ Drift │ │ Supabase │ │
│ │ (SQLite) │ │ Client │ │
│ │ LOCAL │ │ REMOTE │ │
│ └──────────┘ └────┬─────┘ │
└─────────────────────┼───────────────────────────┘
│ HTTPS
┌─────────────────────┼───────────────────────────┐
│ Supabase │
│ ┌─────────┐ ┌──────┴──────┐ ┌───────────┐ │
│ │ Auth │ │ PostgreSQL │ │ Storage │ │
│ │ Google │ │ + ltree │ │ Photos │ │
│ │ Apple │ │ + pg_trgm │ │ Audio │ │
│ │ Email │ │ + RLS │ │ Docs │ │
│ └─────────┘ └─────────────┘ └───────────┘ │
│ ┌──────────────────────────────────────┐ │
│ │ Edge Functions │ │
│ │ - Wali Calculator │ │
│ │ - Faraid Calculator │ │
│ │ - Relationship Calculator │ │
│ │ - Invite System │ │
│ │ - Gelaran Auto-Compute │ │
│ │ - Exogamy Check │ │
│ └──────────────────────────────────────┘ │
└─────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────┐
│ leluhur.com │
│ (Cloudflare Pages) │
│ Landing page + App Store links + Web preview │
└─────────────────────────────────────────────────┘
Analisis kritikal terhadap plan kita — apa yang mungkin gagal, apa yang terlepas pandang, dan macamana nak address setiap satu. Sorted by severity.
| Area | Status | Nota |
|---|---|---|
| Naming systems (Nusantara) | ✓ Covered | 9 systems, data model updated |
| Tree visualization | ✓ Covered | 4 views dengan mockups |
| Complex families | ✓ Covered | Poligami, cerai, anak tiri/angkat |
| Invite system | ✓ Covered | 6 channels + flow + claim profile |
| Reminders | ✓ Covered | Birthday, anniversary, haul, custom |
| Social profiles | ✓ Covered | 9 platforms + privacy control |
| Business model | ✓ Clarified | Solo contribution project. Non-commercial. Supabase free tier cukup. |
| Privacy & legal | ✗ Baru ditambah | PDPA + UU PDP compliance framework. Perlu lawyer review. |
| Cold start / onboarding | ✗ Baru ditambah | Guided wizard + AI assist + GEDCOM import |
| Data quality & conflicts | ✗ Baru ditambah | Confidence scoring, source attribution, conflict UI |
| Merge & deduplication | ✗ Baru ditambah | Cross-family matching + reversible merge |
| GEDCOM import/export | ✗ Baru ditambah | Industry standard. Critical for migration. |
| Moderation & disputes | ✗ Baru ditambah | Report system, admin approval, lock profiles |
| Accessibility | ✗ Baru ditambah | Lite mode, font size, voice input, 3G support |
| Backup & recovery | ✗ Baru ditambah | User export, auto-backup, soft delete 90 days |
Plan kita kuat pada features dan cultural depth. Sebagai solo contribution project, fokus utama = bina tool yang berguna untuk masyarakat Nusantara. Gaps teknikal (privacy, data quality, onboarding, sync) dah di-address. Empty state problem solved dengan skeleton tree + progressive disclosure. Ready untuk mula build.
8 fasa pembangunan. Tick item yang dah siap.