Class registration has always been a high-stress experience for students. As a designer focused on usability and accessibility, I wanted to understand why. Is it solely a technical issue—server crashes, slow load times? Or is there more to it?
After doing more research, I found a common theme: students were making critical decisions with incomplete or unclear information. They had no way to gauge their chances of getting into a class, no easy way to compare sections, and no system to help them resolve scheduling conflicts in real time. This lack of transparency forced students to rely on guesswork and frantic backup plans, turning what should be a straightforward process into a stressful gamble.
Initially, I assumed students primarily struggled with slow systems and complex interfaces. But after conducting user research, I realized the real pain points were more nuanced:
These insights completely reframed my approach. It wasn’t just about making registration faster—it was about making it predictable and stress-free.
With these insights in mind, I started sketching out ideas. I leaned into data visualization to surface key information at the right moments:
One thing that I kept thinking about throughout this project was how much data was too much. Early on, I experimented with adding GPA distributions and pass rates alongside registration chances. But through user testing, I discovered something surprising—most students didn’t find this useful. They weren’t trying to analyze success rates; they just wanted to know, "Can I get into this class?"
Before Testing
After
This was a key moment in the project. Instead of overwhelming students with every available metric, I refined the experience around only the most actionable data. This decision simplified the UI and aligned directly with what users needed most.
Using these insights, I made the following changes to the prototype:
Old Version
There weren’t many indicators of system change which caused confusion for some users.
New Version
Inform users of system changes by specifying the scheduled timing and current phase, reinforced by components like this class status visualizer (right).
Old Version
Block-based visualization to help students easily understand their weekly schedule and potential conflicts.
New Version
Usability testing showed participants struggled with identifying scheduling conflicts and swapping waitlisted sections. Clearer conflict indicators and in-line section swaps resolved these issues.
Old Version
Course cards display a percentage to help users gauge their registration chances at a glance.
Old Version
Since users found GPA distribution and pass rate data less useful, I focused on registration chance as the key metric and enhanced its visibility with color.
Looking back, this project reinforced one of my core design beliefs: the best solutions don’t just remove friction—they create clarity. By giving students the right information at the right time, I transformed registration from a stressful, uncertain experience into a predictable, student-centered.