Leaderboard and Points Calculation Improvements #12
+773
−408
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request primarily improves reliability and accuracy in several core platform features, including leaderboard calculations, lab completion polling, and CTF submission tracking. It also adds minor configuration and usability enhancements. The most significant changes are summarized below:
Leaderboard and Points Calculation Improvements
ObjectiveCompletiontable for more accurate and up-to-date results, replacing the previous aggregation from thestudentProgresstable. This ensures that the leaderboard reflects actual completed objectives rather than potentially outdated summary data.Lab Completion Polling and User Experience
LabPageto useuseCallbackforfetchCompletionStatus, preventing infinite loops and unnecessary network requests. Polling now pauses while the user is editing the completion form to avoid race conditions, and resumes after successful submission. (app/dashboard/labs/[labId]/page.tsxR69-R84, app/dashboard/labs/[labId]/page.tsxR103-R132, app/dashboard/labs/[labId]/page.tsxR268-R271)isEditingForm) is correctly reset when users interact with the completion form, improving UX and preventing polling during edits. (app/dashboard/labs/[labId]/page.tsxR397-R409, app/dashboard/labs/[labId]/page.tsxL429-R463)CTF Submission Tracking
challengeId(e.g.,"web-001") instead of a UUID, improving consistency with challenge identifiers elsewhere in the platform.Configuration and Documentation
wc,ls) to the allowed commands list in.claude/settings.local.json.FIXES_SUMMARY.md,TESTING_RESULTS.md). [1] [2]These changes collectively enhance backend data accuracy, user feedback, and maintainability of the platform.