CSC/ECE 517 Fall 2020 - E2068. Refactor 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
- 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.
- Change the error message on line 78:
- 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.
- Make appropriate changes to tests so that they pass after the above changes.
Implementation
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
Code Modifications
Running Tests
rspec spec/controllers/quiz_questionnaires_controller.rb
Team Information
- Colleen "Bria" Engen (ceengen)
- Justin Kirschner (jkirsch)
- Darby Madewell (demadewe)
- Mentor: Sanket Pai (sgpai)