🛠

How it's built

  • Frontend: React 18, Vite 5, TypeScript, Tailwind and shadcn/Radix, React Router. Public, admin and board routes are lazy-loaded.
  • Backend: Lovable Cloud: Postgres tables, auth, storage and ten edge functions. Payment verification, receipt numbering and board totals run on the server.
  • Payments: Razorpay checkout. Edge functions create the order, verify the signature, receive the webhook and recover captured payments whose orders didn't finish.
  • Receipts: stored as database rows with a unique number from a counter, generated as PDFs with jsPDF and shown as an image for preview. Cancelling one needs a reason and keeps the history.
  • Integrity: a unique constraint on date + hall + meal, role checks for staff and admins, and an audit log of staff and admin changes.
TableWhat it holds
donation_orders, donation_order_itemsItem donations and pledges, line by line
meal_bookingsEvery meal slot, online or offline, with source and payment state
money_donationsDirect money gifts
pending_paymentsThe checkout context before a payment is confirmed
receipts, receipt_counters, receipt_cancellationsNumbered receipts and their history
audit logWho changed what, before and after

Changelog#

  • 10 Sep 2026 — Launched
  • 9 Sep 2026 — Receipt preview on the confirmation page, because donors kept missing the download link
  • 9 Sep 2026 — Board overview: money received, covered days and item shortfalls
  • 9 Sep 2026 — Monthly requirements and real purchase units for items
  • 16 May 2026 — SMS noted as a later channel for donors who don't use WhatsApp
  • 21 Apr 2026 — Redesigned with an editorial look after the first version felt too generic
  • 21 Apr 2026 — Pledges for physical goods, with staff acknowledging each line
  • 21 Apr 2026 — First brief: a needs and donation platform with a shared cart, live meal availability and server-side duplicate checks

© Viney Jain