Q-Live Presenter

Presenter is the 5th role in a Q-Live team (alongside Host / Co-host / Moderator / Analyst). It fits the typical conference scenario:

  • Conference organiser sets up the Q-Live Event the day before
  • Speaker walks on stage with their phone in hand
  • The speaker drives the questions themselves during the talk — which one shows on the audience screens, when results are revealed, what to address from Q&A
  • The organiser stays backstage but keeps oversight

Instead of routing the speaker through the full host dashboard (wide monitor, many buttons), they get a dedicated mobile-first controller.

What a Presenter can do

  • ✅ Read event, polls, Q&A, results
  • ✅ Change the active question (Next / Back)
  • ✅ Toggle "Show results" to the audience
  • ✅ Moderate audience Q&A (Highlight, Answered, Archive)
  • ✅ Manually play a gong (mp3 the Host uploaded in branding)
  • ❌ Cannot create polls (Host does that beforehand) — but can edit the answer time limit directly in the polls list
  • ❌ Cannot change branding, settings, or event status
  • ❌ Cannot end or delete the event

Role hierarchy: analyst < moderator < presenter < co_host < owner.

How the Host invites a Speaker

  1. In the Q-Live Event detail (host dashboard) → Team section → Invite member
  2. Pick a PMGclub user (search by name/email)
  3. Choose the Presenter role
  4. Send — the invitee gets a notification and can open the event

Mobile controller

When the Presenter opens the Q-Live event from the dashboard, they see an extra Presenter button (pink). Click → opens /tools/qlive/[id]/presenter — a special mobile-first layout:

┌──────────────────────────┐
│ Presenter mode           │
│ ● Event live · 47 resp.  │
├──────────────────────────┤
│ Question 2 of 5          │
│ "What is the biggest     │
│  challenge in PSD3?"     │
│                          │
│ ● 47 answers             │
├──────────────────────────┤
│ ┌──────┐    ┌──────────┐│
│ │  ◀   │    │   ▶      ││
│ │ Back │    │ Next     ││
│ └──────┘    └──────────┘│
│                          │
│ ☑ Show results           │
│   Currently visible…     │
├──────────────────────────┤
│ Audience questions (3)   │
│ • Will PSD3 change…      │
│   [⭐ Highlight] [✓ Ans.]│
└──────────────────────────┘

Large tap targets, dark mode by default (darkened hall), portrait orientation, single-thumb usability.

Dark / Light mode

Default is dark background — the typical scenario is a darkened conference hall where a bright screen would dazzle the speaker.

If the speaker is presenting in daylight (workshop, morning session), the Host can switch: host dashboard → Branding / settings → Presenter dark mode (toggle). The setting applies to the whole event.

Answer time limit + gong

Time limit (countdown)

The Host can set an optional answer time limit per question (5–3600 seconds). When the Presenter activates a question:

  • If the question has a time limit and "Show results" is OFF → the projector and /qv/{code} show a big countdown in the centre of the screen. The audience sees only the question + countdown, no results.
  • If a time limit is set and results are ON → results stream at the top (as people vote), with a smaller countdown beneath.
  • If no time limit → projector falls back to "Waiting for responses…" as before.

The Presenter always sees the countdown on their phone — large number under the question. The last 10 seconds turn red and pulse.

The time limit is normally set when the question is created (Host dashboard → Add question → "Time limit" field), but the Presenter can change it on the fly — tap the small ⏱ button in the polls list and enter a different number of seconds.

Restart the timer — beneath the countdown on the presenter's phone is a 🔁 "Restart timer" button. Tap to restart the countdown from its full value for the same question. Votes are preserved — the audience doesn't lose what they already sent. Handy when the audience needs more time, or when the speaker finishes early and wants to give another 30 s for late answers.

Pause the timer — next to Restart is a ⏸ "Pause" button. Tap freezes the countdown on the current value (on all devices — projector and mobile). Under the number an amber ⏸ PAUSED badge appears. Tap ▶ "Resume" and the countdown continues from the frozen state. Votes still come in while paused — the pause only stops the visual time pressure, it doesn't close voting. Useful when someone interrupts with a question mid-vote, you take a tech break, or the speaker wants to extend the question.

Gong

The Host can upload a single mp3 file (max 1 MB) as the event's gong:

  1. Host dashboard → BrandingGong section → Upload mp3

The Presenter then has a "Play gong" button on their phone — whenever pressed, the gong manually plays on every connected device (projector and mobiles). Typical uses:

  • After a time-limit expires as an audio signal — "Time's up!"
  • When the Presenter is ending voting manually and wants to switch to results
  • To grab attention during long open-text responses

The gong is always manual — if no file is uploaded, the button is disabled with a hint. When the Presenter taps, the server writes a timestamp to qlive_events.gong_played_at and all Postgres Realtime subscribers (host, projector, /qv) play the mp3 locally.

Browser audio policy: the projector view (/qv/{code}) usually runs without a user gesture. If the first playback fails, a yellow "🔊 Click to enable audio" button appears at the top — one tap unlocks audio and gong autoplay works from then on.

What the audience sees

The Presenter doesn't control the projector directly — the projector reads event state. When the Presenter clicks "Next", the projector view (/qv/{code} or /tools/qlive/[id]/present) automatically moves to the next question — visible to the organiser and the audience.

Same for the results toggle and Q&A moderation — everything propagates via the Realtime channel.

Sharing projector /qv/{code} — always one question

The public link /qv/{code} (typically projected in the hall or shared on LinkedIn) always shows exactly one question, not a recap. Selection priority:

  1. Presenter pin — if the Presenter explicitly marked a question with the 📌 button in the "All questions" list, that one wins. Useful when you want to keep old results visible for the audience while voting on the next question.
  2. Active question — otherwise the one currently being voted on (active_poll_id).
  3. Last activated — after the event ends, falls back to the last question that was voted on.

In the Presenter's "All questions" list, every question has a 👁 / 📌 toggle next to it:

  • 👁 → tap = pin this question to the projector (even if it's #5 and active is #3)
  • 📌 (amber) → currently pinned — tap = unpin, returns to auto-fallback

Opt-in: Presenter can start and restart the event

If the Host enables Branding → "Presenter can start / restart the event", the Presenter gets prominent lifecycle buttons right on the mobile:

Start from draft

When the event is in draft, a pink banner appears at the top of the Presenter mobile:

Q-Live hasn't started yet · [Start live]

Tap switches status to live and starts accepting votes. No modal, no options — this is the first start.

Restart after end

When the Host (or the Presenter themselves) ended the event, an orange banner appears at the top:

Q-Live has ended · [Restart]

Tap opens a small modal with two options — the same the Host has in the dashboard:

  • Keep responses — the event re-activates, votes from the previous run are kept, the audience can add more.
  • Clear all responses and Q&A — clean new run of the same questions for a new audience. Requires an extra confirmation (alert) — irreversible.

Default is off — if the Host doesn't turn the toggle on, the Presenter sees no banner or buttons, and the entire lifecycle (start, end, restart) stays with the Host.

Security and limits

  • Presenter has access only to one specific event they were invited to — not to the organiser's other Q-Lives
  • The Host can remove the role anytime (host dashboard → Team → trash icon next to the member)
  • Presenter cannot change question text — to edit, they must ask the Host/Co-host
  • If the Presenter closes their phone mid-talk, the Host can take over from the dashboard

Tips for the speaker

  • Test the controller before your talk — open /tools/qlive/[id]/presenter on hotel Wi-Fi, walk through all questions forward and back
  • Beware accidental Next taps — tap targets are large, so raising the phone to your face might trigger one. If it happens, use Back (returns to previous question)
  • Show results is best turned on after announcing the correct answer or after the discussion — otherwise the audience sees the results too early and loses motivation to vote
  • Moderate Q&A live — when you get a good audience question, tap "Highlight" and it appears in the projector while you address it