All work

URM Commission

One record, from a student's first enquiry to the commission an agent is paid.

Role
Architecture and most of the code
Timeline
2025 to now
Type
Agent portal and commission platform
Stack
Node.js, Express, EJS, Prisma, PostgreSQL
The public landing page of the URM ENROLL agent portal

The problem

Education recruitment is handled by agents, counselors, universities and a finance team who each see a different part of the same student. When those parts live in separate tools, nobody can say where a student stands or what an agent is owed.

What we built

A multi-role operations portal on one record: agents source and nurture leads, counselors convert them through admissions, and administrators run the catalog, contracts and finance. A public site and an agent application funnel feed the same pipeline.

My role

I designed the portal and wrote most of the code myself, as technical co-founder of URM ENROLL. The repository is private.

How it fits together

  1. Express app with server-rendered views
  2. Prisma domain model on Neon Postgres
  3. A configurable commission engine with an event ledger
  4. Passkeys, two-factor sign-in and single sign-on

The hard part

Four roles need four different views of one lifecycle without seeing each other's data, and every financial figure has to stay explainable months later. Access control, audit trails and the commission rules are all part of the same design problem.

Where it stands

Live at agents-portal.enrollurm.com for the agent partner programme. Stripe checkout and payouts are built in and switch on when the company starts taking payments. I don't publish adoption or revenue figures here.

What I took from it

Money makes correctness visible. A figure that cannot be traced back through the record that produced it is a defect, however good the interface looks.

Sources and scope

Sources: the repository's README and source tree, inspected September 2026, and the live site. The screenshot shows the public landing page.

Ubaida DibFull-Stack Software Engineer

Hiring a full-stack engineer? Let's talk.

If you're hiring a full-stack engineer, I'd like to hear about the product and the team. Email reaches me fastest.

Open to full-stack roles in Germany. No visa sponsorship needed.