CSC/ECE 517 Spring 2020/E2022 Allow reviewer to say review can be shown to class as an example

From Expertiza_Wiki
Jump to navigation Jump to search

Introduction

Expertiza is an open source web application project based on Ruby on rails framework. Expertiza allows instructors to add assignments and students to upload their submissions. Students can form teams through expertiza for group projects. Students can also peer review the assignments after the submission deadline.

Problem Statement

It is about adding a new feature in Expertiza which enable students to learn from seeing examples of good reviews, something like the one from Eli Review. However, the desired feature is expected to differ in the following ways:

1. Students should be able to see an entire review, both text and ratings, not just a single comment.

2. The student view should not show the name of the reviewer or the reviewee. The views of power users such as TA, instructor, admin should show these names. Note that this functionality is the same as in the current views that show reviews. So we can just use response/view

Design

Approach

1. We append a column to the response representing their respective status. The following table explains the significance of each value:

Status Explanation of the value
PRIVATE Default, private
PUBLIC Public (selected by the student but has not been selected as a sample review by the instructors.
PUBLISH Selected as a sample by the instructors.

Features

1. Student's Consent: In each review assignment, there will be a checkbox that says "I agree to share this review anonymously as an example to the entire class" then students can decide to check this box or not just before they submit reviews. Similarly, the student can revert it back to 'private' anytime. This could be implemented by the simple addition of a checkbox in response.html.erb and set a "status" field to “public”of the Response object via a controller method, preferably "create".

2. Schema: Update the schema with the above column changes via migrations

3. Instructor's Selection: The instructor can select from among the "public" reviews and decides which to make visible to other students doing a particular assignment, i.e. all participants in that assignment. And this will set the “status” field to “selected”. Specifically, the instructor first goes to “View review report” and clicks on one team name (in the “Team reviewed” column). Then in the popup/team_users_popup page we need to add a button (better put it at top right) named “make this review an example”. If this review has already been shown as an example, the button should be “remove this review from examples” instead.

4. List of Sample Reviews: A participant can see these "exemplary" reviews by going to "Others' work" for the assignment in question, and clicking on one or more links that say, e.g., "Sample review". And it should be shown just below the title “Review for ...”. It could be implemented on the student_reviews/list.html.erb.

5. Mapping of Reviews and Assignment:' Note that although only participants in that assignment of the current course can see those reviews, the assignment that the reviews are taken from doesn't need to be an assignment for the current course. It could be an assignment from a previous course. This would enable students working on OSS Project to see OSS Project reviews from a previous semester. One idea is that when clicking to “make this review an example”, it will link to a page where you can select an assignment to which you have access (the same as the list of “Assignment” in the tree_display), then the example review will be shown to all participants of that specific assignment. We also need to do the same thing for “remove this review from examples” Since we already have a response_maps table, we can add a column to map it with a specific assignment. This may/may not need a change in key constraints for the table. We plan to resolve them accordingly.

6. MVC Setup: We would need to create new partials in various views, and possibly a helper for response_controller.rb. We could achieve that by creating a MVC setup for the entire flow.

UML Diagram

  • Use Case -



Power Users: Instructors, TAs, Admins and Super Admins

Proposed code changes

1. Adding two columns 'status' and 'selected' in responses table. Changes will happen in db/schema.rb

2. Adding a checkbox to select whether reviews could be shown as an example in the response views. (/app/views/response/response.html.erb)

3. On selecting the checkbox, update the status field in responses table in response controller. (/app/controllers/response_controller.rb)

4. To allow instructor to select among the public reviews make changes in /app/views/popup/team_users_popup.html.haml

5. To enable students to see the example reviews, make changes in the views of student_review. (/app/views/student_review/list.html.erb)

Test Plan

Our test plan includes testing through rspec tests and through GUI.

Resources

Repository link: https://github.com/SujalAhrodia/expertiza

Team

Mentor: Dr. Ed Gehringer (efg@ncsu.edu)

Ayush Khot (akhot@ncsu.edu)
Akanksha Bhattacharya (anbhatta@ncsu.edu)
Jasmine Madonna Sabarimuthu (jsabari@ncsu.edu)
Sujal (ssujal@ncsu.edu)