Case study · Learning management system

Teacher Portal

Redesigning the teacher side of a B2B learning platform, where the real product complexity actually lived.

Role
UX/UI Designer & Front-End Dev
Team
Product owner, dev team, teaching staff
Type
B2B platform redesign (teacher-facing)
Delivered
Shipped to production
The challenge

100+ helpdesk calls a month, and most of them came from teachers

Hundreds of teachers across Dutch vocational schools were using this part of the platform every day. Most of them were also calling the helpdesk every week. The calls were rarely about bugs. They were about how to set up a variant, how to score a class with multiple cohort years in it, and how to manage student progress across overlapping groups.

The student-side redesign had been the visible part of the project. The teacher side was where the real product complexity lived, and where this case study focuses.

"The teacher had a printed cheat sheet on her desk for which menu they need to open to switch between managing student variants and actually open the course item for teaching."

from a contextual inquiry session
UX approach

Methods chosen to make complexity visible

The research methods here were chosen specifically to make the complexity visible: watching teachers in real classrooms, tracking a full term, and putting numbers on cognitive load before testing the redesign. Open any method for the full detail.

01

Discover

Understanding context

02

Define

Measuring the problem

03

Validate

Testing the redesign

Design decisions

The decisions that carried most of the complexity

Decision 01. A teacher-editable variant tree, not a default author variant.

The team's first instinct was a default author variant with filters on top. But teachers were not filtering content, they were restructuring it. Vocational classes hold students from multiple cohort years on different curriculum versions, and teachers were already building workarounds to handle it. We shipped a teacher-editable variant tree with drag-and-drop reordering, bulk operations, and per-variant scoring. The system started supporting their work instead of working against it.

learningbox.nl/teacher/variants
Variant tree with drag-and-drop reordering, bulk operations, and per-variant scoring.

Decision 02. Scoring domain at the variant level, not the course level.

The cleaner data model would have been one scoring scale per course, and two senior developers argued for it. But teachers had been creating duplicate courses for years to get around the single-scale limit. We put scoring inside the variant instead. We were not adding complexity, we were showing complexity that already existed. The diary-study data changed the developers' minds, not the design argument.

Scoring configuration inside a variant, with a scale per item such as abcd, decimal, or 5-point
Scoring domain moved inside the variant, replacing the per-exam tracking forms teachers used to maintain by hand.

Decision 03. Consolidate teacher actions onto one progress page.

Before, grading, messaging, planning, exam access, and attachments lived on separate screens, consistent with the data model but not with how teachers worked. Teachers were not thinking "now I am doing the messaging task." They were thinking "now I am dealing with this student." We consolidated everything onto one progress page anchored on the student, not the task type.

learningbox.nl/teacher/progress
Progress table consolidates every teacher action for a student onto a single screen.
Design impact

The teacher work paid for itself, slowly

Teacher-side impact
confirmation_number
81% Fewer variant tickets
schedule
4.5h → 1h Teacher onboarding
trending_up
3.1 → 4.4 Usability score

The student-side wins were visible within weeks. The teacher-side wins took a full term, because that's the timescale on which teachers actually use the product.

Real talk

What I would do differently

01

I would automate the helpdesk ticket analysis

I categorised six months of helpdesk tickets by hand, which took about a week of focused work. A simple keyword tagger would have done the same job in a day, and it would have been reusable for the next analysis.

The challenge

100+ helpdesk calls a month, and most of them came from teachers

Hundreds of teachers across Dutch vocational schools were using this part of the platform every day. Most of them were also calling the helpdesk every week. The calls were rarely about bugs. They were about how to set up a variant, how to score a class with multiple cohort years in it, and how to manage student progress across overlapping groups.

The student-side redesign had been the visible part of the project. The teacher side was where the real product complexity lived, and where this case study focuses.

"The teacher had a printed cheat sheet on her desk for which menu they need to open to switch between managing student variants and actually open the course item for teaching."

from a contextual inquiry session
Empathise

Watching teachers work, not asking them to describe it

Contextual inquiry

I started with contextual inquiry at two schools, sitting alongside teachers during normal lesson preparation, grading, and class management.

The most useful pattern was a list of workarounds I had not expected: teachers exporting their progress data to spreadsheets because the in-platform view was missing columns they needed, teachers creating duplicate courses to handle a scoring scale that did not fit the official one, and teachers using sticky notes on their screens to track which students were in which cohort year.

Diary studies across a full term

Six teachers kept lightweight daily entries for a full term. A two-week usability test would have caught one slice of vocational teaching. A full term caught all four phases, and each season stressed a different part of the system.

Diary study findings · 12-week vocational teaching cycle

A term has seasons. Each one stresses a different part of the platform.

The issues that show up in week 12 are not the issues that show up in week 2, which is what a two-week usability test would have missed.

play_arrow
Weeks 1-2 Term start

Variant setup, scoring domain, student assignments, the heavy build-out week. Where teachers used to need a cheat sheet open on the desk.

edit_note
Weeks 3-8 Mid-term

Daily teaching, grading, planning dates, where most teachers and students interacted heavily within the platform

quiz
Weeks 9-11 Exam season

Checking per-variant scoring domains, marking non-scoreable items, and granting exam access.

summarize
Week 12 End of term

Grading "kwalificatie dossier", and exam commission reporting time, during this time of the term teachers need the platform support to provide reliable data.

A two-week test catches week-2 problems. Term-end issues only show up after week 8.
Define

The complexity was not a bug.

Vocational education structure (MBO BBL and BOL) is genuinely complex. A class can have students from several cohort years following different curriculum versions. One course can be taught with three different scoring scales and calculations, depending on the school's policy. A variant tree can hold items that some students see and others do not. None of this is the product's fault. It is the reality of the domain.

So the design problem was not to remove complexity, but to give teachers a usable, flexible system that fits their complex workflow.

Analysis summarising the key research findings, mapping the gap between the teacher's mental model and the system's model
Analysis, mapping the gap between the teacher's mental model and the system's model.

Cognitive walkthrough with task complexity scoring

I worked through the teacher tasks alone, scoring each one on cognitive load, decisions required, and screens visited. Adding this to the contextual inquiry was triangulation: teachers reported finding student progress tracking "it's okay", but the walkthrough showed it took four separate screens for what one progress table could show. The two most-visited tasks had the worst complexity scores.

Cognitive walkthrough · variant setup task

What the redesign asked of a teacher's working memory

Same task on both systems. Three load dimensions, before and after.

Decisions required Choices a teacher had to make to complete the task
Before
14
After
5
Screens visited Distinct pages the teacher had to move through
Before
7
After
2
Working-memory items Pieces of information held in mind at the same time
Before
9
Miller's 7 ±2 ceiling
After
3

Why this mattered. The "before" load sat above Miller's 7±2 ceiling for short-term memory. That's not a UX opinion, it's the working-memory limit that explains why teachers kept printed cheat sheets on their desks. Each design decision in the redesign was scored against the same three dimensions, and only shipped if it lowered at least one without raising the others.

Workflow design

Designing the hard solutions

These are the three pieces of the redesign I am most proud of, and the ones that took longest to get right.

The teacher variant tree with bulk operations

The team's first instinct was a default author variant with filters on top. But teachers were not filtering content, they were restructuring it. Vocational classes hold students from multiple cohort years on different curriculum versions, and teachers were already building workarounds to handle it. We shipped a teacher-editable variant tree with drag-and-drop reordering, bulk operations, and per-variant scoring. The system started supporting their work instead of working against it.

learningbox.nl/teacher/variants
Variant management page, drag-and-drop tree, bulk operations, and per-variant configuration on a single screen.

The scoring domain inside the variant

The cleaner data model would have been one scoring scale per course, and two senior developers argued for it. But teachers had been creating duplicate courses for years to get around the single-scale limit. We put scoring inside the variant instead. We were not adding complexity, we were showing complexity that already existed. The diary-study data changed the developers' minds, not the design argument.

Scoring panel inside a variant, where each item gets its own scale (abcd, decimal, 5-point) instead of one scale per course
Scoring domain moved inside the variant, replacing the per-exam tracking forms teachers used to maintain by hand.

The progress table page

Before, grading, messaging, planning, exam access, and attachments lived on separate screens, consistent with the data model but not with how teachers worked. Teachers were not thinking "now I am doing the messaging task." They were thinking "now I am dealing with this student." We consolidated everything onto one progress page anchored on the student, not the task type.

learningbox.nl/teacher/progress
Progress table page, every per-student action consolidated into one screen anchored on the student.
Test & iterate

Testing the redesign

Two waves of testing, plus post-launch monitoring.

Prototype testing with task scenarios

I tested clickable Figma prototypes with five teachers from across the three personas, working through realistic task scenarios and thinking aloud. The variant tree got the strongest reaction: teachers wanted to add their own materials inside it, not just rearrange what was already there.

Post-launch: helpdesk ticket categorisation

Helpdesk tickets are an unfiltered view of where a product fails in production. I categorised six months of tickets by topic and frequency, to ground the design decisions in volume, not just observed patterns. The three biggest categories, variant setup, scoring configuration, and student progress retrieval, matched the three design decisions in the final design.

Post-launch iteration board

What I observed → what I changed

Analysing the test results to create a better product. Sample findings and iteration:

Observed

The student variant switcher was available, but participants missed it.

Changed

The test showed that teachers always start the school year by creating a new group, so I made it possible to check and switch a student's variant directly from the group page.

Real talk

What I would do differently

01

I would automate the helpdesk ticket analysis

I categorised six months of helpdesk tickets by hand, which took about a week of focused work. A simple keyword tagger would have done the same job in a day, and it would have been reusable for the next analysis.

Next case study

Shopper App

View case study →