Right now the rubrics for grading and calibration questions for each question are maintained in Google cloud secrets:
calibrationQuestionMapping = JSON.parse(
fs.readFileSync("/tmp/calibration_question_mapping/latest", "utf8")
);
rubricMapping = JSON.parse(fs.readFileSync("/tmp/rubric_mapping/latest", "utf8"));
There should be a way to set these per hexathon without manually uploading a new secret.
Ideally, we want a page on the admin home somewhere to configure the rubric and calibration questions without having to go thru GCP. The current format for these can be found at the link above
- IMO, a good design for this would be to make a form instead of just accepting raw JSON input, since the format needs to match what the API reads. ie each rubric question has specific fields, and calibration questions are just a list of objects with specific fields. Both of these need to take some arbitrary number of entries (there may be arbitrarily many essays on a branch, or arbitrarily many calibration questions).
Then we need to store this config on each hexathon and fetch it dynamically in the grading API based on the current hexathon (this is the current setup).
The frontend also needs to be able to handle an error coming from the API if no one's set up a rubric and calibration questions for the current question yet.
Right now the rubrics for grading and calibration questions for each question are maintained in Google cloud secrets:
There should be a way to set these per hexathon without manually uploading a new secret.
Ideally, we want a page on the admin home somewhere to configure the rubric and calibration questions without having to go thru GCP. The current format for these can be found at the link above
Then we need to store this config on each hexathon and fetch it dynamically in the grading API based on the current hexathon (this is the current setup).
The frontend also needs to be able to handle an error coming from the API if no one's set up a rubric and calibration questions for the current question yet.