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: Difference between revisions

From MoodleDocs
(moved to dev docs)
 
(271 intermediate revisions by 40 users not shown)
Line 1: Line 1:
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.
{{Moved_to_dev_docs}}
 
We'll be using this list to register projects as part of Moodle's participation in the [http://code.google.com/soc 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 [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, 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 [http://moodle.org/mod/forum/discuss.php?d=23022 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===
 
[http://www.amazon.com/Classroom-Assessment-Techniques-Handbook-Education/dp/1555425003/ 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
 
# Make Moodle an even better teaching tool.
# Provide some good exemplars of how to do interesting things with database templates.
# Possibly highlight limitations in the database template system, that would require improvements to the database module code to overcome.
# 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
 
===Write a forking chatd===
 
Simplify chatd and rewrite as a forking daemon
 
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 ====
# 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]]'''
 
 
==Projects Completed==
 
#[[Student projects/Presets for Database module|Presets for Database module project notes]]
#[[Student projects/Integrated bug tracker|Integrated bug tracker project notes]]
#[[Student projects/AJAX course format|AJAX course format project notes]]
#[[Student projects/Admin page cleanup|Admin page cleanup project notes]]
#[[Student projects/ical|Calendar export to iCal]]
 
 
[[Category:Developer]]
[[Category:Project]]

Latest revision as of 03:05, 10 January 2012

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

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