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.
| Table | What it holds |
|---|---|
| donation_orders, donation_order_items | Item donations and pledges, line by line |
| meal_bookings | Every meal slot, online or offline, with source and payment state |
| money_donations | Direct money gifts |
| pending_payments | The checkout context before a payment is confirmed |
| receipts, receipt_counters, receipt_cancellations | Numbered receipts and their history |
| audit log | Who 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