CSC/ECE 517 Fall 2019 - E1959. Intelligent copying of assignments without topics: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 4: Line 4:
== '''Introduction''' ==
== '''Introduction''' ==


Expertiza is an open source web application project developed using Ruby on Rails framework. Let us list some of the functionalities that Expertiza allows us to do under different roles
Expertiza is an open source web application project developed using Ruby on Rails framework. Let us list some of the functionalities that Expertiza allows us to do under different roles:


As an Instructor:
As an Instructor:


we can create new assignments, edit the existing assignments, copy the assignments and also delete the assignment. The instruct can also add participants, reviewers to a particular assignment.
We can create new assignments, edit the existing assignments, copy the assignments and also delete the assignment. The instructor can also add participants, reviewers to a particular assignment.


As a Student:
As a Student:

Revision as of 23:38, 28 October 2019

Wiki Page Description

This wiki page describes about the E1959. Intelligent copying of assignments without topics (Issue #1341). We will explain about the issue and also the steps to resolve the issue.

Introduction

Expertiza is an open source web application project developed using Ruby on Rails framework. Let us list some of the functionalities that Expertiza allows us to do under different roles:

As an Instructor:

We can create new assignments, edit the existing assignments, copy the assignments and also delete the assignment. The instructor can also add participants, reviewers to a particular assignment.

As a Student:

They can form teams to work on various projects and also bid for the projects they would like to work on. They can also review other student's work and can give feedback on them. They can also submit various types of documents including the URLs and wiki pages for their project or assignment submission.

Problem Statement

Background:

When an instructor or a TA logs in to expertiza, he can see a list of assignments under the assignment tab. An instructor or a TA can copy an assignment to use the same event in another course or as another assignment. When the user copies the assignment, the assignment is being copied without providing required flexibility to the users. Majorly, we are focused on implementing two features that shall add flexibility to the copy functionality.

Issues:

Issue 1: While copying an assignment, the user (instructor or TA) is not asked whether (s)he wants to copy the topics along with the assignment or not.

Issue 2: While copying an assignment the students are not copied for a particular topic so the user (instructor or TA) is not asked whether he wants to copy the topics with the associated students or not.

Steps to generate the issues:

1) Login as an instructor using the credentials username:instructor6 password: password

2) You will be redirected to the home page of the expertiza, Hover your cursor over the manage tab and select the assignment tab.

3) It will be redirected to the assignment page so on clicking the copy icon to the right of each assignment it will create a new assignment along with the topics and students under the topic are not copied.

Resolving Issue 1:

1) To resolve the issue we will redirect the user (instructor or TA) to a new web page on clicking the copy icon which is present on the right side of each project.


2) On clicking the copy icon we will redirect to a new webpage which looks like:


3) So if we want to copy the topics associated with the assignment we will select the 'YES' button or 'NO' button if we don't want to copy the topics associated with the assignment. if we select the YES Button, then we will have a flash message showing that the assignment was copied successfully and the topics are listed under the topics tab.


On clicking the topics tab we can see the list of topics under the assignment copied



4) In a similar way, we can select the NO button which does not allow the assignment to be copied.

Resolving Issue 2:

1) The issue2 deals with whether the students of the topics should be copied or not. so we have decided to implement the issue1 and issue2 together to optimize and eliminate the redundancy by using the dry principle.

2) so instead of providing just 'YES' or 'NO' we added radio buttons which shows:

O copy without topics

O copy with topics

O copy with topics and teams



3) we can select one of the options and then we can select the create button according to our desired choice


4) The assignment will be copied successfully according to our choice.


Code modification

we have modified 5 files and mainly we have modified code in two classes they are: assignments_controller.rb under the apps/controllers assignment_form.rb under the apps/models

we have created a new web page that is triggered on clicking the copy icon for the assignment. The view page is the checktopicscopy.html.erb under the views/assignments folder.

For the reviewers

1) Please log in using the instructor credentials they are username:instructor6 password: password

2) Then select the assignment tab under manage

3) The assignment page opens and then select the copy button of the desired assignment.[NOTE: Before copying see that the assignment already has the topics or not by selecting the edit icon of the assignment]

4) If that particular assignment does not have the topics, choose another assignment which has topics to test our functionality.

5) On clicking the copy icon you will be redirected to the web page which has options, select one of the desired options and select the create button.

5) On clicking the Create button you will be redirected to the edit page of the newly created assignment. In the edit page if the topics tab appears it means that the topics are copied and you can check whether the students under the topics are copied or not.[NOTE: if the topics tab is absent beside the General Tab it indicates that the topics are not copied with assignment]

6) Check the new assignment based on the choice you selected while creating a copy of an assignment.

Testing

we have made changes to the test cases and both the assignment_form.rb in models and also the assignments_controller.rb in controllers have passed all the test cases.


Our work

The code we created can be found below. We have also linked the video of our tests running with coverage to showcase the work we have done.

Our Recommendation for a separate issue

In the current system, we identified an issue and would like to bring it to your notice.


Existing System

When a user attempts to copy an assignment, the code creates a duplicate ‘assignment’ object, renames it as ‘copy of’ + <name of existing assignment>, saves the object and redirects to the ‘edit’ page where user is supposed to rename the assignment to something meaningful.


Issue

The current naming scheme as ‘copy of’ + <name of existing assignment> is creating an issue. Say you are creating a copy for some assignment named ‘OSS Project’, the copy object will be named as ‘copy of OSS Project’, saved and redirected to edit page. Had there been an existing assignment names ‘copy of OSS Project’ (which is likely), the copy attempt shall fail, putting a flash message on the screen like:


The assignment was not able to be copied. Please check the original assignment for missing information.


The above error message is in no relevance to the real reason for the error. Even though the save attempt failed, a copy is being inserted into the assignments table in the database.

Proposed Recommendation

Current naming scheme must be changed to have randomness. The name of the assignment can be given a random string, or a string like ‘copy of ’ + <name of existing assignment> + <5 digit random code>.

The user is anyway supposed to edit the information in the edit page (where the application is redirected after copying is successful). So, here, he can change the name to have some meaningful string.

Team Information

1) Sai Vishnu Muvvala(smuvval)

2) Rohan Pillai(rspillai)

3) Subha Sekhar Reddy Pereddy(speredd)

Mentor : Yashad Trivedi