CSC/ECE 517 Spring 2019/E1933 Allow reviewer to say review can be shown to class as an example: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
Line 163: Line 163:
== Links ==
== Links ==
[https://youtu.be/Q1UczIJMmcE Screencast of the project] <br>
[https://youtu.be/Q1UczIJMmcE Screencast of the project] <br>
Enter git pull request here <br>
[https://github.com/expertiza/expertiza/pull/1464 GitHub Pull Request] <br>


== References ==  
== References ==  

Revision as of 01:34, 27 April 2019

Introduction (Reviews in Expertiza)

In Expertiza, students can review other team's project. The instructors can create assignment specific questions based on which students can write these reviews. The questions are in rating and/or comment form. Currently, the instructors write hints as a part of review questions. These hints can be instructions on how to structure your review, what to include/exclude etc. These help students write constructive reviews. But this is clearly not enough. If the students could read through some sample reviews, they would gain a better understanding of how to write reviews. This project aims to do just that.

Problem Statement

The objective of this project is to:

  1. Add a feature for students to toggle the visibility of their reviews. When reviews are marked 'public', instructors will have the option of adding them as a 'sample review' to any assignment. When reviews are marked 'private' they will not be shown to other students as a sample.
  2. Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of their assignments in the course.
  3. Add a feature for instructors to select a subset of 'sample' reviews and set those reviews as sample reviews for a particular assignment.
  4. Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.

Implementation Details

What is this project adding to the reviews?

The goal of this project is to enable instructors to select certain reviews to show as examples to the entire class. Thus the students will be able to see good reviews that one student has submitted for another student's work. The students will be able to get understand what a good review looks like and what exactly is expected from them when they review any other team's work.

Implementation

1) Creating a checkbox: When a student submits a review, they should be able to choose if they want to make their review public or private. Thus we added a checkbox to the review page. Checking this checkbox will make the review public. Unchecking it will make the review private. When this status changes, a message is displayed next to the checkbox saying if the status was changed successfully.

2) Allow students to make a review private: Students should be able to change the visibility of their review even after they have submitted it. A checkbox similar to the one described above was implemented where students can see the reviews they have given. If a review has been made private after an instructor has selected it as a sample review, it is still not displayed to students as an example review.

3) Allow instructors to select(remove) sample reviews: If a review has been made public by the reviewer, the instructor is able to select that review to be made a sample review. If the review is already a sample review, the instructor is able to remove from the set of example reviews. If the review was private, the instructor is shown a notice that 'This review is private.' and they are not allowed to select it as a sample review. This selection can be done when the instructor is viewing the review.

4) Set some of selected reviews as sample for an assignment: Sample reviews can be identified by the assignment, reviewer (a participant) and the reviewee (a team). When editing an assignment, the instructor is able to select past assignments, select a reviewer and select the reviewee. The way in which the instructor selects the assignment is to select the from a dropdown. the assignment dropdown is populated with all the assignments that the instructor has created and all the assignments that belong to the course. When the assignment is selected, the reviewer dropdown will then be populated with the names of the reviewers whose reviews have been made public and have been selected by the instructor. Once the reviewer is selected, the reviewee dropdown will get populated with names of teams to whom the review has been given. This will identify the selected review. The instructor will be able to set it as sample review for the current assignment. This means that the instructor can even set a review from any of their earlier assignments as a sample.

5) Allow students to see sample reviews: When a student wants to review other team's work, they will be shown a list of sample reviews that the instructor has selected for them. In the list each review is a link to the full review.

Files that changed

  • Create migration to create a column called status which can take on the values 'selected' = 2, 'public' = 1 and 'private' = 0. Changes will reflect in db/schema.rb

Status can have 3 values as listed below:

Status Explanation of the value
0 Response is private. This is the default value.
1 The response is marked public by the student but has not been selected as a sample review by the instructors.
2 The response has been selected as a sample by the instructors.
  • Created a checkbox in a view: views/response/response.html.erb. To allow students to mark their reviews as public.
  • Added code to check the status field from response.html.erb and update the db, in controller: app/controllers/response_controller.rb (in method "create"). This will reflect the choice of the student in the database.
  • The instructors will select sample reviews from a set of public reviews. The code change will be in the file team_users_popup.html.haml which is under the views/popup directory.
  • Students will be able to view sample reviews. The code change will be in the file list.html.erb which is under the views/student_review directory.
  • In order to paginate and display a list of reviews to chose from for the instructors, we will have to create partial view files.


UML Diagram

  • Use Case -



Power Users: Instructors, TAs, Admins and Super Admins

DB Design

Previous work

A team in the Fall 18 semester had partially done this project. As per their findings, there was no association maintained between assignments. Thus it is impossible to recognize if sample reviews from a previous session of the same course can be shown students of the current session of the course. The earlier team decided to create a model to store such an association between assignments. This model contains two columns both having different assignment IDs. This means that all the selected reviews in an assignment will be shown as sample in the other assignment

Our Approach

1) We did not want the all selected reviews in an assignment to be shown. Instead we added a facility for instructors to select individual reviews and set them as sample. Hence we created a migration where we create a model. The model has an assignment id and a response_map_id. The assignment_id is the id of the assignment for which the sample is to be shown. The response_map_id is the id of the sample review.
2) We also added a column called visibility to the responses model which will show if the review has been marked 'private', 'public' or 'selected'.

Design Pattern

In our project, the implementation of a new functionality would be through a Delegation pattern which is an object-oriented design pattern that allows object composition to achieve the same code reuse as an inheritance.

Test Plan

This shows the overall flow of what the users of the system should be able to do. We will write tests such that the entire flow will be completely tested.
As a Power User (TA/Instructor/Admin/Super Admin) (Scenario 1)

  1. Log in
  2. Click on Manage->Assignments
  3. Displays a list of Assignments
  4. Click View Report/Review for a particular assignment.
  5. Displays a list of reviews submitted by students.
  6. Click on any review in "team reviewed" column for a particular student.
  7. Displays the summary of reviews submitted by that student, with a "Make as sample" button on the right of every review.
  8. Click on "Make as sample" for the intended reviews, which opens a popup that displays a list of all assignments that are a part of the instructor's courses.
  9. From this list select all assignments for which the review has to be shown as a sample.
  10. Click on 'Submit' after selection (this closes the popup).
  11. Navigate to view reviews of that particular assignment and click on "Sample Reviews".
  12. A new page is opened that lists out all the sample reviews of the assignment.

As a Power User (TA/Instructor/Admin/Super Admin) (Scenario 2)

  1. Log in
  2. Click on Manage->Assignments
  3. Displays a list of Assignments
  4. Click Edit for a particular assignment.
  5. Click on the review tab.
  6. Select an assignment from the dropdown
  7. Select a reviewer from the second dropdown.
  8. Select a reviewee from the third dropdown.
  9. Click 'Add' button to add the selected review to be shown as a sample for this assignment.
  10. Add as many sample reviews as you want in the same way.


As a Student (Scenario 1)

  1. Log in.
  2. Click on Assignments
  3. List of assignments is displayed.
  4. Click on any assignment for which the review has to be submitted.
  5. Assignment task page is displayed.
  6. Click on "Other's work" to open the reviews summary page (at /student_review).
  7. Below the heading "Reviews for ...", click on the "Show sample reviews" link.
  8. This opens a page where the student can view all sample reviews for that assignment.


As a Student (Scenario 2)

  1. Log in.
  2. Click on Assignments
  3. List of assignments is displayed.
  4. Click on any assignment for which the review has to be submitted.
  5. Assignment task page is displayed.
  6. Click on "Other's work" to open the reviews summary page (at /student_review).
  7. Chose to review any of the teams' assignments that are displayed.
  8. Select a team for review and fill in the review.
  9. Before submitting the review, select the checkbox that says "I agree to share this review anonymously as an example to the entire class".
  10. After clicking on the submit button, the review submitted has been made public.

Screenshots of implementation

Students are able to toggle between private and public visibility of their review.

The screenshot below shows a button next to every review which gives an option Mark as Sample. This access will be given to instructors.


Once the review is marked as sample, the instructor will be given an option to Remove as Sample.


The instructor is able to select a review to be shown as sample by selecting from assignment, reviewer, reviewee dropdowns.


Students are able to see the sample review for an assignment.

Links

Screencast of the project
GitHub Pull Request

References

Expertiza Wiki
Expertiza Home
Previous team's documentation

Team Members

1) Nikita Pramod Paranjape

2) Ashish Kumar Jayantilal Jain

3) Devang Upadhyay

4) Pranav Reddy Anumula