Difference between revisions of "Projects for new developers"

Jump to: navigation, search

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.

(Integration with bibliographic systems such as Wikindx)
(Replaced content with "{{Moved_to_dev_docs}}")
(278 intermediate revisions by 41 users not shown)
Line 1: Line 1:
We are often asked to suggest Moodle development projects suitable for students to attempt. 
Here is our current list of projects.
==Projects needing programmers==
===Calendar export to iCal===
==== Background ====
iCal is the standard format for "streaming" event data, like RSS for calendars.
==== Overview ====
Design and construct a solution for producing public and private iCal files from the events in Moodle's calendar.
==== Details ====
# it should be efficient and only updated when new events have been added and only when the ical file has been requested at least once
# calendars should be produced for each course, for each user, and for the whole site (public view and private view)
# the iCal files should be standard and compatible with, say, Google Calendar.
# for some measure of security, calendar URLs should include a long unique encrypted string that is difficult to guess.
# For extra points, implement an optional method of publishing direct to Google calendar (see [http://code.google.com/apis/gdata/calendar.html Google Calendar API])
See [http://moodle.org/mod/forum/discuss.php?d=37393#221976 this forum post] too
===Integration with bibliographic systems such as Wikindx===
==== Background ====
Managing references and citing them is an important behaviour in university education and research. Bibliographic facilities are quite complicated and go beyond the capabilities of Moodle built-in technology (e.g. the database activity). Integrating Moodle with open-source bibliographic software such as [http://wikindx.sourceforge.net/ Wikindx] could much facilitate this practice within Moodle.
==== Overview ====
Design and construct an integration with Wikindx (or other open-source bibliographic tools, if appropriate).
==== Details ====
Teachers should be able to easily refer to wikindx bibliography items throughout a Moodle course, and be able to:
* Generate correctly-formatted in-place references (using standard styles e.g. Harvard, IPA) for the commonly-cited reference types (e.g. journal article, book chapter, book). It may be possible to delegate the formatting directly to wikindx (since it already performs functions like these) rather than implementing a whole new set of logic in the Moodle integration.
** Possibly, allow some kind of direct searching of a wikindx database from within Moodle, so as to make it easier to refer to items
* Generate reading lists / bibliographies
* Allow export of the above into common machine-readable formats such as Bibtex or RIS. (Wikindx can perform this so again it's a question of hooking into, or expanding, wikindx functionality.)
See also [[Development:Wikindx]] and [http://moodle.org/mod/forum/discuss.php?d=23022 this forum discussion] too
==Projects under development==
===Global search===
==== Background ====
Currently Moodle has forum searching, glossary searching and database searching, all independent.  There is no way to search for everything else in a course, though, such as resources, wiki pages, activity info (eg assignments) and especially not to do it all in one search.
==== Overview ====
Design and construct a modular solution for global search in Moodle.
==== Details ====
# it should be fast and accurate
# 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
# it should allow the kinds of search parameters that the forum search does now (or better!)
# people should not be able to search things they couldn't normally see
# it should utilise the new tags system as much as possible
# (extra points) it should be able to rank results by relevance and combine results in different modules
Mentor:  [[Martin Dougiamas]]
Programmer:  [[User:Michael Champanis|Michael Champanis]]
'''[[Student projects/Global search|Global search project notes]]'''
===Presets for Database module===
==== Background ====
The [[Database module]] is a new module in Moodle 1.6 that allows teachers to create repositories for structured data entry by students.  Something like Filemaker Pro, it allows a lot of flexibility in the types of data and formatting of input and output screens.  Here is [http://moodle.org/mod/data/view.php?d=13 an example] and [http://moodle.org/mod/data/view.php?d=26 another one].
==== Overview ====
Implement presets for the Database module using files similar to [http://cvs.sourceforge.net/viewcvs.py/moodle/moodle/mod/data/preset/imagegallery/ this example].  This will allow people to quickly set up commonly-used applications.
==== Details ====
# Each directory of files will fully define the templates and fields for a particular application of the Database module.
# 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)
# A "glossary" preset should replicate the old Glossary module as much as possible (this may require some extensions to the core Database module)
# The "Image gallery" preset should implement a really nice photo gallery application.
# (extra points) devise a way to publish these directly to another site (for example a database on moodle.org)
Mentor:  [[Martin Dougiamas]]
Programmer:  [[User:Tom Flannaghan|Tom Flannaghan]]
'''[[Student projects/Presets for Database module|Presets for Database module project notes]]'''
===Integrated bug tracker===
==== Background ====
Many sites need a way to "track" contact with students or participants via a sort of "helpdesk" for personalised communication with the teachers or admins.  There are other cases where it would be useful to track issues using a sort of workflow, moving issues through a series of states depending on input from various people.
Create a new "tracker" or "workflow" module from scratch to integrate it inside Moodle as an activity module, using normal Moodle authentication, text filters, mail subscriptions and so on.  It may be possible to extend the current database module, but performance is important.
# It should allow teachers to add flags/fields as necessary.
# Email subscription to individual bugs should work similar to Moodle forums.
# Issues should be able to be referenced using a simple URL like http://moodle.org/mod/tracker/view.php?issue=3455
Mentor:  [[Martin Dougiamas]]
Programmer:  [[User:Clifford Tham|Clifford Tham]]
'''[[Student projects/Integrated bug tracker|Integrated bug tracker project notes]]'''
===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.
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.
Mentors:  [[Martin Dougiamas]] and [[User:UrsHunkler|Urs Hunkler]]
Programmer:  [[User:Ed Coyne|Ed Coyne]]
'''[[Student projects/AJAX course format|AJAX course format project notes]]'''
===Admin page cleanup===
Over the years more and more settings have been added to the admin page, and it is starting to outgrow the original simple design.  In particular the Variables page is mess and it's hard to find settings.
Design a new 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, 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.
# Add bookmarks to each page, so that often-used pages can be added to the admin block on the home page.
Mentors:  [[Martin Dougiamas]] and [[User:UrsHunkler|Urs Hunkler]]
Programmer:  [[User:Vincenzo K. Marcovecchio|Vincenzo K. Marcovecchio]]
'''[[Student projects/Admin page cleanup|Admin page cleanup project notes]]'''

Latest revision as of 01:13, 23 June 2011

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

See the Projects for new developers page in the Dev docs.