CSC/ECE 517 Fall 2016/E1680. Improve survey functionality: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
mNo edit summary
No edit summary
Line 15: Line 15:
*3. course_evaluation_questionnaire.rb.
*3. course_evaluation_questionnaire.rb.
==='''Constraints'''===
==='''Constraints'''===
Survey questionnaire should be a subclass of questionnaire.  
* Survey questionnaire should be a subclass of questionnaire.  
The creation, editing, filling in, and checking that all the questions have been answered survey should be similar to the procedure used for other types of questionnaires (e.g. peer-review questionnaires).
* The creation, editing, filling in, and checking that all the questions have been answered survey should be similar to the procedure used for other types of questionnaires (e.g. peer-review questionnaires).
There should be a page to see the distribution of results for any question.
* There should be a page to see the distribution of results for any question.
<br>
<br>
We should use the same controller method to take the survey as to fill in the peer-review, namely, response_controller.  
* We should use the same controller method to take the survey as to fill in the peer-review, namely, response_controller.  
We should use the same code to display the existing survey responses as to display the responses in peer reviews.
* We should use the same code to display the existing survey responses as to display the responses in peer reviews.
<br>
<br>
For each course or assignment, the admin/instructor should be able to create a survey and have some (or all) of the participants receive the survey.
* For each course or assignment, the admin/instructor should be able to create a survey and have some (or all) of the participants receive the survey.
When a user is assigned to take part in a survey, a survey_participant record should be created for that user in the participants table.
* When a user is assigned to take part in a survey, a survey_participant record should be created for that user in the participants table.


=='''Proposed Design'''==
=='''Proposed Design'''==
Line 57: Line 57:
participant table along with appropriate details
participant table along with appropriate details


== '''Design''' ==
== '''Distribution of results''' ==


Requirement
* There will be a page to see the distribution of results for any question (e.g., how many people answered “1”, how many answered “2”, etc.).  
 
* This page will not only be designed for surveys, but also for other types of questionnaires (E.g. this view be able to show the score distribution for a question in other types of questionnaires, no  matter whether it is a survey question like “how much do you like the course?” or a peer-review question like  “how well did the author test the code?”)
There should be a page to see the distribution of results for any question (e.g., how many people answered “1”, how many answered “2”, etc.).  
<br>
This page should not only be designed for surveys, but also for other types of questionnaires.
'''Proposed Implementation'''
(E.g. this view be able to show the score distribution for a question in other types of questionnaires, no  
  matter whether it is a survey question like “how much do you like the course?” or a peer-review question like  
  “how well did the author test the code?”)
 
 
Proposed Implementation


The required page for this implementation would look like this:
The required page for this implementation would look like this:


[[File:Distribution_of_results.PNG]]
[[File:Distribution_of_results.PNG]]
   
   


Our page to see the distribution of results for any question would render a similar Bar graph  
* Our page to see the distribution of results for any question would render a similar Bar graph  
showing the no of people who  answered a choice amongst the options.
* showing the no of people who  answered a choice amongst the options.
The vertical axis would show the no of people.
* The vertical axis would show the no of people.
The horizontal axis will show the possible answers to the question.
* The horizontal axis will show the possible answers to the question.
To implement this in Expertise we can use JQPlot  Rails or some other graph plotting plugin.
* To implement this in Expertise we can use JQPlot  Rails or some other graph plotting plugin.


  The ''JQuery'' code might look like
  The ''JQuery'' code might look like
[[File:Code_snippet.PNG]]
[[File:Code_snippet.PNG]]


We will have to integrate the Jquery plugin and create a .erb file in views which will have similar  
* We will have to integrate the Jquery plugin and create a .erb file in views which will have similar  
Jquery code to render a bar graph based on the data provided.
* Jquery code to render a bar graph based on the data provided.





Revision as of 01:36, 10 November 2016

Introduction to Expertiza

The Expertiza project is software to create reusable learning objects through peer review. It also supports team projects, and the submission of almost any document type, including URLs and wiki pages. Expertiza is an open source project and is based on “Ruby on Rails” framework. Expertiza facilitates easy creation of assignments and a list of topics for the same. Expertiza, in other words, gives a very simple web interface for assignment management for both the students as well as instructors.

Background

Overview

Expertiza should be able to distribute surveys to the users. The survey can be one of the following: 1. Course survey (all the participants of the course can take it). 2. Global survey (all the users in Expertiza can take it).
The survey can also be targeted (the admin can specify a group of people who will receive this survey).
The three kinds of surveys in this project are:

  • 1. survey_questionnaire.rb
  • 2. global_survey_questionnaire.rb
  • 3. course_evaluation_questionnaire.rb.

Constraints

  • Survey questionnaire should be a subclass of questionnaire.
  • The creation, editing, filling in, and checking that all the questions have been answered survey should be similar to the procedure used for other types of questionnaires (e.g. peer-review questionnaires).
  • There should be a page to see the distribution of results for any question.


  • We should use the same controller method to take the survey as to fill in the peer-review, namely, response_controller.
  • We should use the same code to display the existing survey responses as to display the responses in peer reviews.


  • For each course or assignment, the admin/instructor should be able to create a survey and have some (or all) of the participants receive the survey.
  • When a user is assigned to take part in a survey, a survey_participant record should be created for that user in the participants table.

Proposed Design

Adding Participants to the survey:

  • Instructor or admin both can add survey for any course or assignment
  • The creator would be able to select the participants based on the scope of the survey, that

is, all the students or all the expertiza users or specific group of people

Adding all the global questionnaire questions:

  • There would be a generic set of questions which will be included in

global_survey_questionnaire

  • These questions will be by default added to every survey the user create
  • But, creator will be able to omit them with one ‘checkbox’ button

(Or, we can have specific selections for each of the questions to be included)

  • Or, there can be option of separating the global survey and course survey. The quiz taker will

take the global survey first and then the course survey

Adding the data to database:

  • For each participant added by the creator of the survey, a database entry would be made in

participant table along with appropriate details

Distribution of results

  • There will be a page to see the distribution of results for any question (e.g., how many people answered “1”, how many answered “2”, etc.).
  • This page will not only be designed for surveys, but also for other types of questionnaires (E.g. this view be able to show the score distribution for a question in other types of questionnaires, no matter whether it is a survey question like “how much do you like the course?” or a peer-review question like “how well did the author test the code?”)


Proposed Implementation

The required page for this implementation would look like this:


  • Our page to see the distribution of results for any question would render a similar Bar graph
  • showing the no of people who answered a choice amongst the options.
  • The vertical axis would show the no of people.
  • The horizontal axis will show the possible answers to the question.
  • To implement this in Expertise we can use JQPlot Rails or some other graph plotting plugin.
The JQuery code might look like

  • We will have to integrate the Jquery plugin and create a .erb file in views which will have similar
  • Jquery code to render a bar graph based on the data provided.


Files to be modified:

Controllers

  • app/controllers/survey_deployment_controller.rb
  • app/controllers/statistics_controller.rb
  • app/controllers/course_evaluation_controller.rb
  • app/controllers/survey_controller.rb

Models

  • app/models/global_survey_questionnaire.rb
  • app/models/survey_questionnaire.rb
  • app/models/survey_deployment.rb
  • app/models/metasurvey.rb
  • app/helpers/survey_helper.rb
  • app/models/survey_participant.rb
  • app/models/survey_response.rb
  • app/helpers/survey_response_helper.rb

Views

  • app/views/survey_deployment/
  • app/views/statistics/
  • app/views/survey_response/
  • app/views/survey