-
Notifications
You must be signed in to change notification settings - Fork 168
Ground Control Configuration Panel
Ground Control configuration is a user-friendly panel that allows the teaching admin easily manage their contests/assessments. Administrators can use the panel to toggle token counters, export contest leaderboards, assign entries for voting and customise assessments team sizes. Future developers working on assessments will benefit from a readily available panel for assessment-related controls and features.
Rationale: Enable administrators to enable token counters which are displayed upon running code. This allows students to easily check their token counts during contests without having to wrap their submissions in the count_tokens
function.
Pull Requests
Changelog
- Added
hasTokenCounter
toAssessmentConfiguration
type in frontend - Added
hasTokenCounter
toassessment_config
in backend - Added
hasTokenCounter
,tokenCount
, andcustomNotification
to workspace properties - Added new
ENABLE_TOKEN_COUNTER
andDISABLE_TOKEN_COUNTER
action in WorkspaceSaga - Imported Acorn package to count tokens in the frontend
- Added Repl output type named
NOTIFICATION_OUTPUT
with bright style to differentiate it from normal output - Added boolean cell in assessment configuration panel to toggle token counter
Outstanding issues
-
customNotification
can be used to createNOTIFICATION_OUTPUT
with custom strings, but is currently unused.
Rationale: Enable students to view both score and popular vote leaderboards.
Pull Requests
- FE: Rename to Score Leaderboard, Popular Vote Leaderboard
- BE: Rename to Score Leaderboard, Popular Vote Leaderboard
Changelog
- Added
popularVoteLeaderboard
attribute toIContestVotingQuestion
type in frontend - Added new tab for leaderboard, which conditionally renders data depending on
SideContentType
- Added
popular_score field
to answers in backend - Added methods which mirrors calculation for
relative_score
topopular_score
- Added
popularVoteLeaderboard
output for voting questions in backend
Rationale: Create a compact interface for assessment/contest management on an individual basis instead of on an assessment type basis for more flexibility.
Pull Requests
Changelog
- Added
ConfigureCell
withDialogBox
and switches for controlling token counter, voting features, and team assessments - Added Gear icon button in Ground Control to access configuration panel
- Added
handleConfigureAssessment
action to update assessment properties - Added
Has Voting Features
boolean cell to assessment configurations - Added
hasTokenCounter
andhasVotingFeatures
to assessments in backend
Notes
- Changing assessment configurations in the admin panel will add relevant attributes to an assessment once they are created by default. However, any changes made in the ground control configure panel will override them.
Rationale: Allow admin to control when the entries are allocated to students and become voteable. This replaces a previous feature where entries for voting were published based on a 24 hour cycle in the backend, which was not configurable by admin.
Pull Requests
Changelog
- Added
AssignEntriesButton
with confirmation warnings on click - Added isVotingPublished field in assessment overview type
- Added
configureControls
SCSS module for style - Added new function
reassign_voting
to delete and reassign voting - Added new call to
reassign_voting
in assessment_controller - Added new function
is_voting_assigned
to check if voting is assigned for any of the questions in the assessment
Notes
- Reassigning entries after they have already been assigned will cause all existing votes to be deleted. This is to ensure all entries have an equal chance of being voted on.
Outstanding issues
- The assignment is done based on the condition that the entry has a
return
statement. This condition should be changed to also filter low quality submissions (possibly through checking token count or other forms of moderation).
Rationale: Allow admin to easily get leaderboards from contests instead of having to manually create SQL query.
Pull Requests
Changelog
- Added
GET /courses/{courseId}/admin/assessments/{assessmentId}/scoreLeaderboard
endpoint for fetching score leaderboard - Added
GET /courses/{courseId}/admin/assessments/{assessmentId}/popularVoteLeaderboard
endpoint for fetching popular vote leaderboard - Added
getScoreLeaderboard
andgetPopularVoteLeaderboard
functions inRequests.saga
to fetch leaderboards - Added
ExportScoreLeaderboardButton
andExportPopularVoteLeaderboardButton
components to Ground Control config panel - Added
get_score_leaderboard
andget_popular_leaderboard
inadmin_assessments_controller
to handle the new endpoints - Added new render for
leaderboard.json
andcontestEntries.json
to handle the new output for Leaderboard - Added to calls to functions
fetch_top_popular_score_answer
,build_popular_leaderboard_entry
,fetch_top_relative_score_answers
,build_contest_leaderboard_entry
andfetch_associated_contest_question_id
to build the relevant leaderboard