Skip to main content

Case study · SaaS / Education

RollCallFee vouchers, payments and WhatsApp reminders for private schools

RollCall is a school fee management web app built by DanixSoft for private schools, academies and tuition centres: it issues monthly fee vouchers for every student in one click, records payments with receipts, carries unpaid dues forward as arrears, and reminds parents on WhatsApp.

A fee office system for schools that run on printed vouchers, a register and Excel. Students are imported from a spreadsheet, each month is billed by the school's own rules, payments are recorded at a fee counter, and unpaid families get WhatsApp reminders.

What problem does RollCall solve?

Fee offices write vouchers by hand every month, work out sibling discounts and arrears on a calculator, and spend days phoning parents, without a clear view of who has paid, who paid half and who still owes from last term.

How does RollCall work?

One database function works out every voucher for the month — tuition, class charges, the larger of a scholarship or sibling discount, admission fees and arrears with late fines — and the preview the office reviews comes from the same function that issues the vouchers. Payments are an append-only ledger: a mistake is reversed by the owner, never edited.

What we built

  • Student import by pasting from Excel or uploading CSV, with column matching and row validation
  • Fee structure per class, sibling discount, per-student concessions and a fixed late fine
  • Monthly vouchers in one click with a full preview, arrears carried forward, and three-copy A4 printing
  • Fee counter with search by name, roll number, phone or voucher number, part payments and numbered receipts
  • Voucher and receipt links parents open without an account
  • Reminder lists for unsent vouchers, due soon and overdue, opened in the office's own WhatsApp
  • Owner and accountant roles, dashboard, student statements and CSV exports

What is RollCall built with?

Application
Next.js 16 (App Router, Server Actions), React 19, TypeScript, Tailwind CSS v4
Data
Supabase Postgres with row-level security and Auth
Quality
Vitest unit tests and a database rules and isolation check script

Engineering challenges

  • Vouchers and payments written only through security-definer functions; payments are append-only with owner-only reversals
  • Every table scoped to a school by row-level security, with column-level grants and cross-school consistency triggers
  • Parent links use random 96-bit tokens and return only what is printed on the paper voucher
  • A database check script covering fee rules, fines, arrears, reversals, roles and cross-school isolation

Next step

Have a similar problem to solve?

A free 30-minute discovery call, then a written scope and a fixed-price quote — before you commit to anything.