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
| Domain | Lead | Why it shines |
|---|---|---|
| Wali & family bridge | Sha | Relational trust, soft invitation |
| Kadi / pejabat slot, witnesses | R | Structural gatekeeping |
| Hall contract, budget cap | R | Provider frame, money discipline |
| Catering, invites, decor, attire, MUA | Sha | Beauty, hospitality, atmosphere |
| Photographer + timeline | R | Execution 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 synced with “4-6-week plan” sheet
Blocker High
Med Low
· Lead: Sha R Both
| # | Item | Crit | Lead | Budget (RM) | Time | By | Source | Local status |
|---|
Local status is a personal triage overlay only — it does not write to the Google Sheet. Edit the 4-6-week plan tab in the Sheet to change the critical path; it syncs here.
Plan selector
Lean core min (RM)
3,860
Lean core max (RM)
6,760
+10% reserve (RM)
676
Budget lines her side · core
| Category | Min | Max | Notes |
|---|
Sheet budget synced with “Budget” sheet
| Category | Min (RM) | Max (RM) | Notes |
|---|
Venue acceptance test
| Check | Why |
|---|---|
| Authority to host nikah | Masjid/pejabat must be licensed for akad |
| Capacity ≥ 80 (elderly seating) | Enough room; elders first-row / easy access |
| 7–11AM access | Breakfast window only |
| Drop-off + parking | Elderly guests |
| Toilets + prayer/ablution | Wudhu for guests & officers |
| Weather backup | If any outdoor element |
Seating & tables —
Elderly (green) seated first-row / easy access; family (amber) near; couple + VIP (purple) front. 8 per table.
Elderly
Family
Couple/VIP
Guest list synced with “kahwin-guest” sheet
Guests
—
Goody bag
—
Groups
—
| Group | Name | Goody bag | Status | Key person | Notes |
|---|
Vendor decision board
| Category | Lead | Budget (RM) | Decision |
|---|---|---|---|
| Venue (small hall / masjid bilik nikah) | R | 1,000–1,500 (mosque often ≤500) | Survey daerah via JAIS portal; confirm 80-cap |
| Catering (breakfast, 80×RM12) | Sha | 960 | Pick menu; no tasting needed at fixed cap |
| Photographer | R | 800–1,500 | R briefs: morning light, candid, 7–11 |
| Attire (both, simple) | Sha | 300–800 | Simple; no extra outfit changes |
| Mas kahwin + hantaran | Both | 300–600 | Symbolic |
| Decor / mood | Sha | 200–500 | Optional by default |
| MUA | Sha | 300–600 | Included |
No contacts or quotes are invented. Populate real vendor rows + [VERIFY] status in the Sheet's kahwin / kahwin-master tabs.
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.Suggested slots for checklist auto · merged calendar
Connect a calendar to auto-suggest time slots for the critical checklist and flag clashes.
| Checklist item | Est. time | Suggested slot | Calendar in that week |
|---|
Detected changes
——Connect a calendar to see event deltas.
Capacity-aware suggestion
No calendar signal yet.
Dashboard → Sheet mapping
Live Sheet rows 0
| Dashboard tab | Sheet | Row | Category / group | Task / name | Status | Key person | Budget | Notes |
|---|
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 (ID
1qjRwzVgZjnKr2x36VV2gSWUc1nDoNE2ZM_vjr1S1H-o). - Dashboard tabs map to Sheet tabs: Critical checklist → “4-6-week plan”, Budget → “Budget”, Venues & tables → “kahwin-guest” (guest list), plus kahwin + kahwin-master for vendor/task rows.
- 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.
3 · Connect your Calendar (no OAuth needed locally)
- 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:8787and Your Calendar ID =primary. - On the Calendar tab, click Connect Calendar → it reads your calendar with no browser login, then suggests checklist slots and flags clashes.
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, synced to “4-6-week plan”) · 4/6-week plan (Sha soul vs R bones) · Budget (core vs “Budget” sheet) · Venues & tables (seating + guest list from “kahwin-guest”) · Calendar adaptation (suggested slots + clashes) · Sheet sync log (mapping + changes) · LLM agent desk · 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 the mapped Sheet tabs.
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.