UBCO-COSC499-Summer-2024 / team-1-capstone-gradefalcon

Starter structure for projects
Other
3 stars 0 forks source link

Custom bubble sheets #278

Closed oankit closed 3 months ago

oankit commented 3 months ago

Description

This PR introduces the custom bubble sheet feature generation (limit of 252 questions and of 5 options) and updates the overall OMR processing logic accordingly:

  1. Custom Bubble Sheet with Single Page:

    • Implemented logic to handle custom bubble sheets that contain a single page for exams with 100 or fewer questions.
    • Modified ReviewExams to pass numQuestions and examType to studentScores. If numQuestions <= 100 and examType is custom, the preprocessingCSV step is skipped, and results are fetched directly from Results.csv instead of combined.csv.
  2. Backend Adjustments:

    • Updated the backend logic in studentScores, UploadExam, saveExamKey, copyTemplate, and GenerateEvaluation to check if the exam has 100 or fewer questions. If so, it processes only the Results.csv.
    • Added functionality to the backend to handle the creation of custom JSON templates for bubble sheets, including generating templates for exams that span one or two pages based on the number of questions.
  3. Frontend Adjustments:

    • Updated ConfirmExamKey.js to disable changing the number of questions and options after initial setup.
    • Ensured that the courseId is correctly passed to the backend and fixed the form submission in saveExamKey.
  4. Integration of Custom Bubble Sheet into Exam Creation Pipeline:

    • Fully integrated custom bubble sheet generation and downloading into the New Exam creation pipeline, including logic to parse and apply custom templates in the exam processing workflow.

Closes #17

Type of change

How Has This Been Tested?

Checklist: