Enhancing drupal quiz module

hello geeks,

      Updated proposal is here http://socghop.appspot.com/student_proposal/show/google/gsoc2009/sivaji2...

About Me

I am sivaji from India doing B.E Final year computer science engineering, i have been using drupal for past six months, very much comfortable with its features and community support. I am looking for a chance to contribute something to our drupal community and learn some nifty hacks. My work and area of interest revolves around Ubuntu, PHP, Drupal, Ajax, Jquery, Joomla.

Overview

Recently i got an opportunity to work with (drupal 5) quiz modules, i found that its very interesting especially the quiz results and feedback features, i think it requires a lot of tweaks to be done. Here the some of my new features and enhancement idea.

Description

New Features

  1. quiz results Notification via Email
  2. CSV, TSV questions Upload
  3. Result statistics and analysis using Drupal chart module (Optional)
  4. Result Dashboard.

Enhancement

  1. Send all the questions to client side and display it one by one as the user proceeds with the test. eg when the user answers for the first question second one will be displayed and so on.

    Advantage :

    1. It reduces the server load and number of request and delay. Because the current version of quiz module sends a request for each question, imagine if 100 users are attending quiz contest which has 20 questions its very expensive isn't it ?.
    2. It reduces the delay and makes the quiz more interactive by giving instant response.
    3. Allows the users to view all the answered questions in a single page and he/she can verify the answers before submitting it.

    4. Ajax paper for add multi-choice question page where already available multi-choice questions were being display.

    Also i would like to implement the todo and feature requests for quiz module given in this links

    http://drupal.org/node/199575
    http://groups.drupal.org/node/7412
    http://groups.drupal.org/node/16549

Mentors

  • Expected mentor mbutcher
  • Backup mentor -
  • ALocalMentor -
 Updated proposal is here http://socghop.appspot.com/student_proposal/show/google/gsoc2009/sivaji2...

Difficulty : Medium

I would like to implement the above ideas to druapl 7.x also (in future) and want to be a long term drupal contributor. digitalfreak and mbutcher seems to be very interested in quiz module, i am happy to work with them, hope we will have lot of fun this summer with drupal. Please post your suggestions to make it better.

Groups:
Login to post comments

I'd like to see this.

phonydream2 - Mon, 2009-03-02 12:07

Sounds like great work, particularly working on the feature/to do lists in the links.

Send all the questions to client side and display it one by one as the user proceeds with the test. eg when the user answers for the first question second one will be displayed and so on.

Couldn't AJAX help out here?

The dashboard would be very useful for users...were you thinking of an admin only dashboard?


@phonydream2

sivaji - Mon, 2009-03-02 13:22

Hello phonydream2
Thank you very much for your reply.

Regarding AJAX question

Even if you use AJAX you have to send a HTTP request for each questions, i think its already well explained please refer my last post #Enhancement -> 1 -> Advantage

Regarding dashboard

I am talking about users dashboard were they can view the statistics about their quiz tests and results.

sivaji
ubuntuslave.blogspot.com


..

phonydream2 - Tue, 2009-03-03 01:20

I'm not sure if the server load would be that heavy for a simple ajax text request. Serving the average Drupal page requires a lot of requests(images, CSS files), boot strapping processes etc. but a simple AJAX fetch for the next snippet of data would require very little processing (you don't have to undergo the Drupal bootstrap process for each AJAX request). I'm not suggesting you take this route, just putting it out there for consideration.

With AJAX you could provide context sensitive responses. You could also do that with the method you suggested, but the user would be downloading a larger initial data set to account for all the different possibilities.

For example... let's take an example of a case where it might be useful to interpret the users answers on a question by question basis. Say I have a quiz about European history. 5 questions are about France, 5 questions about Germany, 5 questions about the U.K. Now if a user has answered 3 questions about France incorrectly I'd like a popup to suggest they study a webpage about French history again before continuing with the test. I'm not suggesting you implement this functionality, but that you allow the possibility of developers hooking into the process dynamically.

If you provide an API for the developers to hook into the feedback mechanism dynamically then you create a lot of possibilities for customization by individual developers.

For example, a quiz for school children could be programmed to give positive feedback if 50% of the questions have been answered correctly.


thank you for enlightening me

sivaji - Tue, 2009-03-03 03:18

Hello phonydream2

All your suggestions seems to be worth to follow, thank you for enlightening me. I request you to join our quiz drupal group http://groups.drupal.org/quiz and give your valuable suggestions to our further discussion.


This would be a great project!

mbutcher's picture
mbutcher - Thu, 2009-03-12 16:45

I'd wholeheartedly endorse this project. Importing and improved reporting are two of Quiz's weak spots. It'd also be great to see a better UI for assigning questions to quizzes. And, of course, Sivaji lists a number of other improvements that he's interested in.

Sign me up for mentoring!


I'm turning this into an official project idea...

Alex UA's picture
Alex UA - Thu, 2009-03-12 19:45

...since it has a mentor lined up and seems like a well thought out proposal. Thanks!

Alex Urevick-Ackelsberg
ZivTech: Illuminating Technology


Thanks

sivaji - Fri, 2009-03-13 10:37

Thanks Alex

sivaji
ubuntuslave.blogspot.com


More detailed comments coming later, but...

bonobo's picture
bonobo - Fri, 2009-03-13 17:26

I'd love to see this come through.

Two big things I'd like to see in an updated quiz module for D6:

  1. CCK node types for questions (already on the to-do list); this would solve all the requests for including various types of media; and
  2. Branching logic in quizzes --

I also think it would be ideal if the quiz engine kept additional module dependencies to a minimum (and I'm thinking specifically of Workflow and Rules) --

While both of these modules have the potential to add some powerful options for advanced users, from a usability place they are both fairly complex for new to intermediate users.

This looks like a great project.

Cheers,

Bill

FunnyMonkey
Click. Connect. Learn.
Using Drupal in Education


Number 1 is done

mbutcher's picture
mbutcher - Tue, 2009-03-24 18:19

The first item is done already, and is in the 3.x devel branch.

The second item would be very cool to add. It'd be a huge change, though.

Basically, what I hope to see out of Quiz is the maturation of a tool that can provide an academically oriented quiz engine while still providing for the needs of less formal quizzes. Sivaji's proposal is great because his ideas are spot-on with achieving that goal.

Matt

Blog: http://technosophos.com
QueryPath: http://querypath.org


Dear folks, Final ideas of

sivaji - Mon, 2009-03-30 09:21

Dear folks,

Final ideas of this project has been put up on the GSoC site based on your suggestions/feedback, here the url to access it http://socghop.appspot.com/student_proposal/show/google/gsoc2009/sivaji2..., please have a look into it at your convenience and give your valuable suggestion to make it better.

Thanks to mbutcher for helping me to write this project proposal documentation.

--
sivaji
ubuntuslave.blogspot.com


How about Voting API

opensanta's picture
opensanta - Sun, 2009-04-05 02:19

How about Voting API integration/dependancy?


@mitchell

sivaji - Tue, 2009-04-07 13:02

seems to be good, but i would like to know your ideas, how do you expect the Voting API to work with quiz ?

--
sivaji
ubuntuslave.blogspot.com


Variable scoring with multiple choice

Summit - Wed, 2009-04-29 07:56

Hi Sivaji, Will you work on a D6 version? How about also bringing the multiple choice into the new model, with variable scoring possibility! as asked my Matt here: http://drupal.org/node/329931#comment-1529310
Thanks for considering this!
Greetings, Martijn