You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Create a component GradeSwitcher that switches between the grades of "Assignments" and "Students"
Create a component called ExpandPanel which is a panel that can expand or de-expand when you click on the top part of it. It should also have a prop called grade which, if it is set, it makes the title to the left of the panel and shows a grade on the right of the top of the panel
Create a component QuestionGradeDropdown that has the grade of a certain student, also allowing the professor to see the student's code and change the grade
Create a component AssignmentsGrades which has all the grades of all the questions
Create a component AssignmentGradePanel that has the grades of the questions of an assignment
Create a component QuestionGradePanel that has the grades of the students for a certain question
Create a component StudentGrades which shows the total grades of all the students
Create a component called StudentGradePanel which contains all the grades of a certain student
Create a component called StudentAssignmentGradePanel which contains a student's submissions/grades for a particular assignment
Make the database changes necessary for the subpage
Create a table question_grade_overrides that has grade overrides for individual questions. The table has a column question_id of type uuid, student_id of type uuid, is_manual_grade of type boolean, and new_grade of type integer
Create the backend API endpoints for the subpage
Create a GET API endpoint /api/classroom/{classroom_id}/grades that returns all the grades of a classroom in the format: {"assignments": [{"assignment_id": ...", "assignment_name": "...", "questions": [{"question_id": "...", "question_name": "...", "max_points": ..., "submissions": [{"submission_id": ..., "student_name": "...", "student_id": "...", "score": ..., "console_output": "", "manual_grade": ..., "is_manual_grade": ...}]}]}]}
Create a PATCH API endpoint /api/classroom/{classroom_id}/grades that manually updates students' grades. The request body is in the format {"updates: ": [{"manual_grade": true/false, "question_id": "...", "student_id": "...", "new_score": ...}]}
GradeSwitcherthat switches between the grades of "Assignments" and "Students"ExpandPanelwhich is a panel that can expand or de-expand when you click on the top part of it. It should also have a prop calledgradewhich, if it is set, it makes the title to the left of the panel and shows a grade on the right of the top of the panelQuestionGradeDropdownthat has the grade of a certain student, also allowing the professor to see the student's code and change the gradeAssignmentsGradeswhich has all the grades of all the questionsAssignmentGradePanelthat has the grades of the questions of an assignmentQuestionGradePanelthat has the grades of the students for a certain questionStudentGradeswhich shows the total grades of all the studentsStudentGradePanelwhich contains all the grades of a certain studentStudentAssignmentGradePanelwhich contains a student's submissions/grades for a particular assignmentquestion_grade_overridesthat has grade overrides for individual questions. The table has a columnquestion_idof type uuid,student_idof type uuid,is_manual_gradeof type boolean, andnew_gradeof type integer/api/classroom/{classroom_id}/gradesthat returns all the grades of a classroom in the format:{"assignments": [{"assignment_id": ...", "assignment_name": "...", "questions": [{"question_id": "...", "question_name": "...", "max_points": ..., "submissions": [{"submission_id": ..., "student_name": "...", "student_id": "...", "score": ..., "console_output": "", "manual_grade": ..., "is_manual_grade": ...}]}]}]}/api/classroom/{classroom_id}/gradesthat manually updates students' grades. The request body is in the format{"updates: ": [{"manual_grade": true/false, "question_id": "...", "student_id": "...", "new_score": ...}]}