Kahwin Berkat · Wedding HQ

Simple private breakfast nikah · her side first · 7:00–11:00AM · RM5k–7.5k

Sync: idle
Feasibility
Critical blockers
Budget band
RM5k–7.5k
Core est. (RM)

Feasibility verdict 6-week recommended

Loading…

Current focus (this week's blockers)

    Role split shine

    DomainLeadWhy it shines
    Wali & family bridgeShaRelational trust, soft invitation
    Kadi / pejabat slot, witnessesRStructural gatekeeping
    Hall contract, budget capRProvider frame, money discipline
    Catering, invites, decor, attire, MUAShaBeauty, hospitality, atmosphere
    Photographer + timelineRExecution ownership, holds the frame

    Budget guardrail

    Lean core range (RM)
    3,860 – 6,760
    10% reserve recommended on top of the core. Sheet values (if populated) reconcile against this in the Budget tab.

    Critical checklist ordered P1 → P4

    Blocker High Med Low · Lead: Sha R Both
    #ItemCritLeadBudget (RM)TimeBySourceLocal status
    Local status is a personal triage overlay only — it does not write to the Google Sheet. The Sheet (kahwin / kahwin-master) remains the shared source of truth. Use the Sheet to change a real status.

    Plan selector

    Lean core min (RM)
    3,860
    Lean core max (RM)
    6,760
    +10% reserve (RM)
    676

    Budget lines her side

    CategoryMinMaxNotes
    If you populate Est. Budget in the Sheet, the dashboard reconciles those values against this core in the table below.
    Sheet lineSheet value (RM)Core match

    Venue acceptance test

    CheckWhy
    Authority to host nikahMasjid/pejabat must be licensed for akad
    Capacity ≥ 80 (elderly seating)Enough room; elders first-row / easy access
    7–11AM accessBreakfast window only
    Drop-off + parkingElderly guests
    Toilets + prayer/ablutionWudhu for guests & officers
    Weather backupIf any outdoor element

    Seating & tables ~80 pax

    Elderly (green) seated first-row / easy access; family (amber) near; couple + VIP (purple) front. 8 per table ≈ 10 tables.
    Elderly Family Couple/VIP

    Vendor decision board

    CategoryLeadBudget (RM)Decision
    Venue (small hall / masjid bilik nikah)R1,000–1,500 (mosque often ≤500)Survey daerah via JAIS portal; confirm 80-cap
    Catering (breakfast, 80×RM12)Sha960Pick menu; no tasting needed at fixed cap
    PhotographerR800–1,500R briefs: morning light, candid, 7–11
    Attire (both, simple)Sha300–800Simple; no extra outfit changes
    Mas kahwin + hantaranBoth300–600Symbolic
    Decor / moodSha200–500Optional by default
    MUASha300–600Included
    No contacts or quotes are invented. Populate real vendor rows + [VERIFY] status in the Sheet's kahwin / kahwin-master tabs; the dashboard will overlay them here as imported tasks.

    Google Calendar adaptation read-only

    Not connected Not connected
    On Cloudflare / any device: click Connect my Calendar (uses the Web client ID in Settings) and Connect Razlan (he logs in with his own Google account). Both merge into one view — his events tagged [R]. Locally: if calendar-proxy.py is running on your Mac, Connect my Calendar uses it automatically (no login). Read-only (scope calendar.readonly) — never creates or edits events.

    Detected changes

    Connect a calendar to see event deltas.

    Capacity-aware suggestion

    No calendar signal yet.

    Live Sheet rows 0

    TabRowCategoryTaskStatusKey personBudgetNotes

    Detected changes (added / updated / deleted)

    LLM agent desk copy-only

    Copy any prompt into an LLM you trust. Boundary: the agent can surface, estimate and draft — Sha + R decide, send, book and commit.
    Select a prompt above.

    How to use Kahwin Berkat README

    1 · Run locally

    cd kahwinberkat
    python3 -m http.server 4173
    # open http://localhost:4173/
    Opening index.html directly may block Google requests (CORS). Keep the server running.

    2 · Connect your Google Sheet

    • Sheet is already wired (tabs kahwin + kahwin-master).
    • Share the Sheet as Anyone with the link → Viewer so the browser can read it.
    • Click Sync now — rows load; the Sheet sync log shows added / edited / updated / deleted.
    • Headers per row: Category, Task / Item, Status, Deadline, Key Person (Sha/R/Both), Est. Budget, qty, total, Notes.

    3 · Connect your Calendar (no OAuth needed)

    • In this folder, run the proxy that reads your existing Google token:
      python3 calendar-proxy.py
      # serves http://localhost:8787
    • In Settings, confirm Local calendar proxy = http://localhost:8787 and Your Calendar ID = primary.
    • On the Calendar tab, click Connect Calendar → it reads your calendar with no browser login.

    4 · Add Razlan's calendar (Option A)

    • Razlan shares his Google Calendar with your Google account (Google Calendar → share → your email, at least "See all event details").
    • In Settings, paste his calendar ID into Razlan's shared Calendar ID.
    • Click Connect / Check now — both calendars merge into one view; his events are prefixed [R].
    • Read-only. Nothing is written back to either calendar.

    5 · Tabs

    Overview (feasibility + budget guardrail) · Critical checklist (P1→P4) · 4/6-week plan (Sha soul vs R bones) · Budget (core vs Sheet) · Venues & tables (seating) · Calendar adaptation · Sheet sync log · LLM agent desk (copy-only prompts) · Settings.

    6 · Privacy & limits

    • Your Google OAuth token stays on your Mac (read by the proxy). The dashboard never stores it.
    • Browser OAuth (fallback) needs a Google Web client ID in Settings — not the Desktop client.
    • The Sheet is the shared source of truth; local status checkboxes are a personal overlay only.
    • This is a planning scaffold, not legal advice. Verify wali / witnesses / forms / fees / certificate with the authorised pejabat (JAWI/JAIN/JAIS/kadi).

    Settings

    Drives the Plan tab + feasibility verdict.
    Leave blank for relative-week mode. Set only after Sha + R choose.
    How often to re-fetch kahwin / kahwin-master.
    Only if direct gviz calls are blocked by CORS.
    Runs calendar-proxy.py on your Mac, reads your token. Leave blank to use browser OAuth instead.
    Defaults to primary. Used by the local proxy.
    Razlan shares his Google Calendar with your account; paste his calendar ID. Read via the same proxy.
    Only if NOT using the local proxy (e.g. public URL on another machine). Web client ID, not a secret.

    Local data

    Status overlays + sync metadata live in browser localStorage. The Sheet is never written by this dashboard.