Skip to content

Ground Control Configuration Panel

Jo An edited this page Apr 8, 2024 · 15 revisions

Ground Control Configuration Panel

Overview

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.

Main Features

Feature 1: Token Counter (Completed)

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 to AssessmentConfiguration type in frontend
  • Added hasTokenCounter to assessment_config in backend
  • Added hasTokenCounter, tokenCount, and customNotification to workspace properties
  • Added new ENABLE_TOKEN_COUNTER and DISABLE_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 create NOTIFICATION_OUTPUT with custom strings, but is currently unused.

Feature 2: Score and Popular Vote Leaderboard for Contests (Completed)

Rationale: Enable students to view both score and popular vote leaderboards.

Pull Requests

Changelog

  • Added popularVoteLeaderboard attribute to IContestVotingQuestion 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 to popular_score
  • Added popularVoteLeaderboard output for voting questions in backend

Feature 3: Ground Control Configuration Panel (Completed)

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 with DialogBox 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 and hasVotingFeatures 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.

Feature 4: Assign Entries for Voting (Completed)

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).

Feature 5: Export Score and Popular Vote Leaderboard (Completed)

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 and getPopularVoteLeaderboard functions in Requests.saga to fetch leaderboards
  • Added ExportScoreLeaderboardButton and ExportPopularVoteLeaderboardButton components to Ground Control config panel
  • Added get_score_leaderboard and get_popular_leaderboard in admin_assessments_controller to handle the new endpoints
  • Added new render for leaderboard.json and contestEntries.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 and fetch_associated_contest_question_id to build the relevant leaderboard

Clone this wiki locally