Note: You are currently viewing documentation for Moodle 2.0. Up-to-date documentation for the latest stable version is available here: Student projects/AJAX course format.

Student projects/AJAX course format: Difference between revisions

From MoodleDocs
(Shifted to dev docs)
 
(13 intermediate revisions by 5 users not shown)
Line 1: Line 1:
==Current Progress==
{{Moved_to_dev_docs}}
 
I am currently working on research and planning.
 
==Research and planning==
 
There has been some discussion on the forums about the want to use a RIA library, this would be a more elegant solution than homebrew but more research needs to be done as to whether one can be found that does not cause the same compatibility issues as Scriptaculous has been shown too by extending the built-in Array and Object classes.
 
===RIA libraries===
Several people have hacked RIA libraries,such as Scriptaculous, into their moodle installations to add functionality such as drag-and-drop. We need to determine which would be best to Integrate into the moodle codebase.
 
These are some of the most popular:
(while this may not be a popularity contest I believe that we want to work with one that is well supported and has a decent community following)
 
====Scriptaculous====
Site: http://script.aculo.us/
 
Licence:MIT (GPL compatible)
*Drag and Drop
*Auto Complete
*Sorting
*Effects
 
Pros:
This has already been implemented in some user's Moodle installations and is known to work (aside from the problems mentioned below)
 
Cons:
One of the major drawbacks of Scriptaculous(and the prototype toolkit which it uses) is that it uses the prototype object to extend javascripts built in Array object which can cause strange behaviors. As far as I know this has only caused problems with moodle's texteditor but having odd behavior like this exist is something I would prefer to avoid as opposed to asking developers to be sure and code around it.
 
It also currently supports a rather small feature set.
 
====DOJO====
Site: http://dojotoolkit.org/
 
Licence: Dual - AFL and BSD(GPL compatible)
 
Features:
*Drag and drop
*Effects (wipe,fade etc...)
*offline Storage
*rather complete Widget Set
 
Pros:
 
This Library seems a bit more refined than scriptaculous, it also has big name backing(IBM,AOL,OpenLazlo...et al) which is a good sign that it will be around for a while. The offline storage component is a novel concept which none of the others seem to have.
 
Cons:
 
Their [[http://manual.dojotoolkit.org/index.html Documentation]] is not complete(~60%).
 
====MochiKit====
Site: http://mochikit.com/
 
Licence: Dual - AFL or MIT(GPL compatible)
 
Published Compatibility: Safari, IE 6+, FF 1.0+
 
Features:(well documented by them on the following page)
http://mochikit.com/doc/html/MochiKit/index.html
 
*extended DOM Manipulation
*Logging
*Full Async Request handling
*Visual Effects
*Sorting
*Drag and Drop
*Event Handleing
 
 
Pros:
They stress reliability and Documentation.More of a library in a traditional sense, the functions are well organized and very reusable. They also claim compatibility with other libraries. Their library is setup well for any extensions anyone wants to make to it(the documentation helps alot too). Very developer freindly.
 
 
 
Cons:
Drag and drop was adapted for scriptaculous so it may have the same issues that they had.
 
 
 
====Rico====
Site:openRico.org
 
Licence:Apache 2.0(incompatible with GPL [[http://www.gnu.org/philosophy/license-list.html]]) {I see no point to review further}
 
====Yahoo Library (YUI)====
 
Site: http://developer.yahoo.com/yui/
 
Licence: BSD(gpl compatible)
 
*full ASYNC request management
*DOM functions(mostly design oriented)
*Animation
*Drag and Drop
*Event Handling
*Autocomplete
*Menus/Sliders/Trees
 
Pros:
Fairly well documented and seems rather mature for a recent release.
 
Cons:
Library is still kind of young, community support is lacking. Would be depending on yahoo to continue support.
 
====Recommendation====
After reading through their sites and materials I feel that mochiKit would be the best implementation for moodle. I feel that it's framework fits in well with moodle's general design(as I have seen it). I was particularly impressed by their level of documentation, their obsession with reliability (which surprisingly neither of these concepts were particularly stressed by the other toolkits) and also by how extensible they designed their library to be.
 
===Specifications===
 
====Other Links to spec discussions====
 
*[http://moodle.org/mod/forum/discuss.php?d=33778#186312 Forum discussion about an AJAX course layout system]
*[http://chameleon-theme.unodo.de/course/view.php?id=5 Current implimentation into Chameleon theme site] (Would need to be further integrated and extended)
*[http://moodle.org/mod/forum/discuss.php?d=40532 Forum discussion on AJAX in Moodle]
 
====Project suggestion====
 
From [[Student projects]]:
 
:''
AJAX course format
Background
 
The current course formats are designed to work on lower browsers and older technologies. They are highly compatible with browsers but can   
really slow down the course creation process.
Overview
 
Design a clean, extensible method for implementing a course format using AJAX. This may require development of a web service to service 
the Javascript front end.
Details
  1. It should be optional and accessible, so that it can drop back to the current interface on browsers that are incapable of dealing  with dynamic pages.
  2. Blocks can be dragged and dropped.
  3. Sections can be dragged and dropped, made hidden or visible.
  4. Activities and resources can be dragged and dropped, made hidden or visible, have the group status changed, etc.
Mentors: Martin Dougiamas and Urs Hunkler
Programmer: Edward Coyne''
 
[[Category:Developer]]
[[Category:Project]]

Latest revision as of 08:16, 22 June 2011

This development related page is now located in the Dev docs.

See the Student projects/AJAX course format page in the Dev docs.