Skip to content
Back to Home

Building internal tools for hackathon organizers

Role
Product Designer
Timeline
March 2026 - Present
Skills
User ResearchInteraction DesignPrototyping
Tools
FigmaFigJamClaude Code
The Shift Manager portal: a calendar of shifts by event beside a panel showing volunteer and mentor shift counts for the selected event.

Overview

The hackathon is outgrowing existing tools and workflows

As UofTHacks reaches its 14th iteration, more logistics and coordination are needed to keep the event running than ever before. Yet the workflows behind it rely heavily on repetitive and manual tasks that pull organizers away from high-impact work that goes into improving the experience of hackers.

Volunteer scheduling is one of these workflows, relying on organizers to manually coordinate shifts for over 50 volunteers.

How might we help organizers assign shifts faster, with a clearer view of the coverage across the whole event?

Solution Highlight

Schedule shifts in bulk or individually

See coverage across the whole event

Integrating volunteer availability into the portal

User Research

Understanding the current challenges

Understanding the current shift assignment process uncovered 3 main pain points:

(1) A multi-step flow just for one volunteer

Assigning a single volunteer took organizers through several steps, which accumulates after 50+ volunteers.

A flowchart of the current volunteer scheduling flow: Open Shift Manager, browse all volunteers, select one volunteer, go to Google Forms, identify their shift availability, return to Shift Manager, assign shifts to their schedule, update shifts, then view shifts on the calendar, with an arrow looping from Update shifts back to Browse all volunteers. An annotation marks that each shift assignment requires a separate multi-step flow.

(2) Navigating outside the portal for information

Organizers have to switch between the portal and Google forms to find volunteer availability and shift preferences for every assignment.

The Shift Manager screen beside a Google Form, with arrows looping between the two. An annotation reads that organizers have to go back and forth between the portal and Google Forms for each shift assignment.

(3) No top-down view of events

The shift calendar is hard to sift through, with every shift crammed into a single view. As individual shifts are shown instead of being grouped by event, organizers have to scan through the entire calendar just to identify which events need additional support.

The Shifts Calendar screen, a dense grid of overlapping shift blocks with no grouping. An annotation reads that all shifts are crammed onto one calendar.

Design Decisions

How might we reduce the manual work of assigning shifts?

I explored completely off-loading this task from organizers by letting volunteers choose their own shifts.

However, one constraint set by the logistics team was that shifts must be assigned and not chosen. If volunteers picked freely, unfavourable times like overnight shifts would go uncovered. This left assigning shifts in bulk as the most feasible and realistic change to cut manual work.

A comparison of two flows. Bulk Selection, labelled Organizers: select event, select multiple volunteers, assign shifts. Self-Selection, labelled Volunteers: choose shifts, organizers give approval.

How might we display shifts so they are easier to manage?

To display shifts, I explored two options: a calendar view and a timeline view. Both organized shifts more clearly than the original, but the calendar view showed the same information with less friction. The calendar also let me build on a familiar interaction: tapping an event to see more details.

A comparison of a Calendar View and a Timeline View. Calendar View notes: familiar layout; tapping an event for more details is a familiar interaction pattern. Timeline View notes: grouping shifts by category makes them easier to scan; but it requires scrolling both horizontally and vertically to find shifts.

How might we let organizers set staffing needs per event?

Once organizers could assign in bulk, they needed a way to define how many volunteers each event required, so they could see at a glance whether an event had enough support.

I explored three options, with the stepper being the best option. It fit the mental model of creating spots before filling them, gave instant feedback with each click, and took fewer steps than the alternatives.

Three options for setting staffing needs. (1) A plain number input: quick to enter a number, but unclear cause and effect. (2) An Assign shift button repeated by tapping Add a new slot: takes the most steps to adjust the number of slots. (3) A stepper that adjusts a shift count and generates that many Assign shift slots: intuitive and clear that the stepper adjusts the number of shifts, and can type directly into the stepper for larger counts.

Final Solution

A revamped flow that scales with the hackathon

A flowchart of the proposed volunteer scheduling flow: Open Shift Manager branches into two paths. On the left, select an event, select multiple volunteers, then view their availability. On the right, browse all volunteers, select one volunteer, view their availability, then assign shifts. Both paths converge on update shifts, then view shifts on the calendar. Annotations mark that volunteers are assigned in bulk for each event, that organizers can still make shift changes for individual volunteers when needed, that volunteer availability is directly integrated into the portal, and that shifts are organized by events to give organizers an overview of the entire event.