CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
 
(63 intermediate revisions by 4 users not shown)
Line 16: Line 16:
= Problem Statement =
= Problem Statement =


== Goal ==
== Project Purpose ==
Calibration submissions should be copied along with calibration assignments.
Calibration submissions should be copied along with calibration assignments.


Line 35: Line 35:


= Implementation =
= Implementation =
== Proposed Design ==
==MVC==
 
The project is implemented in Ruby on Rails that uses MVC architecture. We have three separate modules namely User Interface, Database Model and Control Flow (Model, View and Controller).
 
==Principle==
 
We tend to reuse the already existing functionalities and data to our design. The calibration reviews that are present in the previous exercise will be copied into the newly created exercise which would prevent the instructor from performing additional tasks of performing reviews repeatedly. This would also prevent code duplication and additional memory usage.
 
== Design ==
The following must be added to the current implementation:
The following must be added to the current implementation:


* The same extra participants in the assignment, which are used as calibration assignments are copied over to the newly copied directory
* Participants with 'View' and 'Edit' actions in the calibration tab are copied over to the new version, as they are considered calibration submissions
* The URLs and/or files that were submitted to the previous assignment must be copied over as well
* All hyperlinks and files associated with the above mentioned participants are copied over as well
* Test cases to check if the above-mentioned steps work as required
* Participants with the 'Begin' action are not copied over
* A check is put in place to make sure that these steps are taken only for copying assignments with calibration reviews. This is signified by a calibration tab in the tool bar, on the <i>edit</i> page.
 
==Difference between Previous Implementation and Identified Solution ==
 
 
===Previous Implementation===
 
[[File:um20201.png]]
 
===Identified Implementation===
 
[[File:um20221.png]]
 


== Files Involved ==
== Files Involved ==
* '''submission_records_controller.rb'''
* '''app/models/assignment_form.rb'''
* '''index.html.erb''' in expertiza/app/views/submission_records
* '''app/views/assignments/edit/_calibration.html.erb'''
* ''' db/schema.rb'''


== Changes in code ==
All changes mentioned below have been made in <b>app/models/assignment_form.rb</b>
[[File:Code_2075.jpeg |1000px|Image: 1000 pixels]]<br><br><br>
[[File:Code1_2075.jpeg |1000px|Image: 1000 pixels]]<br><br><br>
[[File:Code2_2075.jpeg |1000px|Image: 1000 pixels]]<br><br><br>
[[File:Code3_2075.jpeg |1000px|Image: 1000 pixels]]<br><br><br>
[[File:Code4_2075.jpeg |1000px|Image: 1000 pixels]]<br><br><br>
[[File:Code5_2075.jpeg |1000px|Image: 1000 pixels]]<br><br><br>
[[File:Code6_2075.jpeg |1000px|Image: 1000 pixels]]
[[File:Code7_2075.jpeg |1000px|Image: 1000 pixels]]<br><br><br>


= Test Plan =
= Test Plan =


===   ''Manual Testing''  ===
== Manual Testing Plan ==
Manual testing should be preformed on an Expertiza server. <br>
* To check if the UI is working as expected [No broken links]
* The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.
 
=== Directions for Manual Testing ===
The following steps must be performed to test the project UI:<br><br>
'''Step 1:''' Log in as an Instructor, with Username - instructor6, Password - password<br><br>
[[File:logging_in_2075.png |1000px|Image: 1000 pixels]] <br><br><br>
 
'''Step 2:''' Find an assignment with calibration submissions present, which is represented by a calibration tab on the editing page. <br>In this case, the assignment chosen is called "Design exercise"<br><br>
[[File:editing_2075.png |1000px|Image: 1000 pixels]] <br><br><br><br>
 
[[File:with_calib.png |1000px|Image: 1000 pixels]] <br><br><br>
 
'''Step 3:''' Copy the assignment, by selecting the icon shown below<br><br>
[[File:copying_2075.png |1000px|Image: 1000 pixels]] <br><br><br>
 
'''Step 4:''' On inspection of the copied assignment, it is observed that the calibration assignments have been copied over.<br><br>
[[File:copied_2075.png |1000px|Image: 1000 pixels]] <br><br><br>
 
'''Step 5:''' In the similar way, if the calibration tab has any files attached by the reviewers, then the files would get copied along with the participant details. Below is an assignment in which one participant has submitted a file named review1.txt in calibration.
[[File:orgde.png]]
 
 
 
'''Step 6:''' As the assignment has a file in calibration tab, even the copy of the assignment will have the same file with same content copied over to the calibration tab. Below is the copied assignment's calibration tab containing review1.txt created by the participant in original design exercise
[[File:copde.png]]
 
 
== Video illustrating changes ==
[https://www.youtube.com/watch?v=cyhy2mVXcPM&feature=youtu.be '''E2075 Video Link''']
 


==== Manual Testing Plan ====
== RSpec Testing Plan ==
Manual testing should (''at a minimum''):
Below are the rspec testcases used to test the application.
* test that the UI is implemented as expected
* test that a participant can bid on projects to review
** test that a participant can move projects into the bidding column
** test that a participant can reorder projects in the bidding column
** test that a participant's bidding preferences save


==== Directions for Manual Testing ====
[[File:spec1.png]]
:# Go to [http://152.7.99.70:8081/ testing server]
:# Log in as username: '''instructor6''' password: '''password'''
:# Go to '''Assignments'''
:# Two tasks should be listed in the main assignments box
:::a. Go to '''E2085 Manual Testing- Instructor6 Reviewer review'''
:::# This UI is based on the user being a ''reviewer'' (i.e. user was not in a team and did not submit anything)
:::# The UI should allow the user to bid on any project
:::b. Go to '''E2085 Manual Testing- Instructor6 Participant review'''
:::# This UI is based on the user being a ''participant'' (i.e. user was in a team and assigned a topic)
:::# The UI blocks user from bidding on their own project (instructor6 was assigned topic4)


==== Manual Testing Demo Video ====
Video demonstration of manual testing: [https://expertiza.csc.ncsu.edu/index.php/CSC/ECE_517_Fall_2020_-_E2085._Allow_reviewers_to_bid_on_what_to_review link to be added]


===  ''Automatic/RSpec Testing ''  ===
[[File:spec4.png]]
RSpec tests will need to be written to related controller(s) and model(s). <br>


==== RSpec Testing Plan ====
These RSpec tests should (''at a minimum''):
* test basic functionality of controller(s)
* test validation of the model(s)
* test the scenarios (basic case & edge cases) mentioned above


==== Directions for RSpec Testing ====
[[File:spec3.png]]
:# [https://docs.google.com/document/d/1tXmwju6R7KQbvycku-bdXxa6rXSUN4BMyvjY3ROmMSw/edit Set up Expertiza] on personal device using [https://github.com/uahamedncsu/expertiza forked repo]
:# Run the following commands:


# related controllers:
rspec spec/controllers/
# related models:
rspec spec/models/


= Useful Links =
= Useful Links =
*[http://152.46.18.202:8080/ Server running changes implemented under E2075]
*[https://github.com/mounikaprakash/expertiza GitHub repo with changes made under E2075]
*[https://github.com/expertiza/expertiza Expertiza on GitHub]
*[https://github.com/expertiza/expertiza Expertiza on GitHub]
*[http://expertiza.ncsu.edu/ The live Expertiza website]
*[http://expertiza.ncsu.edu/ The live Expertiza website]
Line 101: Line 137:


= Team Information =
= Team Information =
* Nischal Kashyap  
* Nischal Badarinath Kashyap  
* Mounika Bachu
* Mounika Bachu
* Akshay Podila
* Akshay Podila
* Dhanraj Raghunathan
* Dhanraj Raghunathan

Latest revision as of 15:15, 26 November 2020

This wiki page describes the changes made under E2075, to ensure calibration submissions are copied along with calibration assignments for CSC/ECE 517, Fall 2020.

About Expertiza

Expertiza is an open source project based on Ruby on Rails framework, created and maintained by the joint efforts of students and faculty at North Carolina State University.

It allows the instructors to create new assignments and customize new or existing assignments. Expertiza also allows an instructor to create a list of topics the students can sign up for. Students can form teams on the web application to work on various projects and assignments together. Additionally, students can peer review each other's submissions allowing them to improve upon their work. Expertiza supports submission across various document types, including the URLs and wiki pages.


Introduction

The Expertiza project allows "calibration assignments" to be performed where students are asked to review work that has also been reviewed by a member of the course staff. Calibration is the term used for rectifying, or checking or determining something. In the context of this project, a 'Calibrated review' is one which is performed by a student, so that (s)he can verify their work by comparing it with the instructor's response for the same assignment. If the student’s review “resembles” the staff-member’s review, then the student is presumed to be a competent reviewer. Since calibration reviews are meant as reference for better performance of peer reviews (which are performed later), they are not graded.


Problem Statement

Project Purpose

Calibration submissions should be copied along with calibration assignments.

Issue in current implementation

On creating a copy of a previous assignment, say for example Design Exercise, Fall '20 for the Fall '21 semester - the calibration assignments associated with it are not copied over. The instructor is required to impersonate extra participants, and submit work on behalf of each of the extra participants. This is obviously extra trouble, and it would be a lot more convenient if an instructor didn’t have to resubmit the same calibration submissions over and over, every semester.

The following steps were taken to test the aforementioned issues:

Step 1: On copying the Design exercise assignment




Step 2: The original file contains the following calibration reviews




Step 3: However, the copy doesn't contain any of the calibrated reviews





Implementation

MVC

The project is implemented in Ruby on Rails that uses MVC architecture. We have three separate modules namely User Interface, Database Model and Control Flow (Model, View and Controller).

Principle

We tend to reuse the already existing functionalities and data to our design. The calibration reviews that are present in the previous exercise will be copied into the newly created exercise which would prevent the instructor from performing additional tasks of performing reviews repeatedly. This would also prevent code duplication and additional memory usage.

Design

The following must be added to the current implementation:

  • Participants with 'View' and 'Edit' actions in the calibration tab are copied over to the new version, as they are considered calibration submissions
  • All hyperlinks and files associated with the above mentioned participants are copied over as well
  • Participants with the 'Begin' action are not copied over
  • A check is put in place to make sure that these steps are taken only for copying assignments with calibration reviews. This is signified by a calibration tab in the tool bar, on the edit page.

Difference between Previous Implementation and Identified Solution

Previous Implementation

Identified Implementation


Files Involved

  • app/models/assignment_form.rb
  • app/views/assignments/edit/_calibration.html.erb
  • db/schema.rb

Changes in code

All changes mentioned below have been made in app/models/assignment_form.rb


Image: 1000 pixels


Image: 1000 pixels


Image: 1000 pixels


Image: 1000 pixels


Image: 1000 pixels


Image: 1000 pixels


Image: 1000 pixels Image: 1000 pixels


Test Plan

Manual Testing Plan

  • To check if the UI is working as expected [No broken links]
  • The submissions [Files and Hyperlinks] are copied when an assignment for calibration is copied.

Directions for Manual Testing

The following steps must be performed to test the project UI:

Step 1: Log in as an Instructor, with Username - instructor6, Password - password

Image: 1000 pixels


Step 2: Find an assignment with calibration submissions present, which is represented by a calibration tab on the editing page.
In this case, the assignment chosen is called "Design exercise"

Image: 1000 pixels



Image: 1000 pixels


Step 3: Copy the assignment, by selecting the icon shown below

Image: 1000 pixels


Step 4: On inspection of the copied assignment, it is observed that the calibration assignments have been copied over.

Image: 1000 pixels


Step 5: In the similar way, if the calibration tab has any files attached by the reviewers, then the files would get copied along with the participant details. Below is an assignment in which one participant has submitted a file named review1.txt in calibration.


Step 6: As the assignment has a file in calibration tab, even the copy of the assignment will have the same file with same content copied over to the calibration tab. Below is the copied assignment's calibration tab containing review1.txt created by the participant in original design exercise


Video illustrating changes

E2075 Video Link


RSpec Testing Plan

Below are the rspec testcases used to test the application.




Useful Links


Team Information

  • Nischal Badarinath Kashyap
  • Mounika Bachu
  • Akshay Podila
  • Dhanraj Raghunathan