You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The mid-quiz leaderboard renders leaderboard.slice(0, 30)
(apps/frontend/src/screens/LiveQuiz.tsx:556). The final screen shows a podium
of 3 plus others, which is sortedLeaderboard.slice(3) — unbounded, but in
practice the earlier cap means the client may only ever hold a truncated list.
Two problems follow:
Nothing indicates the list was cut. A quiz with 200 players shows 30 rows and
stops. There is no "showing top 30 of 200", so the other 170 cannot tell whether
they were excluded or the app failed.
A player cannot find themselves. If you placed 47th, you finish the quiz
without ever seeing your score or rank. You answered every question and the app
never tells you how you did — which is the whole point of playing.
This matters because Rexial is built for classrooms and events, exactly the
setting where sessions exceed 30 people. The architecture notes mention 300 per
session as a design target.
Suggested fix:
Always show the current participant's own row, pinned, with their real rank —
even when they fall outside the visible slice ("You: some_logic_of_websockets_added #47 · 320 pts")
Say how many are not shown, and ideally make the list scrollable or paginated
Highlight the participant's own row when they are in the visible range, so
they can spot themselves without reading every name
The client knows its own participantId, so finding the row is straightforward.
Note the rank must come from the full sorted list, not from the sliced one.
Definition of done:
A participant always sees their own score and rank on the final screen
The UI states when the list is truncated
A participant inside the top 30 has their row visually distinguished
Good issue for someone who wants a UX-shaped problem rather than a pure bug fix.
The mid-quiz leaderboard renders
leaderboard.slice(0, 30)(
apps/frontend/src/screens/LiveQuiz.tsx:556). The final screen shows a podiumof 3 plus
others, which issortedLeaderboard.slice(3)— unbounded, but inpractice the earlier cap means the client may only ever hold a truncated list.
Two problems follow:
Nothing indicates the list was cut. A quiz with 200 players shows 30 rows and
stops. There is no "showing top 30 of 200", so the other 170 cannot tell whether
they were excluded or the app failed.
A player cannot find themselves. If you placed 47th, you finish the quiz
without ever seeing your score or rank. You answered every question and the app
never tells you how you did — which is the whole point of playing.
This matters because Rexial is built for classrooms and events, exactly the
setting where sessions exceed 30 people. The architecture notes mention 300 per
session as a design target.
Suggested fix:
even when they fall outside the visible slice ("You: some_logic_of_websockets_added #47 · 320 pts")
they can spot themselves without reading every name
The client knows its own
participantId, so finding the row is straightforward.Note the rank must come from the full sorted list, not from the sliced one.
Definition of done:
Good issue for someone who wants a UX-shaped problem rather than a pure bug fix.