CSC/ECE 517 Fall 2017/E1782 OSS Project Red Assignment Directories: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 25: Line 25:
==='''Issue #391 '''===
==='''Issue #391 '''===


When an instructor tries to create a new assignment with the storage directory similar to one of the other assignments or a sub-part of other pre-existing assignment the system would warn the instructor about this change and wouldn't save the assignment.
-> When an instructor tries to create a new assignment with the storage directory similar to one of the other assignments or a sub-part of other pre-existing assignment the system would warn the instructor about this change and wouldn't save the assignment.
-> The system once gets a create request compares the directory path to paths of all existing directories for similarity and sub-part check (sub part check is required because if not done a directory will have submission files of one assignment as well as a directory for some other assignment) and logs an error if similarity is found.
-> If there errors they will be displayed in /assignment/new.html.erb
 
Pseudo Code:
1) assignment_path (old path where files are stored)
2) assignment_new_path = course_path + assignment_path (As course assigned to an assignment it must be stored within the directory structure of that course)
3) create directory assignment_new_path
4)for each assignment_file in assignment_path
    FileUtils.mv(assignment_file, assignment_new_path)
5)assignment.save
 
 
==='''Issue #404 '''===
When an instructor creates a new assignment, (s)he can do it without specifying the course to which assignment belongs. In this case, the directory path for the course is assigned as "<instructor_username>/path/mentioned/while/creating/" Eg. "instructor6/assignment4/Java/"
 
However when later s(he) assigns a course to the assignment the

Revision as of 21:20, 27 October 2017

Introduction

Problem Statement

In Expertiza, students may submit links (which go into the Expertiza db) or files (which go into a directory in the Expertiza filespace).  A persistent problem in Expertiza has been that instructors have created multiple assignments that had the same submission directory.  In this case, the students’ submissions for one assignment went into the same directory as the submissions for another assignment, and reviewers who thought they were reviewing for one assignment were also presented with work submitted by a different student on another assignment.  The basic problem has been fixed, but there are some special cases that need to be addressed, and tests need to be written.


Issues to be fixed

Issue #391: When an assignment is created, there needs to be a check that the submission directory is not the same as the submission directory for any other assignment.  In Expertiza, the pathname for an assignment always has the instructor’s user-id (e.g., /efg) in the path, so it’s only necessary to check all assignments created by the current instructor to make sure that the specified directory path is not in use by another assignment.  Make sure that the check is made correctly even if it is a TA who creates the assignment. There is a method for setting path of the submission in assignment.rb.

Issue #404: When a previously created assignment is assigned to a course, any existing submissions need to be moved to a subdirectory of the course in the Expertiza filespace.  (In Expertiza, an assignment can be created without being assigned to any course, and can later be assigned to a course.)  Even the assigning the assignment to a course is implemented in assignment.rb


Modified Files

1) assignment_controller.rb

2) assignment.rb

3) assignment/new.html.erb


Approach taken to resolve the issues

Issue #391

-> When an instructor tries to create a new assignment with the storage directory similar to one of the other assignments or a sub-part of other pre-existing assignment the system would warn the instructor about this change and wouldn't save the assignment. -> The system once gets a create request compares the directory path to paths of all existing directories for similarity and sub-part check (sub part check is required because if not done a directory will have submission files of one assignment as well as a directory for some other assignment) and logs an error if similarity is found. -> If there errors they will be displayed in /assignment/new.html.erb

Pseudo Code: 1) assignment_path (old path where files are stored) 2) assignment_new_path = course_path + assignment_path (As course assigned to an assignment it must be stored within the directory structure of that course) 3) create directory assignment_new_path 4)for each assignment_file in assignment_path

   FileUtils.mv(assignment_file, assignment_new_path)

5)assignment.save


Issue #404

When an instructor creates a new assignment, (s)he can do it without specifying the course to which assignment belongs. In this case, the directory path for the course is assigned as "<instructor_username>/path/mentioned/while/creating/" Eg. "instructor6/assignment4/Java/"

However when later s(he) assigns a course to the assignment the