CSC/ECE 517 Fall 2020 - E2068. Refactor quiz questionnaires controller.rb

From Expertiza_Wiki
Jump to navigation Jump to search

Basic Project Information

Team

Colleen "Bria" Engen (ceengen)
Justin Kirschner (jkirsch)
Darby Madewell (demadewe)

Files Involved

app/controllers/quiz_questionnaires_controller.rb
app/views/questionnaires/_quiz_questionnaire.html.erb
app/views/questionnaires/view.html.erb
spec/controllers/quiz_questionnaires_controller_spec.rb

Running Tests

rspec spec/controllers/quiz_questionnaires_controller.rb


Introduction

This project contributes to Expertiza, an open-source project using Ruby on Rails. Expertiza is a platform for student learning that encourages active and cooperative learning while discouraging plagiarism.

Background

quiz_questionnaires_controller.rb is used in Expertiza to handle all functionality related to quizzes. A quiz is a type of questionnaire that allows reviewees to interact with their reviewers and making sure they read the submissions before reviewing. The student creating a quiz is supposed to ask questions related to their work, which, ideally, a reviewer should be able to answer. (If a reviewer cannot answer the questions about the reviewed work, then we might doubt the quality of that reviewer’s review.) This controller needs some changes as detailed below.

Issues

  1. Change the way min_question_score and max_question_score are set for @questionnaire on lines 39-40, as well as on lines 53-54.
    • These statements set the max and min scores to 0 and 1 regardless of what the user enters, which is not intended.
    • Change it so that the values are set according to what the user enters from the UI.
  2. Change the error message on line 78:
  3. Consider lines 259-265, different methods are called with the same parameters (question, choice_key, q_choices) to create different types of questions, depending on q_type.
  4. Make appropriate changes to tests so that they pass after the above changes.

Implementation

Code Modifications