CSC/ECE 517 Fall 2013/oss vna: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 4: Line 4:
Expertiza is built on Ruby on Rails platform. It uses the mysql db as the backend datatbase. More information on Expertiza can be found [https://github.com/expertiza/expertiza here]
Expertiza is built on Ruby on Rails platform. It uses the mysql db as the backend datatbase. More information on Expertiza can be found [https://github.com/expertiza/expertiza here]


Experitza is a opensource project. The source code can be forked from github and cloned for making modifications.
Experitza is a opensource project. The source code can be forked from [https://github.com/expertiza/expertiza github] and cloned for making modifications.


== Project Requirements ==
== Project Requirements ==

Revision as of 21:33, 29 October 2013

Introduction

Expertiza is a web application where students can submit and peer-review learning objects (articles, code, web sites, etc). It is used in select courses at NC State and by professors at several other colleges and universities to manage peer reviews in coursework.

Expertiza is built on Ruby on Rails platform. It uses the mysql db as the backend datatbase. More information on Expertiza can be found here

Experitza is a opensource project. The source code can be forked from github and cloned for making modifications.

Project Requirements

1. Topics tab is non-functional, but should do what the popup menu item “Add/edit signup sheet” does.
2. Rubrics tab should show “Teammate Review:” option if “Has Teams?” is selected and “Maximum number of members per team” is greater than 0 in General Tab.
3. The code should retrieve timezonepref of current user in Due dates tab. Also, time/date picker asks a user to specify the hours, minutes, and seconds of a due date.

3.1 Use a time/date picker that doesn’t show seconds.
3.2 Minutes should be in the step size 5.

4. Refactoring
5. Tests for all the functionality mentioned above

Implementation

This section gives brief details of all the implementations done for project E801.

Topics Tab

The requirement of this implementation was to make topics tab functional. This tab is mainly responsible to display a page where user can create a topic for a assignment and can see already created topics for that assignment.

Initial Design

Ideally, when we click on topics tab, it should display what the popup menu item “Add/edit signup sheet” does.

   1.Go to Manage->Assignments
   2.For a assignment, click on edit signup sheet

However, in main expertiza project, topics tab was non-functional as shown below. To check Topics tab, follow below mentioned steps:

   1.Go to Manage-> Assignments
   2.Click on “edit assignment” image for any of the assignments
   3.Go to “Topics” tab (You will not be able to view existing topics and create new ones)

Modified Design

In our implemented project, Topics tab shows already existing topics for an assignment and link to create a new topic where a user can create a new topic. This is similar to popup menu item “Add/edit signup sheet”. One can follow the same steps as mentioned above to view the functionality:

   1.Go to Manage-> Assignments
   2.Click on “edit assignment” image for any of the assignments
   3.Go to “Topics” tab (You should be able to view existing topics and create new ones)


Teammate Review Rubric

Initial Design

While editing or creating an assignment the Teammate Review rubric shows up irrespective of whether the assignment is a team assignment or not. It should ideally only show up if the assignment under consideration has teams.

Modified Design

Now, the Teammate Review rubric shows up under the Rubrics tab, only if “Has Teams?” is selected and “Maximum number of members per team” is greater than 0 in General Tab.
One can follow the below mentioned steps to view the functionality:

1.Go to Manage-> Assignments
2.Click on “edit assignment” image for any of the assignments
3.Click on “General” tab
4.Check “Has teams?” and give “Maximum number of members per team” greater than 0.
5.Save assignment
6.Go to “Rubrics” tab. Check if “Teammate Review:” is present.
7.Repeat the same process with “Has Teams?” unchecked and “Maximum number of members” equal to 0. This will not display “Teammate Review:” in 
the Rubrics tab.

Refactoring

Requirements for this section were centered around the following points:
1. Renaming set_up method. It does not indicate its functionality.
2. Refactoring copy method
3. Fixing spell check issue for "Maximum number of review per team"

Initial Design

1. set_up method is badly named. It does not indicate what functionality it implements. This method is present in assignments controller.
2. "Maximum number of review" under rubrics tab is not spelled correctly. This can be found under :

   Manage->Assignments->Edit Assignment->Rubrics

3. "copy" method in assignments controller is too long.

Modified Design

1. set_up has been renamed to set_up_assignment_review to better reflect what it actually implements.
2. "Maximum number of review" has been renamed to "Maximum number of reviews".
3. "copy" method has been refactored by moving some of its functionality into its respective method copy_assignment_questionnaire.

Timezone Issue

Initial Design

Time zones are not handled properly in the code. The code should retrieve the Preferred Time Zone of the current user and pre-select it in the time/date picker. Also, the time/date picker asks a user to specify the hours, minutes, and seconds of a due date. Obviously we don’t care about seconds, so it would be nice to use a time/date picker that doesn’t show seconds and minutes are in steps of 5. Also daylight savings time needs to be taken care of.

Modified Design

The above mentioned issues are addressed and can be viewed by following the below mentioned steps:

1.Go to Profile. Set timezone to any new timezone and save it.
2.Go to Manage-> Assignments
3.Click on “Edit Assignment” image for any of the assignments
4.Go to “Due dates” tab. Click on the textfield for  “Round 1: Submission”. You can find that it doesn’t show seconds and minutes are in 
the step size 5, also, in “Time Zone”, it shows the timezone set in the earlier step.

Testing

The testing was limited to the changes made as part of this project.

Following test

Future work

In order to further refactor the assignments_controller.rb

1. No usages for the following methods were found:
- copy_participants_from_course
- define_instructor_notification_limit
2. Following methods can be moved to Model classes but are non-functional(throwing errors) in the existing code itself.
-associate_assignment_with_course
-remove_assignment_from_course
3. Methods that add to and delete from delayed_queue should be in the delayed_queue class.(Part of different project)

External Links

  1. Expertiza
  2. E801_Expertiza
  3. Demo
  4. Datepicker
  5. Timepicker
  6. Layouts and Rendering in Rails