A host cannot see who won a quiz they already hosted
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 58/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- postgresql, react, typescript
- Lĩnh vực
- backend, databases, frontend, full-stack
Hướng nghiên cứu
Read apps/http-server/src/controllers/quizController.ts first, especially how participated quizzes are included in getAllQuizesController; then inspect apps/frontend/src/screens/Dashboard.tsx and the existing live podium ranking and styling. Add the latest completed session’s top three to the hosted quiz response in one request, using score then total answer time for ties, and show no podium if there is no completed session. Done means each completed hosted quiz card shows ranked names and scores, the empty case is hidden, and the dashboard still loads without a query per card.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
When a quiz ends, the host sees the podium on the results screen. Once they leave that page it is gone — there is no way back to it.
A few days later, going to the dashboard to check who won, the hosted-quiz card shows only this:
[COMPLETED] 24/10/2026
Science Quiz
A quiz about the solar system
5 Qs 3 Sessions
Status, date, title, description, question count, session count. No winners, no scores, no players. Clicking the card opens the quiz builder, which is for editing questions, not for looking at results.
The data is still there
Nothing deletes it. endQuizSession only marks the session COMPLETED and clears the Redis cache — Participant rows and their scores stay in Postgres. Confirmed on production: a session from 17 October still has all 751 of its participants with their scores intact.
So this is purely about surfacing what already exists.
What is missing
getAllQuizesController in apps/http-server/src/controllers/quizController.ts returns only counts for hosted quizzes:
const organizedQuizes = await prisma.quiz.findMany({
where: { quizOrganizers: { some: { userId: req.userId, inviteStatus: "ACCEPTED" } } },
include: {
_count: { select: { questions: true, quizSessions: true } }
},
orderBy: { createdAt: "desc" }
});
No participants, no scores.
What to build
Show the top 3 on each completed hosted-quiz card — name and score, in rank order, the same gold/silver/bronze treatment the live podium already uses.
Three is the right number here: a dashboard card has little room, and "who won" is the question being asked. A full leaderboard belongs on its own page if anyone wants one later.
Points to decide, and worth saying which you chose in the PR:
- A quiz can have several sessions. The card shows a session count, so it has run more than once. Pick the most recent completed session, or let the host choose — the simplest version is the latest, and say so in the UI so it is not misleading.
- A quiz with no completed session yet should show nothing rather than an empty podium.
- Ties. The live leaderboard already ranks by score and then by total answer time. Reuse that ordering rather than inventing a second one, so the dashboard agrees with what people saw on the night.
Suggested shape
Backend: include the latest completed session's top 3 in the existing dashboard response. One query for the whole list rather than one per quiz — getAllQuizesController already does something similar for participated quizzes, which is worth reading first as a model.
Frontend: a small block at the bottom of the card in apps/frontend/src/screens/Dashboard.tsx, under the Qs/Sessions row.
Definition of done
- A completed hosted quiz shows its top 3 with names and scores
- A quiz that has never been played shows no podium
- Ranking matches what the live leaderboard showed
- The dashboard still loads in one request; no query-per-card
Good first issue: the data already exists and the podium styling already exists on the results screen — this is mostly connecting the two.
- Ngôn ngữ chính
- TypeScript
- Star
- 21
- Fork
- 7
- Merge trung bình
- 4 giờ 31 phút
- Pull request đã merge (30 ngày)
- 22
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của TheCodeHeist-Coder/Rexial
-
bug good first issue help wanted UI & UX
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
TheCodeHeist-Coder/Rexial#205 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
One PDF upload freezes the whole AI service, including its health checkCó thể đã có người làm @Anshuu2004 đã nhận 2 ngày trước. Đang mởBackend first issue bug help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
TheCodeHeist-Coder/Rexial#193 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
The join endpoint returns an error shape the frontend cannot readCó thể đã có người làm @Anshuu2004 đã nhận 2 ngày trước. Đang mởBackend first issue bug good first issue help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
TheCodeHeist-Coder/Rexial#192 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Registering without a password returns a 500 instead of telling you what is missingCó thể đã có người làm @Anshuu2004 đã nhận 2 ngày trước. Đang mởBackend first issue bug good first issue help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
TheCodeHeist-Coder/Rexial#191 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
CI does not run the frontend testsCó thể đã có người làm @nayan45633 đã nhận 1 ngày trước. Đang mởBackend first issue good first issue help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
TheCodeHeist-Coder/Rexial#188 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của TheCodeHeist-Coder/Rexial
Issue tương tự
-
Native Web
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 80/100
digitalfabrik/integreat-app#4517 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
TLS guide repeats certs/ in the certificate directoryCó thể đã có người làm @maheshrijal đã nhận hôm nay. Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 92/100
prometheus/docs#3156 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 83/100
medusajs/dtc-starter#90 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
usability
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
inmanta/web-console#7632 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
zaidmukaddam/scira#261 ·