CSC/ECE 517 Fall 2014/final E1471 asuv: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
 
(112 intermediate revisions by 5 users not shown)
Line 1: Line 1:
Information Display and Student Interaction
=Expertiza - Information Display and Student Interaction=
 
Expertiza is a web application developed using Ruby on Rails that serves as a peer-review system. The application allows students to submit and peer-review learning objects (articles, code, web sites, etc)<ref>[https://github.com/expertiza/expertiza Expertiza on GitHub]</ref><ref>[http://wikis.lib.ncsu.edu/index.php/Expertiza Expertiza Wiki Page]</ref>. It is an open source project and its codebase is maintained in GitHub.
 
__TOC__


=Introduction=
=Introduction=
==Background==
Our contribution in this project would be to improve the display of questionnaires for all the instructors and also integrating a previous project which provides a new dashboard for students to view and compare their performance of each assignment.
==Scope==
 
==Purpose==
==Current State==
*In the current state instructor should go through all the questionnaires to find the one they are looking for.
*The keyword search functionality is not yet implemented for questionnaires.
*The current student dashboard provides the average score and range of the student’s assignment, review and final score.
*The system has a limitation where in a student/instructor cannot view and compare the student scores based on the class performance.
 
==Goals==
*As a part of our project we will implement the search functionality and also make it possible to click and bring up a list of questionnaires used in the course, expanding only the applicable questionnaires in the list of questionnaires.
*A project from last year has the implementation for the new student dashboard. We would like to take that project, make the required changes to it and integrate it into expertiza.
*This new dashboard gives the students a comparative statistics for that particular assignment for the entire class.
*Giving the min, mean and max gives the student a range to judge where they stand with respect to the class.
*Other features were part of the project were to show the number of reviews and metareviews he/she has done for this assignment and also based on a threshold what are the number of reviews/metareviews the student still needs to do.
*A histogram distribution of the scores of the class (all teams) for that assignment would also shown as a part of the dashboard.


=Approach=
=Approach=


As the project was originally assigned to students two years ago, the functionality is mostly complete. The main concern is that, as the project was completed 2 years ago (in December 2012), it was made for an older version of rails.
As the project was originally assigned to students two years ago, the functionality is mostly complete. The main concern is that, as the project was completed a significant amount of time ago (in December 2012), it was made for an older version of rails.


==General Approach==
==General Approach==
Our general approach to the project would be as follows:
Our general approach to the project would be as follows:
*Run the current project with rails 4
*Run the current project with rails 4
*Check the functionality to find out the incompatible parts
*Check the functionality to find out the incompatible and missing parts
*Refactor the parts of code that do not function as expected and port them to rails 4 specification
*Refactor the parts of code that do not function as expected and port them to rails 4 specification
*After making sure everything runs, refactor the entire code to make sure it follows the global code rules.
*After making sure everything runs, refactor the entire code to make sure it follows the global code rules.
Line 20: Line 36:
The specific approach to each of the two functionality is as  follows:
The specific approach to each of the two functionality is as  follows:
===Better display for assignments===
===Better display for assignments===
We found that while the currently existing code covers most of the functionality, a major part of the functionality is missing. According to definition, the instructor should see the following on his home page:
*The instructor's courses
*Assignments for those courses
*Questionnaire by assignment name
Each of these should be compressed to titles only, and it should be possible to expand them by single mouse click. Each course should have its own list of assignments which can, again, be expanded. Also, there is a search box on the page which allows to search assignments, courses and questionnaires.
The search functionality for assignments and courses is working well, but the search for questionnaires is not implemented.
So, for this specific project, we plan to focus on implementing the search for questionnaires first. Then, integrate it all and test each functionality: make sure that nothing is affected by the new functionality added. After all the tests are performed, we will merge the project with the main project, thus integrating it with the final build.


===Dashboard for students===
===Dashboard for students===


=Testing=
The features required for the dashboard for students project have already been implemented. So, the main task to be performed by us is to merge the project files with the main project and make sure that nothing else is affected by the process.
 
The current code is able to display the maximum scores, average scores, number of reviews and distribution charts.
 
=Files involved=
=Files involved=
===Dashboard for students===
===Files to be merged===
<ul>
<ul>
  <li>
  <li>
   Model
   Model
  </li>
  </li>
   ScoreCache.rb
   questionnaire_type_node.rb
  <li>
  <li>
   View
   View
  </li>
  </li>
   grades\view_my_scored.html.erb
   grades/view_my_scored.html.erb, tree_display/actions/_courses_actions.html.erb
  <li>
  <li>
   Controller
   Controller
  </li>
  </li>
  grades_controller.rb, review_mapping_controller.rb,response_controller.rb
  grades_controller.rb, questionnaires_controller.rb, tree_display_controller.rb
  <li>
  <li>
   Database tables
   Database
  </li>
  </li>
  Assignments,Participants, score_caches, response_maps,responses
  db/schema.rb
</ul>
</ul>


 
====Functionality of each file====
 
==Functionality of each file==


{| class="wikitable"
{| class="wikitable"
|-
|-
! style="width:2%;"|Sr. No.
! style="width:2%;"|Sr. No.
! style="width:13%;"|File Name
! style="width:8%;"|File Name
! style="width:43%;"|Comment
!style="width:13%;"| Type
! style="width:43%;"|Changes made for the project
|- style="vertical-align:top;"
|- style="vertical-align:top;"
|-
|-
|style="text-align:center;"|''''' 1 '''''
|style="text-align:center;"|''''' 1 '''''
| <code> ScoreCache.rb </code>
| <code> questionnaire_type_node.rb </code>
 
| Model
| Made code changes for searching within a course when required
|-
|-
|style="text-align:center;"|''''' 2 '''''
|style="text-align:center;"|''''' 2 '''''
| <code> extractPersonalAchievements(csHash, courseIdList, userId) </code>
| <code> grades/view_my_scores.html.erb </code>
| This method is responsible for calculating personal aggregated score. It also calculates the ranking of currently logged in user against total users associated with the same set of courses as that of current user.
| View
| Made changes to display tables and the charts generated by the grades_controller
|-
|-
|style="text-align:center;"|''''' 3 '''''
|style="text-align:center;"|''''' 3 '''''
| <code> addEntryToCSHash(qtypeHash, qtype, userid, csEntry, courseid) </code>
| <code> tree_display/actions/_courses_actions.html.erb </code>
| This method is called internally from <code style="background:#F0F0FF"> Leaderboard.getParticipantEntriesInAssignmentList </code>. This method aggregates score of a user grouped by course id, further grouped by questionnaire type.
| View
| Added an icon for navigation to questionnaires for a given course.
|-
|-
|-
|style="text-align:center;"|''''' 4 '''''
| <code> grades_controller.rb </code>
| Controller
| Table data and graph generation code added so that the grades for the entire class are calculated.
|-
|style="text-align:center;"|''''' 5 '''''
| <code> questionnaires_controller.rb </code>
| Controller
| Added a short method to redirect control with the correct parameters when questionnaires are loaded.
|-
|style="text-align:center;"|''''' 6 '''''
| <code> tree_display_controller.rb </code>
| Controller
| Added some code in the search method to allow searching for questionnaires either by course or in general.
|}
= Screenshots =
<b>1) Better display for assignments:</b><br/>
A new icon for questionnaires added<br/>
[[File:new_icon_view.png|center|frame]]<br/><br/>
On click of icon it will display questionnaires related to the selected course<br/>
[[File:questionnaires_view.png|center|frame]]<br/><br/>
It also allows to search questionnaires based on name. Here we searched word "wiki", It shows result of the search.
[[File:wiki_search.jpg|center|frame]]<br/><br/>
<b>2) Dashboard for students:</b><br/>
It shows the different between previous implementation and new implementation views.
{| class="wikitable"
|-
! Before
! After
|-
| [[File:before_view.png|frame|left| ]]
| [[File:after_view.png|frame|left| ]]
|}
|}


=Use case=
=Use case=
For the instructor, there needs to be a way to quickly find rubrics (and other questionnaires) that have been used in a single course. It should be possible to search or click somewhere to bring up a list of questionnaires used in the course, expanding only the applicable questionnaires in the list of questionnaires. A search functionality for questionnaire is expected. Currently, assignment and course searches is implemented, and there is a dropdown for questionnaire, but it's functionality is missing.
'''Actor:''' Instructot
'''Other Participants:''' None
'''Precondition:''' There are few questionnaires in the system
'''Primary Sequence:'''
1. Log in to Expertiza
2. Instructor lands on "Manage content" page 
3. Search for a questionnaire, by selecting questionnaire in the search dropdown and input some search string
4. Search results displayed, expanding only the applicable questionnaires in the list of questionnaires
[[File:Assignment_display_existing.jpg]]
The following use case diagram shows the system of Assignment grades for a student on Expertiza as it is depicted right now. These include viewing their own project submission (with url and attachments), reviews and metareviews on their work, author feedbacks, teammate reviews and their final score on that assignment/project.<ref>Previous year's design document for ''E715: Dashboard for Students'' by Ambika Tripathi, Milan Tonse, Krutika Nagar, Shruti Buch</ref> As part of this project we shall be adding more data on this page, so that student has better understanding of his/her marks.
'''Name''': Students viewing scores for the assignment
'''Actor''': Student
'''Other Participants''': None
'''Precondition''': Statistics have been recorded for average high and low scores.
'''Primary Sequence:'''
1. Log in to Expertiza
2. Select an assignment
3. Select Your Scores
4. Click on the link for view class scores for this assignment.
5. View the average, high and low class score for that particular assignment
'''Name''': Students viewing graphical output for scores for the assignment
'''Actor''': Student
'''Other Participants''': None
'''Precondition''': Statistics have been recorded for average high and low scores.
'''Primary Sequence:'''
1. Log in to Expertiza
2. Select an assignment
3. Select Your Scores
4. Click on the link for view class scores for this assignment.
5. View the graphical output for average, high and low class score for that particular assignment
'''Name''': Students viewing number of reviews done by him/her
'''Actor''': Student
'''Other Participants:''' None
'''Precondition''': Statistics have been recorded for number of reviews done by the student.
'''Primary Sequence:'''
1. Log in to Expertiza
2. Select an assignment
3. Select Your Scores
4. Click on the link for my reviews for this assignment.
5. View the number of reviews the student has done for that particular assignment and also the
number of reviews he still has to do to reach the threshold.
'''Name''': Students viewing number of metareviews done by him/her
'''Actor''': Student
'''Other Participants:''' None
'''Precondition''': Statistics have been recorded for number of metareviews done by the student.
'''Primary Sequence:'''
1. Log in to Expertiza
2. Select an assignment
3. Select Your Scores
4. Click on the link for my metareviews for this assignment.
5. View the number of metareviews the student has done for that particular assignment and also
the number of metareviews he still has to do to reach the threshold.
'''Name''': Students viewing average number of class reviews for the assignment
'''Actor''': Student
'''Other Participants:''' None
'''Precondition''': Statistics have been recorded for class reviews for that assignment.
'''Primary Sequence:'''
1. Log in to Expertiza
2. Select an assignment
3. Select Your Scores
4. Click on the link for view class reviews for this assignment.
5. View the average number of class reviews for that particular assignment
'''Name''': Students viewing average number of class metareviews for the assignment
'''Actor''': Student
'''Other Participants:''' None
'''Precondition''': Statistics have been recorded for class metareviews for that assignment.
'''Primary Sequence:'''
1. Log in to Expertiza
2. Select an assignment
3. Select Your Scores
4. Click on the link for view class metareviews for this assignment.
5. View the average number of class metareviews for that particular assignment
[[File:Dashboard_existing.jpg]]
[[File:Dashboard_new.jpg]]
=UML diagram=
=UML diagram=
Following is class diagram for Assignment display module. <ref>Previous year's design document for ''E707: Better display for assignments'' by Bharath Sampath(bsampat2),Prakash Vasudevan(pvasude),Raghavendran Nedunchezhian(rnedunc), Yuchuan Liu(yliu63)</ref>
[[File:UML.jpg]]
Following is class diagram for Dashboard for students module.
[[File:Dashboard.jpg]]
=Steps to check the new implementations=
== The new Student dashboard ==
Sample Test case.
<br>1. Log-in to Expertiza as an student (Username: user480, Password: password).
<br>2. Click on 'Program 1: BackChannel' assignment.
<br>3. Click on the option 'Your Scores'.
<br>4. The dashboard is then displayed with the class statistics along with the new graph added.
== The Questionnaire search ==
<br>1. Log-in to Expertiza as an instructor (Username: user2, Password: password).
<br>2. Enter any string in the search box
<br>3. We would be able to see all the questionnaires that have the entered string as a substring in them.
== The Course specific questionnaire list ==
Sample Test case.
<br>1. Log-in to Expertiza as an instructor (Username: user2, Password: password).
<br>2. Expand the Courses option.
<br>3. Hover over the Course actions menu for the course 'CSC 517, Spring 2014'.
<br>4. Click on the menu-item that says 'View Questionnaires'.
<br>5. List of questionnaires would be displayed here.
<br>6. Search within the above list of questionnaires is also possible by using the search given in the page.
='''References'''=
<references/>

Latest revision as of 17:02, 6 December 2014

Expertiza - Information Display and Student Interaction

Expertiza is a web application developed using Ruby on Rails that serves as a peer-review system. The application allows students to submit and peer-review learning objects (articles, code, web sites, etc)<ref>Expertiza on GitHub</ref><ref>Expertiza Wiki Page</ref>. It is an open source project and its codebase is maintained in GitHub.

Introduction

Our contribution in this project would be to improve the display of questionnaires for all the instructors and also integrating a previous project which provides a new dashboard for students to view and compare their performance of each assignment.

Current State

  • In the current state instructor should go through all the questionnaires to find the one they are looking for.
  • The keyword search functionality is not yet implemented for questionnaires.
  • The current student dashboard provides the average score and range of the student’s assignment, review and final score.
  • The system has a limitation where in a student/instructor cannot view and compare the student scores based on the class performance.

Goals

  • As a part of our project we will implement the search functionality and also make it possible to click and bring up a list of questionnaires used in the course, expanding only the applicable questionnaires in the list of questionnaires.
  • A project from last year has the implementation for the new student dashboard. We would like to take that project, make the required changes to it and integrate it into expertiza.
  • This new dashboard gives the students a comparative statistics for that particular assignment for the entire class.
  • Giving the min, mean and max gives the student a range to judge where they stand with respect to the class.
  • Other features were part of the project were to show the number of reviews and metareviews he/she has done for this assignment and also based on a threshold what are the number of reviews/metareviews the student still needs to do.
  • A histogram distribution of the scores of the class (all teams) for that assignment would also shown as a part of the dashboard.

Approach

As the project was originally assigned to students two years ago, the functionality is mostly complete. The main concern is that, as the project was completed a significant amount of time ago (in December 2012), it was made for an older version of rails.

General Approach

Our general approach to the project would be as follows:

  • Run the current project with rails 4
  • Check the functionality to find out the incompatible and missing parts
  • Refactor the parts of code that do not function as expected and port them to rails 4 specification
  • After making sure everything runs, refactor the entire code to make sure it follows the global code rules.

Specific Approach

The specific approach to each of the two functionality is as follows:

Better display for assignments

We found that while the currently existing code covers most of the functionality, a major part of the functionality is missing. According to definition, the instructor should see the following on his home page:

  • The instructor's courses
  • Assignments for those courses
  • Questionnaire by assignment name

Each of these should be compressed to titles only, and it should be possible to expand them by single mouse click. Each course should have its own list of assignments which can, again, be expanded. Also, there is a search box on the page which allows to search assignments, courses and questionnaires.

The search functionality for assignments and courses is working well, but the search for questionnaires is not implemented.

So, for this specific project, we plan to focus on implementing the search for questionnaires first. Then, integrate it all and test each functionality: make sure that nothing is affected by the new functionality added. After all the tests are performed, we will merge the project with the main project, thus integrating it with the final build.

Dashboard for students

The features required for the dashboard for students project have already been implemented. So, the main task to be performed by us is to merge the project files with the main project and make sure that nothing else is affected by the process.

The current code is able to display the maximum scores, average scores, number of reviews and distribution charts.

Files involved

Files to be merged

  • Model
  • questionnaire_type_node.rb
  • View
  • grades/view_my_scored.html.erb, tree_display/actions/_courses_actions.html.erb
  • Controller
  • grades_controller.rb, questionnaires_controller.rb, tree_display_controller.rb
  • Database
  • db/schema.rb

Functionality of each file

Sr. No. File Name Type Changes made for the project
1 questionnaire_type_node.rb Model Made code changes for searching within a course when required
2 grades/view_my_scores.html.erb View Made changes to display tables and the charts generated by the grades_controller
3 tree_display/actions/_courses_actions.html.erb View Added an icon for navigation to questionnaires for a given course.
4 grades_controller.rb Controller Table data and graph generation code added so that the grades for the entire class are calculated.
5 questionnaires_controller.rb Controller Added a short method to redirect control with the correct parameters when questionnaires are loaded.
6 tree_display_controller.rb Controller Added some code in the search method to allow searching for questionnaires either by course or in general.

Screenshots

1) Better display for assignments:
A new icon for questionnaires added



On click of icon it will display questionnaires related to the selected course



It also allows to search questionnaires based on name. Here we searched word "wiki", It shows result of the search.



2) Dashboard for students:
It shows the different between previous implementation and new implementation views.

Before After

Use case

For the instructor, there needs to be a way to quickly find rubrics (and other questionnaires) that have been used in a single course. It should be possible to search or click somewhere to bring up a list of questionnaires used in the course, expanding only the applicable questionnaires in the list of questionnaires. A search functionality for questionnaire is expected. Currently, assignment and course searches is implemented, and there is a dropdown for questionnaire, but it's functionality is missing.

Actor: Instructot

Other Participants: None

Precondition: There are few questionnaires in the system

Primary Sequence:

1. Log in to Expertiza

2. Instructor lands on "Manage content" page

3. Search for a questionnaire, by selecting questionnaire in the search dropdown and input some search string

4. Search results displayed, expanding only the applicable questionnaires in the list of questionnaires


The following use case diagram shows the system of Assignment grades for a student on Expertiza as it is depicted right now. These include viewing their own project submission (with url and attachments), reviews and metareviews on their work, author feedbacks, teammate reviews and their final score on that assignment/project.<ref>Previous year's design document for E715: Dashboard for Students by Ambika Tripathi, Milan Tonse, Krutika Nagar, Shruti Buch</ref> As part of this project we shall be adding more data on this page, so that student has better understanding of his/her marks.


Name: Students viewing scores for the assignment

Actor: Student

Other Participants: None

Precondition: Statistics have been recorded for average high and low scores.

Primary Sequence:

1. Log in to Expertiza

2. Select an assignment

3. Select Your Scores

4. Click on the link for view class scores for this assignment.

5. View the average, high and low class score for that particular assignment


Name: Students viewing graphical output for scores for the assignment

Actor: Student

Other Participants: None

Precondition: Statistics have been recorded for average high and low scores.

Primary Sequence:

1. Log in to Expertiza

2. Select an assignment

3. Select Your Scores

4. Click on the link for view class scores for this assignment.

5. View the graphical output for average, high and low class score for that particular assignment


Name: Students viewing number of reviews done by him/her

Actor: Student

Other Participants: None

Precondition: Statistics have been recorded for number of reviews done by the student.

Primary Sequence:

1. Log in to Expertiza

2. Select an assignment

3. Select Your Scores

4. Click on the link for my reviews for this assignment.

5. View the number of reviews the student has done for that particular assignment and also the

number of reviews he still has to do to reach the threshold.


Name: Students viewing number of metareviews done by him/her

Actor: Student

Other Participants: None

Precondition: Statistics have been recorded for number of metareviews done by the student.

Primary Sequence:

1. Log in to Expertiza

2. Select an assignment

3. Select Your Scores

4. Click on the link for my metareviews for this assignment.

5. View the number of metareviews the student has done for that particular assignment and also

the number of metareviews he still has to do to reach the threshold.


Name: Students viewing average number of class reviews for the assignment

Actor: Student

Other Participants: None

Precondition: Statistics have been recorded for class reviews for that assignment.

Primary Sequence:

1. Log in to Expertiza

2. Select an assignment

3. Select Your Scores

4. Click on the link for view class reviews for this assignment.

5. View the average number of class reviews for that particular assignment


Name: Students viewing average number of class metareviews for the assignment

Actor: Student

Other Participants: None

Precondition: Statistics have been recorded for class metareviews for that assignment.

Primary Sequence:

1. Log in to Expertiza

2. Select an assignment

3. Select Your Scores

4. Click on the link for view class metareviews for this assignment.

5. View the average number of class metareviews for that particular assignment

UML diagram

Following is class diagram for Assignment display module. <ref>Previous year's design document for E707: Better display for assignments by Bharath Sampath(bsampat2),Prakash Vasudevan(pvasude),Raghavendran Nedunchezhian(rnedunc), Yuchuan Liu(yliu63)</ref>

Following is class diagram for Dashboard for students module.

Steps to check the new implementations

The new Student dashboard

Sample Test case.
1. Log-in to Expertiza as an student (Username: user480, Password: password).
2. Click on 'Program 1: BackChannel' assignment.
3. Click on the option 'Your Scores'.
4. The dashboard is then displayed with the class statistics along with the new graph added.

The Questionnaire search


1. Log-in to Expertiza as an instructor (Username: user2, Password: password).
2. Enter any string in the search box
3. We would be able to see all the questionnaires that have the entered string as a substring in them.

The Course specific questionnaire list

Sample Test case.
1. Log-in to Expertiza as an instructor (Username: user2, Password: password).
2. Expand the Courses option.
3. Hover over the Course actions menu for the course 'CSC 517, Spring 2014'.
4. Click on the menu-item that says 'View Questionnaires'.
5. List of questionnaires would be displayed here.
6. Search within the above list of questionnaires is also possible by using the search given in the page.

References

<references/>