CSC/ECE 517 Fall 2013/final E911 rmsa

From Expertiza_Wiki
Revision as of 20:48, 11 December 2013 by Avrohama (talk | contribs)
Jump to navigation Jump to search

E722 - A module to take reports from students on results of interactions with helpers from other groups.

Description

Interaction feature allows students to enter information about their interaction with other students when they worked on projects. So this information helps the instructors of the course and TAs of that course to assign extra credit based n how well they interacted with each other and how well did one help its colleagues with their questions in the project.

The views and corresponding code help

When you login as an instructor, you can view the questionnaires. The questionnaire listing will have a questionnaire named Interaction Review.

Creating an interaction review

Questionnaires
Questionnaires


You can then add a public or private Interaction Review. While creating interaction review you must add questions that you wish to be added in the questionnaire and mention their scores and their weight.


Interaction_Review_Questions
Interaction_Review_Questions


Editing an interaction review

After creating the interaction review, you can see it by clicking on Questionnaires --> Interaction Review

Interaction_Review
Interaction_Review


You can then edit advice for each of the questions that you added in the Interaction Review Questionnaire.


Interaction_Review_Advice
Interaction_Review_Advice

Editing an assignment to assign weight and score cap for Interaction Review

After creating the interaction review and its questions and advice, it is now necessary to set a score cap and extra credit percentage for the interaction review for that assignment.

Edit_Assignment
Edit_Assignment


Since, interaction review comes under extra credit we have to set the extra credit percentage for the interaction review for that assignment. Score cap is the maximum sum of review points that one should get in order to get the full extra credit. Set a score cap and extra credit percentage for the interaction review for that assignment:


Edit_Weights
Edit_Weights


Reporting an interaction

As a student, one will then report an interaction that he or she had with his/her colleague. For that the student will navigate to a certain assignment.

Report_Interaction
Report_Interaction


You will then be presented with the following screen where you have to select that did you help someone or were you helped by someone?


Type_of_Interaction
Type_of_Interaction


Then you can submit your review response.


Fill_up_review
Fill_up_review


Once the interaction review is done, its status has to be confirmed.


Status_of_Interaction
Status_of_Interaction


Confirming the status

Once you have entered an interaction for helping someone, the helpee should then confirm whether the interaction is valid and then give a score to the helper.


Confirm_Interaction
Confirm_Interaction


Helpee_review
Helpee_review


Approving the interaction review

Once the interaction review has been done by the helper and the helpee, the instructor can then view this interaction and approve it.


View_Interaction_Report
View_Interaction_Report
Approve_Interaction_Report
Approve_Interaction_Report

Scores

Once the instructor has approved an interaction, the student can see the scores for that interaction in his/her score report for that assignment.

View_Scores
View_Scores

Important files involved in interaction review feature

  • db/migrate/create_questionnaire_folder_nodes.rb
    # Add code in self.up
    Node.find(:all, :conditions => ['type in ("QuestionnaireTypeNode","QuestionnaireNode")']).each{
      | node |
      node.destroy
    }      
    
    parent = TreeFolder.find_by_name("Questionnaires")
    pNode = FolderNode.find_by_node_object_id(parent.id)

    fnode = TreeFolder.create(:name => 'Interaction Review', :child_type => 'QuestionnaireNode')
    pfNode = FolderNode.create(:parent_id => pNode.id, :node_object_id => fnode.id)

    InteractionReviewQuestionnaire.find(:all).each{
        | questionnaire |
      QuestionnaireNode.create(:parent_id => pfNode.id, :node_object_id => questionnaire.id)
    }
  • db/migrate/update_questionnaire_menus.rb
    # Add code in self.up
    interaction_review_rubrics_action = ControllerAction.find_or_create_by_name('goto_interactionreview_rubrics')
    interaction_review_rubrics_action.site_controller_id = site_controller.id
    interaction_review_rubrics_action.save

    MenuItem.create(:name => 'manage/questionnaires/interaction review rubrics', :label => 'Interaction review rubrics', :parent_id => item.id, :seq => 8, :controller_action_id => interaction_review_rubrics_action.id)
  • app/views/assignments/edit/_rubrics.html.erb
     # Add code in jQuery(document).ready(function () {}
    addQuestionnaireTableRow(
         'InteractionReviewQuestionnaire',
          <%= questionnaire(@assignment, 'InteractionReviewQuestionnaire').to_json.html_safe %>.interaction_review_questionnaire,
          <%= assignment_questionnaire(@assignment, 'InteractionReviewQuestionnaire').to_json.html_safe %>.assignment_questionnaire,
          <%= questionnaire_options(@assignment, 'InteractionReviewQuestionnaire').to_json.html_safe %>
    );
  • app/controllers/tree_display_controller.rb
     def goto_interactionreview_rubrics
         node_object = TreeFolder.find_by_name('Interaction Review')
         session[:root] = FolderNode.find_by_node_object_id(node_object.id).id
         redirect_to :controller => 'tree_display', :action => 'list'
     end

Tables in the database related to interaction review feature

  • menu_items - Add interaction review rubrics with the name /manage/questionnaires/goto interactionreview rubrics
  • nodes - Insert the QuestionnateNode and FolderNode for Treefolder "Interaction review"
  • tree_folders - Insert a row for Interaction Review with the child_type as QuestionnaireNode
  • controller_actions - Mention the action goto_interactionreview_rubrics in it
  • interactions - Stores the interactions saved
  • interaction_weights - Stores the weight associated with each interaction review

Repository for reference

You can use the repository (https://github.com/aswin89thee/expertiza.git) as a reference. Use the E722 branch under this repository. (https://github.com/aswin89thee/expertiza/tree/E722) but be careful that

  • 161 files are changed in the commit made to introduce the feature of interaction review
  • merging the changes is a huge challenge and time-consuming work
  • the code written has many flaws and needs a lot of refactoring
  • the views are broken
  • code in this repository is not fully functional
  • lots of views have been changed in the latest expertiza which are not present in this repository
  • none of the db changes mentioned above are there in the repository
  • none of the migrations mentioned above are present in the repository
  • none of the the database tables I have mentioned above is populated with the pre-required configuration values for Interaction Review in the test database.