Oracle3
Open-source trading engine and MCP server for prediction markets. Fee-aware no-arbitrage trading across related contracts, live on Kalshi, Polymarket and Solana or on paper.
Funeral cover sign-up and member portal
Translation pending
FinanceTypeScript · CSSGitHub @Wandile-pngOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Khumbula funeral services
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗White-label sign-up, member portal and subscription billing for South African funeral homes. Each funeral home (tenant) gets its own branded pages at /<slug>, its own plans and premiums, and its own admin.
| Area | What it does |
|---|---|
Sign-up (/<slug>/join) | Plan choice, SA ID validation (checksum + age → premium tier), spouse, children 0–21, up to 15 extended members, beneficiary, POPIA consent |
| Payments | Debit order (DebiCheck), card (PayFast subscription or Paystack saved card), Instant EFT pay links, cash at branch |
Member portal (/<slug>/portal) | Sign in with ID number + SMS code, see cover status and waiting period, pay arrears, report a death |
Admin (/<slug>/admin) | Premium book, arrears, policies, record cash payments, approve mandates, claims workflow with waiting-period screening, message queue, brand and premium settings |
Daily job (/api/cron/daily) | Creates premiums, charges Paystack cards, marks missed premiums, moves policies between Waiting / Covered / Arrears / Lapsed, sends WhatsApp/SMS reminders |
Policy rules: cover starts with the first paid premium; natural-death cover after the waiting period (default 6 months); accidental death from the first premium; one missed premium = arrears; two consecutive = lapsed.
ID numbers are encrypted at rest (AES-256-GCM). Full bank account numbers are passed to the debit-order provider and never stored; only the last four digits are kept.
DATABASE_URL and DATABASE_URL_UNPOOLED automatically.APP_URL — your Vercel address, e.g. https://khumbula.vercel.appSESSION_SECRET, DATA_KEY, SETUP_KEY, CRON_SECRET — long random values (DATA_KEY must be 32 bytes in base64; never change it after members sign up or their ID numbers can't be read)MESSAGING_DRY_RUN = true until WhatsApp/SMS are set upPAYFAST_MERCHANT_ID = 10000100, PAYFAST_MERCHANT_KEY = 46f0cd694581a, PAYFAST_SANDBOX = true (PayFast's public sandbox account, for testing)https://<your-app>/setup, enter the SETUP_KEY, the funeral home's name, a web address (e.g. ekuthuleni) and your admin login./<slug> is the public sign-up page, /<slug>/admin is the admin.The daily billing job runs at 06:00 SA time via vercel.json. You can also run it from Admin → Dashboard → Run billing now.
PAYFAST_SANDBOX=false. Recurring billing must be enabled on the PayFast account.PAYSTACK_SECRET_KEY; webhook URL https://<app>/api/webhooks/paystack.NETCASH_DEBICHECK_SERVICE_KEY is set, mandates run in manual mode (staff mark them approved in Admin). Finish src/lib/payments/netcash.ts with Netcash's sandbox. Netcash results post to /api/webhooks/netcash.WHATSAPP_TOKEN, WHATSAPP_PHONE_NUMBER_ID. Create templates in WhatsApp Manager with the names and bodies in src/lib/messaging/templates.ts.BULKSMS_TOKEN_ID, BULKSMS_TOKEN_SECRET); needed for member login codes. Then set MESSAGING_DRY_RUN=false.APP_URL.cp .env.example .env # fill in DATABASE_URL etc.
npm install
npx prisma db push
npm run db:seed # demo funeral home at /demo
npm run dev
npm test # core rule tests
prisma/schema.prisma — data modelsrc/lib/rules.ts — premium tiers, status and claim screening (pure, tested)src/lib/policies.ts — sign-up, payments, status refreshsrc/lib/billing.ts — daily jobsrc/lib/payments/ — PayFast, Paystack, Netcashsrc/lib/messaging/ — WhatsApp/SMS providers and templatessrc/app/[tenant]/ — public, portal and admin pagessrc/app/api/ — sign-up, webhooks, cron