CSC/ECE 517 Fall 2020 - E2075. calibration submissions should be copied along with calibration assignments
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 intructor to perform additional tasks of performing reviews repeatedly. This would also prevent code duplication and additional memory usage.
Proposed Design
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
- The URLs and/or files that were submitted to the previous assignment must be copied over as well
- Test cases to check if the above-mentioned steps work as required
[More on the design pattern if any, ER/ UML diagrams to be updated as the project progresses]
Files Involved
- submission_records_controller.rb
- index.html.erb in expertiza/app/views/submission_records
Difference between Previous Implementation and Proposed Solution
Previous Implementation
Proposed Implementation
Proposed Solution
- In the entire database check for tables which store the URL of the submitted student's work. The table which stores it is Submissions_Records
- The URL from this table should be copied and updated to the database table which stores calibration results.
Test Plan
Manual Testing Plan
Manual test 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
- Go to the testing server [VCL Instance] and log in with the credentials - username: 'instructor6'; password: 'password'
- Go to an existing assignment (say A1) that you want to setup calibration for
- Select the copy button (generates A2)
- Toggle onto the calibration tab of the original directory (A1) and check the files present inside it
- Now, select the copied directory (A2)
- On the calibrations tab, check whether the copied submissions [Files and URLs] are present.
RSpec Testing Plan
RSpec test to check:
- Validation of the models
- Sanity and basic functionality of controllers
- This involves essentially checking if the copied calibration's corresponding model has entries for the submissions
Directions for RSpec Testing
- Run the following commands:
- For controllers: rspec spec/controllers/
- For models: rspec spec/models/
Useful Links
Team Information
- Nischal Kashyap
- Mounika Bachu
- Akshay Podila
- Dhanraj Raghunathan