CSC/ECE 517 Fall 2017/E17A1: Difference between revisions
Line 78: | Line 78: | ||
= Design Overview = | = Design Overview = | ||
For the purpose of this project, experts in the expertiza domain are Teaching Assistants(TAs) and Instructors. | For the purpose of this project, experts in the expertiza domain are Teaching Assistants(TAs) and Instructors. | ||
The following two patterns are implemented in the project - | |||
1.MVC Design Pattern – The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view, and controller, respectively). | |||
2.DRY Principle – We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one. | |||
The following diagram shows the control flow of reviews in expertiza. | The following diagram shows the control flow of reviews in expertiza. |
Revision as of 17:13, 7 November 2017
This wiki page is the description of the E17A1 semester project - Let experts as well as students do reviews - for Fall 2017, CSC/ECE 517.
Introduction
Expertiza
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.
Environment Setup
We have tried two different ways of setting up the Expertiza Environment, first approach used the Ubuntu-Expertiza image while the second approach involved setting up on NCSU's VCL Infrastructure. The process involving both of these approaches are detailed below. We referred the following link.
Ubuntu-Expertiza image (.OVA) [Recommended]
- This is the link for the image. (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEUmNKVncxRUhUVVE/view?usp=sharing)
- And you can install VirtualBox (free) and import this image into VirtualBox.
Some machine may require you to enable virtualization and then run the following commands.
cd expertiza bash ./setup.sh bundle install rake db:migrate
VCL Setup The process of getting expertiza up and running on VCL is well detailed in the following video. After completing the steps mentioned in the video, Additionally, we had to install Redis and NodeJS separately to get the expertiza site running. The process is detailed below:
- Steps to install Redis:
wget http://download.redis.io/redis-stable.tar.gz tar xvzf redis-stable.tar.gz cd redis-stable make
Run the redis-server using:
redis-server
- Steps to install NodeJS on CentOS:
wget http://nodejs.org/dist/v0.10.30/node-v0.10.30.tar.gz tar xzvf node-v* && cd node-v* sudo yum install gcc gcc-c++ ./configure make sudo make install
- For logging in as an instructor:-
- Username: instructor6
- Password: password
Action Items
Existing Limitations
At present the calibration functionality is limited, the following points present the scenarios where the current implementation is lacking:
- No support for varying rubric by round feature.
- From the perspective of the student, lack of differentiation of review - whether its from an expert or otherwise.
- A student is not notified once an expert submits a review.
- Additionally, a student should be able to see how an expert rated his/her assignment - similar to how it's done in calibration results for calibrated assignments(As seen when Show Calibration Results is clicked.).
Tasks Involved
Tasks are broken down into sub-tasks as follows:
- Refactoring:
- a checkbox in the "General" Tab from “Calibrated peer-review for training?” to “Add expert peer review?”
- a tab name for instructor from “Calibration” to “Expert review” on the assignment setting page
- partial file from “_calibration.html.erb” to “_expert_review.html.erb”
- the link title on student side from “show calibration results” to “show expert peer-review results”
- the file “response/show_calibration_results_for_student.html.erb” to “response/show_expert_review_results_for_student.html.erb”
- title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”
- Functionality changes
- Vary-rubric-by-round - Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature
- Both TAs and instructors could do expert reviews - need to modify “response/show_calibration_results_for_student.html.erb” to make it support multiple expert reviews
Affected Codebase
Database Related
A new migration file needs to written to make the following changes in the DB Schema (And across all files using these fields):
- “is_calibrated” field in assignment table to “has_expert_review”
- “calibrate_to” field in response_map table to “expert_review_to”
Front-end Related
The following files need to be modified and/or refactored based on their respective tasks:
- student_review/_responses.html.erb
- student_review/list.html.erb
- assignments/edit.html.erb
- assignments/edit/_calibration.html.erb
- response/show_calibration_results_for_student.html.erb
Design Overview
For the purpose of this project, experts in the expertiza domain are Teaching Assistants(TAs) and Instructors.
The following two patterns are implemented in the project - 1.MVC Design Pattern – The project is implemented in Ruby on Rails that uses MVC architecture. It separates an application’s data model, user interface, and control logic into three distinct components (model, view, and controller, respectively). 2.DRY Principle – We are trying to reuse the existing functionalities in Expertiza, thus avoiding code duplication. Whenever possible, code modification based on the existing classes, controllers, or tables will be done instead of creating the new one.
The following diagram shows the control flow of reviews in expertiza.
Test Plan
To test aforementioned changes a new test file would be created called 'expert_review_spec.rb' file in spec/features folder. Based on the new functionality added, we will perform the following tests:
- Login as instructor or TA using their respective credentials.
- "General" tab has "Add expert peer review?" instead of "Calibrated peer-review for training?"
- An instructor should be able to see "Expert Review" on the assignment setting page.
- When logging in as a student, the student should get "show expert peer-review results" link when a new expert-review is available.
- Testing varying-rubric-by-round feature
- Testing to check if the reviews added by TA also show up in expert-peer review along with the review from instructor.