I led the design of NTUMODS' timetable planning experience, helping NTU students compare indexes faster, recover from clashes safely, and coordinate with friends through built-in sharing + calendar export. These features are positioned as first-class actions to match real STARS behavior.
UI/UX Designer
2 months (Dec 2023 - Jan 2024)
Timetable usability improvements around saving, flexible schedule selection, sharing, exporting, and customization
Student-run, cross-functional team (8 Devs, 1 PM, 4 Designers)

NTUMODS is a student-run timetable planner built for NTU students, helping them explore module indexes, resolve clashes, and coordinate schedules with friends through a fast, grid-first experience—combining flexible index switching, shareable timetables, and calendar export so planning goes from “what-ifs” to a real weekly routine in minutes.


While NTU students try to plan their timetables during STARS Wars, they don't have an efficient way to compare module options, resolve clashes, and coordinate with friends in a single, smooth flow.
So, the challenge becomes...
and... what's the outcome
I led the design of NTUMODS' planning experience so students could compare indexes faster, recover from clashes safely, and coordinate with friends through built-in sharing + calendar export. These features are positioned as first-class actions ('Share this plan', 'Export to Calendar File') to match real STARS behavior.
It all started with a shared irritation within my own friend grousp. Every semester, 'STARS Wars' (our course registration period) felt less like academic planning and more like a battle against the interface.

But as a designer, I knew our frustration wasn't data.
We conducted user interviews with 15 students across different faculties, and we uncovered...
'What-if' planning required too many steps, making index exploration slow and frustrating.
Without a clean way to share a plan, students rely on chat back-and-forth ('free Tue 2pm?'), which creates misalignment.
Long planning sessions + weak hierarchy made it hard to quickly scan the class schedule, especially when it comes to lectures vs. tutorials.
See the week clearly; clashes should be obvious immediately.
A timetable isn't final until friends agree.
Export must be easy to integrate with calendar apps, or the plan becomes useless.

I framed the work around 4 outcomes:
Reduce the time it takes to explore and compare schedule options.
Let students adjust indexes confidently (without 'breaking' their timetable).
Make it easy to send a plan to friends (no screenshots-as-a-workflow).
Make calendar export feel 'done in seconds.'
When trade-offs came up, I used these principles to stay consistent:
A flex-first grid that updates instantly to surface clashes and viable alternatives—no mental juggling needed.
Designed for 'my schedule' → 'our schedule,' with easy sharing and calendar export into tools like Google Calendar.
Strong visual hierarchy so lectures vs tutorials are scannable at a glance, even during late-night planning.
When we started the project, we had many ideas about the features we should include. To prioritize, we mapped them on an Effort vs. Impact Matrix.

We discarded 'nice-to-haves' (like professor ratings) to focus on Utility & Flow. We committed to:
A 'Flex-Grid' for real-time comparison
Calendar Export & Link Sharing (solving the current struggles), and Card Customization (let users choose what they want to see in their timetable details)
Students explore many index combos and need clashes to show instantly. Dropdowns hid the time impact, so I built a flex-grid that surfaces alternatives in-context for fast “what-if” planning.
Planning is social, then needs a real-world handoff. I designed shareable links that render the exact timetable (no screenshots) and one-tap iCal export for Google Calendar/Outlook.
Let students toggle what matters—index, venue, type, remarks—so the timetable stays scannable during long planning sessions.
Designing the timetable was only half the job — the real challenge was implementing it in a way that keeps the experience fast, flexible, and responsive, especially when students are switching indexes to compare schedules.
The timetable is the most intricate UI in NTUMODS: it renders classes by day/time, supports seamless index switching (showing alternatives directly in context), and stays usable across screen sizes. To keep the UI scalable and maintainable, I implemented the timetable as a composable hierarchy.
Timetable
├── TimetableIntervalIndicator ← time labels (e.g., 0800, 0900)
└── TimetableColumn (per day)
├── Hour Grid (layout background)
└── TimetableColumnBucket (non-overlapping group)
└── TimetableClassCard (individual class)To better illustrate this, here is how I built the timetable component:




NTUMODS gained traction early, attracting over 1,000 NTU students during its beta phase.
In the launch month, the platform saw 4,277 visits, highlighting strong demand for a user-friendly module planning tool.
A launch post on Reddit generated 24.2k views, 131 upvotes, and 106 shares—validating that the product was worth forwarding to friends.


Explore a secure integration that lets students push a finalized NTUMODS timetable into NTU's official systems, so the plan doesn't stay as 'draft' — it becomes the actual registered schedule.
Enable side-by-side timetable comparison and highlight common free slots to make 'jio' coordination faster than chat back-and-forth.