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 49: Line 49:


Consider a row (id = x, assignment_id = Ak, is_similar_for = An, association_intent = "review"). This means, given the intent of association as "review", assignment Ak was chosen as a similar assignment for assignment An. That is, while marking some review for An as a sample, the instructor opted to have reviews of Ak as samples for An as well.
Consider a row (id = x, assignment_id = Ak, is_similar_for = An, association_intent = "review"). This means, given the intent of association as "review", assignment Ak was chosen as a similar assignment for assignment An. That is, while marking some review for An as a sample, the instructor opted to have reviews of Ak as samples for An as well.


=== New work: along with changes ===
=== New work: along with changes ===

Revision as of 22:50, 12 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.

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.

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
  • Create a checkbox in a view: views/response/response.html.erb.
  • 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").
  • For the instructors to carry out the tasks of selecting reviews, the file team_users_popup.html.haml which is under the views/popup directory.
  • For the other participants to view the sample reviews, the file list.html.erb which is under the views/student_review directory.
  • A new partial file will be created in various views possibly a helper for response_controller.rb.

DB Design

Previous work

Currently, the Expertiza database design does not maintain any link between different assignments. An assignment of the current semester is completely independent of any other assignment of any other course having similar or exact objectives. For example, in a course C, the assignment named A1 in a semester Sx has no association to the same assignment given in an earlier semester Sy.

Since our task involves using reviews from the past as samples for the present, we should create this association as a new table. Further, reviews may not be the only intention to associate assignments with each other, as future requirements might require associating them on other criteria too. Thus, we find it appropriate to name the table as "similar_assignments".

The table structure is defined here.

This table can be visualized as a directed graph where vertices represent assignments. An edge (u,v) with a label L means u is similar to v for the intent of association, L.

Consider a row (id = x, assignment_id = Ak, is_similar_for = An, association_intent = "review"). This means, given the intent of association as "review", assignment Ak was chosen as a similar assignment for assignment An. That is, while marking some review for An as a sample, the instructor opted to have reviews of Ak as samples for An as well.


New work: along with changes

Most of the design used by the team will be used as it is but there will be some major change in the design, The change is mentioned as follows:

The previous team had created an entire table, that is made major changes in the database which lead to creating a new model, view and controller. This may lead to some major problems which can affect the other functionalities.

We are preventing that by a different approach. We have decided to use the assignments table itself and just add an extra field called is_similar_for. This will be used to get the sample reviews from previous similar assignments that were assigned to students. Accordingly, changes will be made that are related to assignments.

The advantage of using this design is that some of the code which is already available can be reused. No new code will be added that was previously existing.

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

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.
  9. Use the browser's back button to go back to the Assignment review page.
  10. Chose to review any of the teams' assignments that are displayed.
  11. Select a team for review and fill in the review.
  12. Before submitting the review, select the checkbox that says "I agree to share this review anonymously as an example to the entire class".
  13. After clicking on the submit button, the review submitted has been made public.

References

Expertiza Wiki
Expertiza Home

Team Members

1) Nikita Pramod Paranjape

2) Ashish Kumar Jayantilal Jain

3) Devang Upadhyay

4) Pranav Reddy Anumula