CSC/ECE 517 Fall 2017/E17A1: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
 
(26 intermediate revisions by 3 users not shown)
Line 1: Line 1:
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.
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.


Demo link: https://www.youtube.com/watch?v=MyMc1RlLEzU&feature=youtu.be
= Introduction =
= Introduction =


Line 6: Line 7:
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.
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 ===
== 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 [https://docs.google.com/document/d/1tXmwju6R7KQbvycku-bdXxa6rXSUN4BMyvjY3ROmMSw/ link].
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 [https://docs.google.com/document/d/1tXmwju6R7KQbvycku-bdXxa6rXSUN4BMyvjY3ROmMSw/ link].


Line 36: Line 37:
make
make
sudo make install</pre>
sudo make install</pre>
* Run the expertiza Rails server
<pre>thin start</pre>


*For logging in as an instructor:- <br>
*For logging in as an instructor:- <br>
Line 41: Line 45:
:Password: password <br>
:Password: password <br>


= Action Items =
*For logging in as an student:- <br>
:Username: student17 <br>
:Password: password <br>
 
= Problem Statement and Project Purpose =
=== Existing Limitations ===
=== Existing Limitations ===
At present the calibration functionality is limited, the following points present the scenarios where the current implementation is lacking:
At present the calibration functionality is limited, the following points present the scenarios where the current implementation is lacking:
Line 59: Line 67:
** title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”
** title in “response/show_calibration_results_for_student.html.erb” to start with “Expert review comparison report for”
* Functionality changes
* Functionality changes
** Vary-rubric-by-round - Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature
** Vary-rubric-by-round - Currently, the functionality of calibration is limited. It does not support varying-rubric-by-round feature. We need to add support for having different rubrics for different rounds.
** 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
** 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 ===
=== Affected Codebase ===
==== Database Related ====
==== 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''):
A new migration file needs to be 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”
* “is_calibrated” field in assignment table to “has_expert_review”
* “calibrate_to” field in response_map table to “expert_review_to”
* “calibrate_to” field in response_map table to “expert_review_to”
Line 76: Line 84:
#response/show_calibration_results_for_student.html.erb
#response/show_calibration_results_for_student.html.erb


= Design Overview =
= Project Design =
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.


Line 85: Line 93:
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.
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 User Interface changes that are to be made as part of the project.
 
This diagram shows the Assignment Setting page in the General tab.
 
 
[[File:Change1 copy.jpg | center ]]
 
 
This diagram shows the Assignment Setting page in the Calibration tab.
 
 
[[File:17A1Change2.png | center ]]
 
 
The following diagram shows the flow of control in case of peer reviews.
 
 
[[File:FlowChart.png | center ]]
 
= Use Case Diagram =
The following is the use case diagram for the feature that we are going to implement.
 
[[File:UseCaseDiagram_E17A1.jpg | center]]


= Test Plan =
= Test Plan =
The expertiza project uses RSpec and Capybara to test the various functionality associated with the back-end and front-end components. Hence, we will also be writing test cases for the new functionality that will be added. We would also need to add additional fixtures in '''spec/feature''' to be used in the testcases.
The expertiza project uses RSpec and Capybara to test the various functionality associated with the back-end and front-end components. Hence, we will also be writing test cases for the new functionality - added as a result of this project. We would also need to add additional fixtures in '''spec/feature''' to be used in the testcases.


There are three main actors that interact with the new functionality, these are:
There are three main actors that interact with the new functionality, these are:
Line 99: Line 129:


Some of the tests that we have in mind as of now, are as follows:
Some of the tests that we have in mind as of now, are as follows:
* Instructor
* '''Instructor'''
** Login as instructor using pre-configured credential.
** Login as instructor using pre-configured credential.
** Go to "General" tab  
** Go to "General" tab  
Line 106: Line 136:
** Perform Expert Review, based on values declared in Fixtures available to Instructor.
** Perform Expert Review, based on values declared in Fixtures available to Instructor.


*Teaching Assistant
* '''Teaching Assistant'''
** Login as TA using pre-configured credential.
** Login as TA using pre-configured credential.
** Go to "General" tab  
** Go to "General" tab  
Line 113: Line 143:
** Perform Expert Review, based on values declared in Fixtures available to TA.
** Perform Expert Review, based on values declared in Fixtures available to TA.


*Student
* '''Student'''
** Log in as Student using pre-configured credential.
** Log in as Student using pre-configured credential.
** Verify if student can see "Show expert peer-review results"  
** Verify if student can see "Show expert peer-review results"  

Latest revision as of 20:47, 4 December 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.

Demo link: https://www.youtube.com/watch?v=MyMc1RlLEzU&feature=youtu.be

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
  • Run the expertiza Rails server
thin start
  • For logging in as an instructor:-
Username: instructor6
Password: password
  • For logging in as an student:-
Username: student17
Password: password

Problem Statement and Project Purpose

Existing Limitations

At present the calibration functionality is limited, the following points present the scenarios where the current implementation is lacking:

  1. No support for varying rubric by round feature.
  2. From the perspective of the student, lack of differentiation of review - whether its from an expert or otherwise.
  3. A student is not notified once an expert submits a review.
  4. 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. We need to add support for having different rubrics for different rounds.
    • 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 be 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:

  1. student_review/_responses.html.erb
  2. student_review/list.html.erb
  3. assignments/edit.html.erb
  4. assignments/edit/_calibration.html.erb
  5. response/show_calibration_results_for_student.html.erb

Project Design

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 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 User Interface changes that are to be made as part of the project.

This diagram shows the Assignment Setting page in the General tab.



This diagram shows the Assignment Setting page in the Calibration tab.



The following diagram shows the flow of control in case of peer reviews.


Use Case Diagram

The following is the use case diagram for the feature that we are going to implement.

Test Plan

The expertiza project uses RSpec and Capybara to test the various functionality associated with the back-end and front-end components. Hence, we will also be writing test cases for the new functionality - added as a result of this project. We would also need to add additional fixtures in spec/feature to be used in the testcases.

There are three main actors that interact with the new functionality, these are:

  • Instructors
  • Teaching Assistants
  • Students

Hence, we would have to write tests for each of these types of users and test the expert review functionality.

The tests for the aforementioned changes will be incorpoirated in a new test file called 'expert_review_spec.rb' located in spec/features folder.

Some of the tests that we have in mind as of now, are as follows:

  • Instructor
    • Login as instructor using pre-configured credential.
    • Go to "General" tab
      • Verify "Add expert peer review?" present instead of "Calibrated peer-review for training?"
    • Verify whether the instructor can see "Expert Review" on the assignment setting page.
    • Perform Expert Review, based on values declared in Fixtures available to Instructor.
  • Teaching Assistant
    • Login as TA using pre-configured credential.
    • Go to "General" tab
      • Verify "Add expert peer review?" present instead of "Calibrated peer-review for training?"
    • Verify whether the TA can see "Expert Review" on the assignment setting page.
    • Perform Expert Review, based on values declared in Fixtures available to TA.
  • Student
    • Log in as Student using pre-configured credential.
    • Verify if student can see "Show expert peer-review results"
      • When a new expert-review is available.
      • Show nothing when nothing is available.
    • Testing to check if the reviews show up.
      • If added by TA.
      • If added by instructor.
      • If multiple reviews from either TA or instructor show up as a list.
    • Testing varying-rubric-by-round feature.