CSC/ECE 517 Fall 2016 E1633. Refactor different question types from quiz feature

From Expertiza_Wiki
Revision as of 18:59, 7 December 2016 by Ywei8 (talk | contribs) (Created page with "== Introduction == === About Expertiza === Expertiza is an online system that is used by students to view/submit assignments and review others' work. Expertiza also provides tool...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Introduction

About Expertiza

Expertiza is an online system that is used by students to view/submit assignments and review others' work. Expertiza also provides tools to visualize the scores and gauge the improvements made during the course semester. It also facilitates and monitors team projects. It is targeted at educational and non-profit organizations. The project is funded by the National Software Foundation (NSF), NCSU Learning in a Technology-Rich Environment (LITRE) program, the NCSU Faculty Center for Teaching and Learning, the NCSU STEM Initiative, and the Center for Advanced Computing and Communication. Expertiza is an open-source project with the source code available as a public repository on GitHub. It is developed using Ruby on Rails and is increasingly becoming robust thanks to the innumerable bugs being fixed by the community. The project has a micro-blog on SourceForge where the developer community report bugs and document updates.

Motivation

This project provides an opportunity for students with likeminded interests to collaborate and work as a team to enhance the existing source code of expertiza so as to improve functionality, remove bugs and implement altogether new features.


Task

What it does

Currently, Expertiza has a quizzing feature which allow student authors to create quiz questions and “test" the peer-reviewers. The idea behind this is, if a reviewer can answer the quiz questions which were created by the author correctly, we assume that the reviewer has read the artifact carefully enough and thereby we trust the peer-review. Quiz questionnaire is one sub type of questionnaire, so it should follow the design of other type of questionnaires.

Problems with it

The number one reason that we plan to refactor the quizzing feature is that its design is not consistent with the current questions and questionnaires. Repetition of source code can be observed in quite a few areas of the system, which can be avoided. The system does not adhere to the Rails principle of Convention over Configuration and Ruby naming conventions are violated in certain segments of the code. There are 4 methods which are “edit”, “view_question_text”, “complete” and “view_completed_question” to implement for student_quiz. We need to focus on these for methods.

What needs to be done:

  • There are 3 different types of questions supported in quizzing feature: multiple choice checkbox, multiple choice radio, true/false.
  • Change the views (creating quizzes, viewing quizzes, filling in quizzes and viewing finished quizzes) to call your new model methods accordingly.


Workflow

The picture below shows our logic of the project.