Note: You are currently viewing documentation for Moodle 2.3. 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
Line 62: Line 62:
Mentor: Martin Langhoff
Mentor: Martin Langhoff


===Write a forking chatd===
===Chat revamp===


Simplify chatd and rewrite as a forking daemon
mod/chat needs a bit of an overhaul. Possible interesting approaches:
 
* Simplify chatd and rewrite as a proper forking daemon. Great process control and networking project, and properly a good case for a bit of AJAX.
* Integrate Moodle with a Jabber backend, plus frontend glue.
** On the backend, we need to consider authentication, chatroom creation, and logging.
** On the frontend, ensuring that we can get Jabber clients started reliably on the end-user's machine, and  integrate a preexisting web-based Jabber client for Jabber-impaired users.
** Installation matter: a clear install HowTo for the Jabber + Moodle.


Mentor: Martin Langhoff
Mentor: Martin Langhoff

Revision as of 23:01, 4 March 2007

Here is a list of current and upcoming "student" projects within the Moodle project. Each project here is a nice self-contained project suitable for student programmers to complete in three months or less, and must have an associate mentor who is a regular Moodle developer.

We'll be using this list to register projects as part of Moodle's participation in the Google Summer of Code 2007.

Moodle Developers, please add your project ideas to this page using the existing format. Make sure you include your own name as a mentor.

Projects needing programmers

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 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, APA) 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 this forum discussion too

Developing new question types for the quiz

The quiz has a plug-in architecture for question types. We currently have implementations of most of the basic question types, it would be nice to have implementations of some more interesting types, perhaps using the YUI JavaScript library to do some interesting interactions (but with an accessible fall-back). Which question types could be left up to the student, but some suggestions are:

  • Drag and drop versions of ordering and matching question types.
  • Place a marker or draw a line on an image question types.
  • Drag the missing words into the sentence/onto an image question type.

Another way to find question types to implement would be to review other systems and make sure Moodle supports all the question types that other systems support.

I envisage that some of these question types would be incorporated into the standard Moodle install, but others would just be put in the contrib area. Part of the project could also be improving the plugin API. There are some minor know issues with it that make it harder that it needs to be to install new question types from contrib.

Possible mentor: Tim Hunt.

Implement CATs in Moodle

This book describes a number of assessment techniques that involve collaboration and group work, and therefore fit very well into Moodle's Social Constructivist philosophy. The book about using these techniques in the classroom, but at an conference I attended there was a talk by Jean Runyon and Thomas Gorecki from the College of Southern Maryland saying how well these techniques work online.

Some of them just need a forum of something basic, but others would need to be done as a database module templates. Doing this would

  1. Make Moodle an even better teaching tool.
  2. Provide some good exemplars of how to do interesting things with database templates.
  3. Possibly highlight limitations in the database template system, that would require improvements to the database module code to overcome.
  4. One of the outcomes of this project could be some really good 'How to write a database template' tutorial, which would be very valuable to the community.

This is my (Tim Hunt's) idea, but I would not be interested in mentoring it. It would need to be someone who knows all about the database module.

Command-line installation and upgrades

Adapt all the DB installation and upgrade scripts to run from the commandline, so fully scripted installations are possible.

Mentor: Martin Langhoff

Performance Monitoring and Tuning in Moodle

Aim to spot and fix performance bottlenecks in Moodle. The project starts with a good set of sample databases, and a profiling approach to be able to demonstrate the improvements in number of DB queries, memory footprint, CPU cycles.

Mentor: Martin Langhoff

Chat revamp

mod/chat needs a bit of an overhaul. Possible interesting approaches:

  • Simplify chatd and rewrite as a proper forking daemon. Great process control and networking project, and properly a good case for a bit of AJAX.
  • Integrate Moodle with a Jabber backend, plus frontend glue.
    • On the backend, we need to consider authentication, chatroom creation, and logging.
    • On the frontend, ensuring that we can get Jabber clients started reliably on the end-user's machine, and integrate a preexisting web-based Jabber client for Jabber-impaired users.
    • Installation matter: a clear install HowTo for the Jabber + Moodle.

Mentor: Martin Langhoff

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

  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

Programmer: Michael Champanis

Global search project notes


Projects Completed

  1. Presets for Database module project notes
  2. Integrated bug tracker project notes
  3. AJAX course format project notes
  4. Admin page cleanup project notes
  5. Calendar export to iCal