Qurbani App
An entire Qurbani season, run end to end in three days
A registration and payments platform for Usmani Holdings’ annual Qurbani share programme.
- Status
- Live
- Role
- Product · Full-Stack · DevOps
- Engagement
- Client work
- Stack
- Next.js · MongoDB · Vercel · Cloudinary · QStash · Razorpay

The problem
An animal is shared by seven people, so every Qurbani season the organisers had to collect applications, verify payment screenshots, group seven buyers into one animal, issue tokens, assign volunteers and confirm completion — all by hand, across thousands of registrations in a few days.
What I built
End-to-end automation of registration, share grouping, volunteer allocation and completion — with payments built in.
- Online registration + paymentEach registration takes its share count and pays via Razorpay.
- Automatic groupingFilled groups of seven become one receipt, shown to admins.
- Volunteer allocationAdmins assign receipts and everyone is notified automatically.
- Completion trackingUnique receipt numbers let admins mark Qurbani complete — one or many at once.
- PDF receiptsIssued at registration and again at completion.
How it is built
The whole season runs in a few days, so the system is built for a short, high-volume burst: thousands of users at once, payments that fail safely, and background jobs for every message and PDF.
- When a payment fails — A failed payment never leaves a half-finished registration. The failure is recorded, the buyer is told what to do next, and admins can see exactly where it stopped.
- Razorpay payments — Payments reconcile straight onto the admin dashboard.
- QStash background jobs — Messages and PDFs run off the request path so bursts stay smooth.
- Receipts as the unit of work — A unique receipt number ties each group of seven to a volunteer and a completion state.
Hard problem
Three days, thousands of users, failures in the middle
The whole season is one short burst, so the system has to stay correct when a payment fails halfway through.
Result
- registrations in a single season
- 3,000+registrations in a single season
- of users on the platform at once
- Thousandsof users on the platform at once
- of rupees in payments, in three days
- Millionsof rupees in payments, in three days
Gallery


Have a problem like this?
Tell me what you are trying to build and I will tell you how I would approach it.
Book a call