Skip to content
All work

Qurbani registration & payments

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.

Usmani admin bookings dashboard with totals and shares
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 + payment
Each registration takes its share count and pays via Razorpay.
Automatic grouping
Filled groups of seven become one receipt, shown to admins.
Volunteer allocation
Admins assign receipts and everyone is notified automatically.
Completion tracking
Unique receipt numbers let admins mark Qurbani complete — one or many at once.
PDF receipts
Issued 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.

The hard part

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

Have a problem like this?

Tell me about your business and I will tell you how I would approach it.

Book a call
Next projectTariqatA configurable workflow engine for 2,000+ registrations per eventContinue from Qurbani App