One poll. Many learning moments.
Designing a reusable poll system that could be created once, published once and used across live classes, courses, community and learner-facing content without changing its interaction model.
Which part of the process do you find hardest?
Some product visuals have been simplified or reconstructed to protect confidential platform and customer information.
Engagement was becoming a feature-by-feature problem.
If every surface built its own polling interaction, admins would create, configure, publish and analyse the same concept four different ways — and learners would learn it four times.
A poll is not a screen. It is a reusable object with a lifecycle.
The lifecycle is the design.
A poll is not a screen you visit. It is a thing with states, and the states are what every surface has to agree on.
- 01Draft
- 02Published
- 03Embedded / started
- 04Voting
- 05Result
- 06ClosedSession stored
Configured once, in one place.
Type, question, options and behaviour are set on the object itself — including when results become visible, which is a trust decision more than a display one.
Which part of the process do you find hardest?
Everything that is set on the object
A trust decision more than a display one.
In a live class, the value is the immediacy.
Results move as votes arrive, the instructor closes the poll when the room has answered, and the session result persists afterwards. The same poll can be started again later in the session.
Which part of the process do you find hardest?
Unvoted, on SuperLive. Result visibility is a setting on the object, not a property of the surface.
Reuse creates lifecycle dependencies.
Once a published poll is associated with several surfaces, unpublishing can’t behave like deleting an isolated item. The associations have to be resolved first — the cost of making something reusable.
One engagement object could work across the learning product.
Admins could create and publish a poll once, reuse it across multiple learner surfaces, and view live or post-session results through the same underlying interaction model.
This project taught me to design reusable interaction objects around lifecycle and state — not around the screen where they first appear.