Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Question Engine 2:Implementation plan: Difference between revisions

From MoodleDocs
No edit summary
No edit summary
Line 6: Line 6:
==Time scales==
==Time scales==


The Open University has asked me to work on this now, but it is a large project.
I have been working on this since about last October. A big thank-you to the Open University for letting my do this.


I would estimate that at the moment (January 2010), the implementation is about half done, and proceeding rapidly. You can follow development at http://timhunt.github.com/Moodle-Question-Engine-2/.
At the moment (May 2010), the implementation is nearly complete, and although there are still bits to finish, testing has started on the parts that are complete. You can follow development at http://timhunt.github.com/Moodle-Question-Engine-2/.
 
However, it is now too late to include this in Moodle 2.0. So expect this in Moodle 2.1.


Since this involves API changes it would be really nice to include it in Moodle 2.0. However, that may be unrealistic. This work being finished, and the Moodle 2.0 stable branch being created, are likely to happen about about the same time, and it is still impossible to say which will come first.


==Relationship with OU Moodle==
==Relationship with OU Moodle==
Line 19: Line 20:


The remaining large OU-specific quiz code is improvements we made to Adaptive mode, turning it into what I am now calling the Interactive model. We originally did that while trying to make minimal changes to the quiz code, and the pain my colleague Mahmoud experienced while doing that was one of the things that got me thinking about this new design. This new proposal is a complete rewrite of the core of the question engine, so that customisations like Interactive model become easy.
The remaining large OU-specific quiz code is improvements we made to Adaptive mode, turning it into what I am now calling the Interactive model. We originally did that while trying to make minimal changes to the quiz code, and the pain my colleague Mahmoud experienced while doing that was one of the things that got me thinking about this new design. This new proposal is a complete rewrite of the core of the question engine, so that customisations like Interactive model become easy.


==Branching strategy==
==Branching strategy==


Therefore, the new code is being implemented as a branch off the standard MOODLE_19_STABLE branch. I am maintaining this in a git repository http://timhunt.github.com/Moodle-Question-Engine-2/. Although this is a branch of Moodle 1.9, it is written with a view to being easy to port to Moodle 2.0 when the time comes. Also, the new code requires PHP 5.2, as Moodle 2.0 does.
Therefore, the new code is being implemented as a branch off the standard MOODLE_19_STABLE branch. I am maintaining this in a git repository http://timhunt.github.com/Moodle-Question-Engine-2/ in the main new_qe branch. Although this is a branch of Moodle 1.9, it is written with a view to being easy to port to Moodle 2.0 when the time comes. Also, the new code requires PHP 5.2, as Moodle 2.0 does.
 
The development will include a lot of the OU-Moodle improvements, but there are additional OU-specific customisations that are probably not be of interest to anyone else. They are included on the the new_qe_ou branch in git. The goal will be to keep the size of this OU-specific changes as small as possible.


The development will include a lot of the OU-Moodle improvements, but in due course there will remaining OU-specific customisations that will not be of interest to anyone else. They will be incorporated into an OU-only version of this code, but the goal will be to keep the size of this OU-specific changes as small as possible.
Separately, at some point, the new code will be ported to the Moodle 2.x code-base, for inclusion in a Moodle release.


Separately, at some point, the new code will be re-based onto the Moodle 2.x code-base, for inclusion in a Moodle release.


==Task breakdown==
==Task breakdown==


My [http://github.com/timhunt/Moodle-Question-Engine-2/blob/new_qe/question/engine/todo.txt current task break down] lives in git with the code, since that is how I find it easiest to keep up-to-date. Note that this only shows tasks that remain to be done, so it is not helpful for estimating progress (unless you are prepared to do a lot of digging through git history).
My [http://github.com/timhunt/Moodle-Question-Engine-2/blob/new_qe/question/engine/todo.txt current task break down] lives in git with the code, since that is how I find it easiest to keep up-to-date. Note that this only shows tasks that remain to be done, so it is not helpful for estimating progress (unless you are prepared to do a lot of digging through git history).


==See also==
==See also==

Revision as of 08:50, 13 May 2010

This page summarises how and when these changes will be implemented.

Previous section: Using the question engine from a module.

Time scales

I have been working on this since about last October. A big thank-you to the Open University for letting my do this.

At the moment (May 2010), the implementation is nearly complete, and although there are still bits to finish, testing has started on the parts that are complete. You can follow development at http://timhunt.github.com/Moodle-Question-Engine-2/.

However, it is now too late to include this in Moodle 2.0. So expect this in Moodle 2.1.


Relationship with OU Moodle

One of the drivers for doing this is to reduce the differences between the OU's version of the quiz, and the standard version.

The quiz navigation improvements that are already in Moodle 2.0 were the first half of the process of putting OU quiz improvements into Moodle core.

The remaining large OU-specific quiz code is improvements we made to Adaptive mode, turning it into what I am now calling the Interactive model. We originally did that while trying to make minimal changes to the quiz code, and the pain my colleague Mahmoud experienced while doing that was one of the things that got me thinking about this new design. This new proposal is a complete rewrite of the core of the question engine, so that customisations like Interactive model become easy.


Branching strategy

Therefore, the new code is being implemented as a branch off the standard MOODLE_19_STABLE branch. I am maintaining this in a git repository http://timhunt.github.com/Moodle-Question-Engine-2/ in the main new_qe branch. Although this is a branch of Moodle 1.9, it is written with a view to being easy to port to Moodle 2.0 when the time comes. Also, the new code requires PHP 5.2, as Moodle 2.0 does.

The development will include a lot of the OU-Moodle improvements, but there are additional OU-specific customisations that are probably not be of interest to anyone else. They are included on the the new_qe_ou branch in git. The goal will be to keep the size of this OU-specific changes as small as possible.

Separately, at some point, the new code will be ported to the Moodle 2.x code-base, for inclusion in a Moodle release.


Task breakdown

My current task break down lives in git with the code, since that is how I find it easiest to keep up-to-date. Note that this only shows tasks that remain to be done, so it is not helpful for estimating progress (unless you are prepared to do a lot of digging through git history).


See also