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
Line 126: Line 126:
[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza Wiki] <br>
[http://wiki.expertiza.ncsu.edu/index.php/Main_Page Expertiza Wiki] <br>
[https://expertiza.ncsu.edu/ Expertiza Home]<br>
[https://expertiza.ncsu.edu/ Expertiza Home]<br>
[http://wiki.expertiza.ncsu.edu/index.php/E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example Earlier team's documentation]
[http://wiki.expertiza.ncsu.edu/index.php/E1867_allow_reviewer_to_say_review_can_be_shown_to_class_as_an_example Previous team's documentation]


==Team Members==
==Team Members==

Revision as of 00:00, 16 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 students can only see what review their team got for their work. The instructors can see who reviewed each team and the review they gave.

Problem Statement

The objective of this project is to:

  1. Add a feature for students to make their reviews 'public', that is, allow other students to view them.
  2. Add a feature for Instructor to select a subset of 'public' reviews and make those reviews visible as sample reviews of any of his/her assignments in the course.
  3. Create a view where the student can see a list of sample reviews of the assignment and have a detailed view of each.
  4. Allow the student to toggle the visibility of a review they have submitted.

Implementation

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.

What needs to be done?

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 are going to add a checkbox to the review page.

2) Allow instructors to select(remove) sample reviews: If a review has been made public by the reviewer, the instructor will be able to select that review to be made an example review. If the review is already an example review, the instructor will be able to remove from the set of example reviews. If the review was private, the instructor will be shown a notice that 'This review is private.' and they will not be able to select it as an example review.

3) Allow students to see good reviews: When a student wants to review other team's work, they will be shown a link to sample reviews that the instructor has selected for them. The link will show them a view of the list of all sample views.

4) Sample reviews need not be from the current session of a course: When an instructor selects sample reviews, they should be shown to students in all sessions of that course even after the original session has ended.

5) Allow students to make a review private: Students should be able to make a review private even after they have made it public. If a review has been made private after an instructor has selected it as an example review, it should still not be displayed to students as an example review.

Files that will change

  • Create migration for the responses model called status which can take on the values 'selected', 'public' and 'private'. Changes 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.
  • Create a checkbox in a view: views/response/response.html.erb. To allow students to mark their reviews as public.
  • Add 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.


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.

Our Approach

Instead of creating a whole new model (and possibly a controller) we have decided to add a column to the existing assignments model. This column called is_similar_to will be used to get sample reviews from a previous assignment. This approach saves us a major schema change. Also, if an assignment is similar to multiple assignments and wants to take sample reviews from many of those assignments, we can follow the child to parent structure in the database. For example, if we find that assignment X (parent) was the earlier version of assignment Y(child) from the database, we will also look for the parent of assignment X and so on until there are no parents. Then we will find the sample reviews from that set of assignments.

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)

  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 Student

  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

  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.

Expected Output

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.

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