Case study · Administration system

Administration System

Built the administrative backbone for a B2B learning platform that had outgrown its manual processes.

Role
UX Designer
Team
Product owner, dev team, finance
Type
New product functionality
Delivered
Shipped to production
The challenge

The platform had grown. The operation behind it had not.

The student and teacher sides of the platform had been redesigned, and adoption was growing across Dutch vocational schools. The operational side had not changed. Students were getting courses through two parallel order flows, both still being processed by hand. School administrators were ordering stand-alone courses directly from the bookstore. The bookstore was also handling voucher orders, where a school or a student purchased multiple courses at once, sometimes including courses from other LMS providers. Each school could use either kind of order, or both at the same time.

Four roles were keeping the whole operation moving: bookstore purchasers, school administrators, system administrators, and the finance team. Each one carried its own friction, and a single order touched all of them.

The manual order workflow across four roles School admin direct order (orange): the school administrator places the order, the system administrator grants the student access manually. Voucher order (magenta): the bookstore purchaser places the order, the system administrator emails the voucher back to the purchaser, and the purchaser emails it on to the student. The finance team sits downstream of both flows. School admin order: direct Voucher order: via bookstore School administrator Places a direct order No view of invoice status EVERYTHING ROUTES THROUGH HERE System administrator Processes orders, payments, and access, all by hand Student Gets access to courses Blocked for days while waiting Bookstore purchaser Places voucher orders Overlapping packages, wrong school Finance team downstream of every order: invoicing, payment status, and VAT across both flows (around 6 hours per quarter) direct order grants access manually 1 · voucher order 2 · voucher by email 3 · voucher to student
The manual workflow. A school admin order ends with the system administrator granting access by hand. A voucher order loops back through the bookstore purchaser, who emails the voucher to the student.

The project was to design admin tools for all four roles at once, on top of the existing student-facing platform, so the operation could scale with the customer base.

UX approach

From messy reality to a tested solution

I worked through the operational problem in three phases, grounded in real behaviour, sharp problem definition, and testing before building. Open any method for the full detail.

01

Discover

Understanding user

02

Define

Structuring the problem

03

Validate

Testing before building

Design decisions

The design choices that made the system work

Decision 01. Make wrong choices impossible at the source.

Bookstore purchasers were fulfilling orders for multiple schools at once. Many packages overlapped between schools, and some were shared entirely, which made wrong-package orders a regular pattern. Training and email reminders had not worked. We built school-based package filtering so purchasers can only see the valid options for the school they have selected. The fix was in the system, not in the training. Wrong-package orders dropped to near zero after launch.

learningbox.nl/purchaser/orders
School-filtered package selection prevents incorrect orders at the source.

Decision 02. Let students access their courses while waiting for their vouchers.

Voucher orders from the bookstore could take days to process and pay, and students were sitting blocked from their courses for that whole time. We built a 14-day grace period: while a voucher order is being processed, students get temporary access to the courses on it, so they can start on time. Temporary access converts automatically to permanent once payment is confirmed, or is revoked if payment fails. The number of "where is my access" support tickets dropped sharply once this shipped.

Decision 03. One flexible ordering flow for school administrators.

School administrators order for their own students. They can issue voucher codes for students choosing their own start date, or assign courses directly for groups starting together. Invoice profiles are configured per school and auto-selected when only one exists, bulk ordering is available, and the system flags students who already have an active package to prevent duplicates.

learningbox.nl/school/orders
School administrator ordering: voucher assignment, direct assignment, and multi-profile invoicing in one flow.

Decision 04. One finance dashboard across all order types.

Bookstore orders, school admin orders, and student invoices used to live in three separate views. That was why VAT reporting took six hours every quarter. We built one unified dashboard with all invoice types in it, and a one-click VAT export across all of them. Quarterly VAT now takes around one hour.

learningbox.nl/admin/finance
Unified invoice view across all order types with one-click VAT export.
Design impact

Operational workflows that could finally scale

Operational efficiency
trending_down
70-85% Less manual admin work
task_alt
Near zero Incorrect orders
bolt
6h → 1h VAT reporting
support_agent
50-70% Fewer support issues

At its core, the design work turned complex, manual operations into a system people could run with confidence. The right action became the easy one, and the room for error quietly disappeared.

The challenge

The platform had grown. The operation behind it had not.

The student and teacher sides of the platform had been redesigned, and adoption was growing across Dutch vocational schools. The operational side had not changed. Students were getting courses through two parallel order flows, both still being processed by hand. School administrators were ordering stand-alone courses directly from the bookstore. The bookstore was also handling voucher orders, where a school or a student purchased multiple courses at once, sometimes including courses from other LMS providers. Each school could use either kind of order, or both at the same time.

Four roles were keeping the whole operation moving: bookstore purchasers, school administrators, system administrators, and the finance team. Each one carried its own friction, and a single order touched all of them.

The manual order workflow across four roles School admin direct order (orange): the school administrator places the order, the system administrator grants the student access manually. Voucher order (magenta): the bookstore purchaser places the order, the system administrator emails the voucher back to the purchaser, and the purchaser emails it on to the student. The finance team sits downstream of both flows. School admin order: direct Voucher order: via bookstore School administrator Places a direct order No view of invoice status EVERYTHING ROUTES THROUGH HERE System administrator Processes orders, payments, and access, all by hand Student Gets access to courses Blocked for days while waiting Bookstore purchaser Places voucher orders Overlapping packages, wrong school Finance team downstream of every order: invoicing, payment status, and VAT across both flows (around 6 hours per quarter) direct order grants access manually 1 · voucher order 2 · voucher by email 3 · voucher to student
The manual workflow. A school admin order ends with the system administrator granting access by hand. A voucher order loops back through the bookstore purchaser, who emails the voucher to the student.

The project was to design admin tools for all four roles at once, on top of the existing student-facing platform, so the operation could scale with the customer base.

Empathise

Understanding how people actually worked, not how they said they worked

Passive observation

I started with two weeks of passive observation, sitting with system administrators while they worked. People are unreliable narrators of their own workflows: ask how someone processes an order and you get the happy path, not the three spreadsheets they cross-reference.

A few patterns came out of those two weeks:

  • Manual processing burden: every order was touched by hand, often more than once
  • Student access delays: payment and access were disconnected, with no automated link
  • Incorrect course packages: curriculum and cohort logic was invisible at the point of order
  • Fragmented invoice records: VAT reconciliation had to be rebuilt every quarter
  • No self-service: schools, students, and partners all depended on one administrator

The third pattern mattered most. It would not have come up in interviews, because bookstore staff did not think of incorrect orders as a recurring problem.

Service blueprinting

Order-to-access was the longest flow in the operation, and no single person had full visibility of it. Mapping it with the team showed a problem the interviews had not: voucher orders could take days to be processed and paid, and students sat blocked from their courses for that whole window.

Stakeholder interviews

After observation, I interviewed people in each role, coming in with specific questions about what I had already seen. Targeted interviews showed the friction around those behaviours, where generic ones would have produced the happy path again.

Service blueprint mapping how information, payments, invoices, and access flow across roles, channels, and backstage operations in the admin system
Define

Naming the real problem before touching any solution

With the patterns from observation in hand, I synthesised them with affinity mapping. They were not separate problems but symptoms of one structural issue: the platform was built for a student ordering for themselves, and never extended to the schools, cohorts, and partners that grew around it.

Personas

Three primary personas shaped every decision from here, because the team kept designing as if all admin users were the same person.

LP
Bookstore Purchaser

Lars

Purchasing coordinator · Orders for 6+ schools · Semester-driven peaks

"Just show me the right options. I don't have time to cross-check against a spec sheet."

Goals
  • Process bulk orders quickly under deadline pressure
  • Avoid being blamed for incorrect package selections
  • Close the semester window without any follow-up
Frustrations
  • Wrong package only discovered after students redeem vouchers
  • No visible list of valid packages per school at order time
  • Correction requires back-and-forth emails
Behaviours
High-volume, seasonal Works from memory Minimal decision points No manual, no system
MA
Teacher-Administrator

Mia

Secondary school teacher · Admin on the side · 3 teaching days per week

"If I have to read a manual to use it, I won't use it."

Goals
  • Handle student enrolments without switching into an admin mindset
  • Manage students with different start dates in one flow
  • Keep teaching the priority, admin is secondary
Frustrations
  • Admin tasks interrupt teaching rhythm with no dedicated time
  • Systems that assume she already knows the process
  • Different start dates require separate flows, she skips the edge case
Behaviours
Multi-role context switching Zero-training expectation Intuition over instruction Low complexity tolerance
DS
Company-Sponsored Student

David

Professional learner · Employer-funded enrolment · Invoice required before start

"I just need to know what to type, and what happens if I get it wrong."

Goals
  • Start the course on time without access interruptions
  • Submit an invoice his employer will actually accept
  • Understand what happens if something goes wrong
Frustrations
  • No guidance on legal entity name vs. display name at point of entry
  • Invoice rejection only discovered after access is already lost
  • Falls behind peers while waiting for correction and resubmission
Behaviours
Defaults to familiar contact High anxiety about delays Needs clear confirmation One-time process

Jobs to be Done and How Might We

Jobs to be Done reframed each need as intent. The bookstore purchaser's job is not "to place an order" but "to get the right materials to the right students without being blamed." That shaped the package-filtering decision: make the wrong choice impossible, not just harder. The biggest tensions became How Might We questions:

HMW

help bookstore purchasers always select the correct package, without relying on email instructions?

HMW

allow school admins to order for students with different start times, without splitting the flow?

HMW

let students correct invoice details themselves, without submitting a support request?

Ideate

Exploring the structure before designing any screens

Two structural questions had to be settled before any wireframing.

Separate admin application, or extend the current system?

A separate admin app felt clean, but many smaller schools have no dedicated administrator: the same person teaches, orders the materials, and sometimes orders as a student. Two logins would break that workflow, so we extended the existing platform with a view per role.

Build from scratch, or use an off-the-shelf solution?

Off-the-shelf tools could not handle the role-aware filtering, cohort-linked packages, multi-rate VAT, and the per-package remuneration each partner author needed. We built custom.

MoSCoW with the development team

We prioritised the work with the developers using MoSCoW. The Won't Have list mattered most: it gave the team permission to ship a solid core over a complete one, which is hard to hold to when six stakeholder groups each have a decade of unaddressed needs.

IA & workflow

Deciding what goes where, and designing out the failure points

Each role gets its own account, except in small schools where purchasing attaches to a teacher account. I mapped each flow step by step, designing certain errors to be structurally impossible rather than just less likely.

Bookstore Purchaser role

Wrong packages are not selectable. A system administrator sets each school's valid packages once; the purchaser picks a school and sees only those. The fix was structural, not instructional. Purchasers add their own order and invoice details, then invoice in bulk or individually, and voucher codes generate on completion.

learningbox.nl/purchaser/orders
Bookstore Purchaser, school-filtered package selection prevents incorrect orders at the source.

School Admin role

Two ordering methods: voucher codes for students choosing their own start date, or direct assignment for groups starting together. Invoice profiles are configured per school and auto-selected when only one exists. Bulk ordering is available, and the system flags students who already have an active package to prevent duplicates.

learningbox.nl/school/orders
School administrator, bulk ordering, voucher assignment, and multi-profile invoicing in one flow.

Student ordering flow

My Courses shows a persistent banner with the access end date during temporary access, a fix that came straight from prototype testing. Invoice Request is a three-step flow that confirms the dates and explains what happens at day 14, and Payment Status shows the invoice state at any time.

Finance dashboard

One dashboard holds every invoice across all schools and order types, filterable by school, date, payment status, and type. Marking an invoice paid activates student access automatically, and one-click VAT export handles quarterly declarations. Unpaid student orders expire after 30 days with an automatic credit invoice, keeping the view clean.

learningbox.nl/admin/finance
Finance dashboard, unified invoice view across all order types with one-click VAT export.
Design process

Why the sequence mattered as much as the output

On a greenfield project, the order of work is itself a design decision. The sequence below was deliberate.

1
Storyboards before wireframes
Map the real journey before touching any screen. Two costly gaps showed up here.
2
Concept testing before screen design
Validate the idea, not the UI. Easiest step to skip. Most often regretted when you do.
3
Card sorting before labelling
Test navigation labels with no visual context. Getting this wrong means re-labelling everything.
4
Annotated lo-fi wireframes
Greyscale, rough, annotated with logic, not just layout. Behaviour written on the wireframe.
5
Hi-fi prototype for task testing
All four workflows end-to-end. Real enough to test. Clearly a prototype so feedback stays honest.
Test & iterate

Testing the prototype

With no live product, I ran task-based prototype testing with five participants across the roles, each working through the Figma prototype while thinking aloud.

What we observed What we changed
1
Prototype
testing
School administrators ordering for groups were forced to switch between two separate pages, voucher and direct order, whenever the order type varied across students.
Replaced with a single order flow. A checkbox toggles each line between voucher and direct order, and the steps adapt automatically. One page, no switching mid-task.
2
Prototype
testing
A student participant missed the temporary access end date entirely. It was on the confirmation screen, but they never reopened it after closing the email.
Persistent banner on My Courses showing the access end date for the full 14-day window. Visible every time the student enters the course area.
3
Post-launch
A small group of students kept requesting the 14-day grace period at the start of every school year, treating it as a recurring discount instead of a one-time bridge.
A once-per-year limit per student, validated with a focused follow-up test and shipped as a small targeted update, not a redesign.
4
Post-launch
Large numbers of student invoices were created and never paid, filling the finance dashboard with stale records that masked the orders actually needing action.
Unpaid student orders now expire after 30 days, generate an automatic credit invoice, and can be reopened if needed. The dashboard stays clean by default.

"The bookstore purchaser described a significant drop in back-and-forth emails with the Learning management system team. The school administrator called the automated invoicing the change she did not know she needed."

post-launch follow-up interviews with two original research participants
Real talk

Where it went sideways

01

The abuse pattern that testing did not catch

The temporary access system tested cleanly. Five participants, no edge cases appeared. Two enrolment periods later, students were repeatedly requesting the 14-day grace period across school years. Scale revealed a pattern that controlled testing structurally could not. We fixed it post-launch with a once-per-year cap.

02

Stakeholder scope creep during MoSCoW

The MoSCoW session produced more must-haves than the timeline could support. I had to push back and reframe the conversation around what a broken first version would cost versus what a working core would unlock. The Won't Have list became the most important output of that session.

Next case study

Teacher Portal

View case study →