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

Projects for new developers

From MoodleDocs
Revision as of 20:26, 5 March 2007 by Helen Foster (talk | contribs) (reverting rollback mistake)

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 or Penny Leach

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 or Penny Leach

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

Making Moodle VoiceXML enabled

Think about navigating through Moodle just with your voice ...

How about making Moodle one of the first Open Source applications VoiceXML enabled? It will be a very good method of helping mobility disabled people. As far as I know, this technology is only supported by Opera in the standard browsers field, but since it is a W3C Standard, I hope it will become the defacto technology for this kind of service in all browsers. There are already plans to implement it in Firefox and Konqueror.

More info about Multimodal Interaction.

Possible student or mentor (preferably student): David Horat

Automated grading for Computer Programming Assignments

From Arkaitz Garro <arkaitz.garro@gmail.com>:

My name is Arkaitz Garro, and I'm actually studing computer science engineering at Basque Country University (Spain).

As a part of my master thesis (graduating final work), I'm developing a plugin for Moodle that consists in automated grading system designed to process computer programming assignments, bassed on actual Assignment plugin.

Computer Programming students will submit their programming assignments (developed in Java, C++, C# or other OOP language) to Moodle, and our plugin will test that the output of these programs is correct (or not). Besides that, our plugin will test security and performance issues before and during the grading automation.

Possible mentor: Penny Leach

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

Mentors without projects

Developers willing to mentor on projects but don't have any specific ideas:

  1. Penny Leach

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