Note: You are currently viewing documentation for Moodle 2.2. Up-to-date documentation for the latest stable version is available here: Projects for new developers.

Projects for new developers: Difference between revisions

From MoodleDocs
No edit summary
No edit summary
Line 16: Line 16:


Mentor:  Martin Dougiamas
Mentor:  Martin Dougiamas


=== Presets for Database module ===
=== Presets for Database module ===
Line 27: Line 28:


Mentor:  Martin Dougiamas
Mentor:  Martin Dougiamas


=== Integrated Bug Tracker ===
=== Integrated Bug Tracker ===
Line 39: Line 41:


Mentor:  Martin Dougiamas
Mentor:  Martin Dougiamas
=== AJAX Course Format ===
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.
# 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.
# Blocks can be dragged and dropped.
# Sections can be dragged and dropped, made hidden or visible.
# Activities and resources can be dragged and dropped, made hidden or visible, have the group status changed, etc.
Mentor:  Martin Dougiamas
=== Admin page cleanup ===
Design a clean, extensible method for implementing the administration page, which contains hundreds of variables and settings for all the many modules in Moodle.
# Settings should be organised in a way that is obvious and uncluttered, perhaps using tabs or some other  organising structure.
# New modules should have their settings appear automatically in the admin interface.
# Define a new plugin structure for arbitrary new admin features under admin/other or something.  Moodle 1.6 already has something like this for reports (admin/report).
# AJAX can be used, as long as it's 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.
# Add bookmarks to each page, so that often-used pages can be added to the admin block on the home page.
Mentor:  Martin Dougiamas





Revision as of 03:18, 21 April 2006

We often get asked to suggest Moodle development projects suitable for students to attempt. Here is a list of such projects that no-one is currently working on. You should contact Martin Dougiamas before starting on any of these, just in case this page is out of date.

All of these projects are also suitable for the Google Summer of Code 2006, a Google project that Moodle is part of. When applying for any of these projects, please include as much evidence as possible of your previous coding experience, and also include a description of how you plan to tackle the project (beyond our description below).

Projects that no-one is working on yet

Global search

Design a modular solution for global search in Moodle. Some of the main criteria are:

  1. it should be fast and accurate
  2. it should allow modules to expose their data structures to the core search via the usual API (function in lib.php) allowing any module to include itself in the search
  3. it should allow the kinds of search parameters that the forum search does now (or better!)
  4. people should not be able to search things they couldn't normally see
  5. it should utilise the new tags system as much as possible
  6. (extra points) it should be able to rank results by relevance and combine results in different modules

Mentor: Martin Dougiamas


Presets for Database module

Implement presets for the Database module using files similar to this example.

  1. Each directory of files will fully define the templates and fields for a particular application of the Database module.
  2. It should be easy to export current settings as a preset (in a zip file), or load new presets (uploaded as a zip file or from the moodledata folder)
  3. A "glossary" preset should replicate the old Glossary module as much as possible (this may require some extensions to the core Database module)
  4. The "Image gallery" preset should implement a really nice photo gallery application.
  5. (extra points) devise a way to publish these directly to another site (for example a database on moodle.org)

Mentor: Martin Dougiamas


Integrated Bug Tracker

Improve our current bug tracker which is a hacked version of PHP Bug tracker, or extend the Database module, or completely write a new "tracker" module from scratch to integrate it inside Moodle as an activity module, using normal Moodle authentication, text filters, and so on.

  1. All the current bugs (with comments) should be migrated across to this new version.
  2. It should allow us to add flags/fields similar to those in the current tracker.
  3. Email subscription to individual bugs should work similar to Moodle forums.
  4. Bugs should be able to be referenced using a simple URL like http://moodle.org/mod/tracker/view.php?issue=3455
  5. Most importantly, the new module should be made generic, so that other sites beside moodle.org can use it to track whatever issues they wish.

Mentor: Martin Dougiamas


AJAX Course Format

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.

  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.

Mentor: Martin Dougiamas


Admin page cleanup

Design a clean, extensible method for implementing the administration page, which contains hundreds of variables and settings for all the many modules in Moodle.

  1. Settings should be organised in a way that is obvious and uncluttered, perhaps using tabs or some other organising structure.
  2. New modules should have their settings appear automatically in the admin interface.
  3. Define a new plugin structure for arbitrary new admin features under admin/other or something. Moodle 1.6 already has something like this for reports (admin/report).
  4. AJAX can be used, as long as it's 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.
  5. Add bookmarks to each page, so that often-used pages can be added to the admin block on the home page.

Mentor: Martin Dougiamas


More projects are being added here soon ...

Projects under development

None