<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.moodle.org/24/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=David.horat</id>
	<title>MoodleDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.moodle.org/24/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=David.horat"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/Special:Contributions/David.horat"/>
	<updated>2026-05-08T09:53:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Flash&amp;diff=49950</id>
		<title>Flash</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Flash&amp;diff=49950"/>
		<updated>2009-02-02T23:37:19Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Flash content can easily be included in your courses.&lt;br /&gt;
&lt;br /&gt;
==General instructions for insertion==&lt;br /&gt;
If you have the [[Filters|filter]] for the Flash [[Multimedia plugins|multimedia plugin]] enabled then simply linking to the file in an [[HTML in Moodle|HTML]] area such as a [[Label|label]], [[HTML block]] or [[Course sections#Editing_sections|section description]] will also display the Flash file inline. At the moment all flash files will play at the same size site-wide by default. &lt;br /&gt;
&lt;br /&gt;
You can use HTML code and the object tag to set individual movie sizes which will work with most browsers except Microsoft&#039;s Internet Explorer.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;object width=&amp;quot;600&amp;quot; height=&amp;quot;400&amp;quot; classid=&amp;quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&amp;quot;&amp;lt;br&amp;gt;   codebase=&amp;lt;br&amp;gt; &amp;quot;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0&amp;quot;&amp;gt;&amp;lt;br&amp;gt;  &amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;http://yoursite.org/file.php/2/movie.swf&amp;quot; /&amp;gt;&amp;lt;br&amp;gt;  &amp;lt;param name=&amp;quot;quality&amp;quot; value=&amp;quot;high&amp;quot; /&amp;gt; &amp;lt;embed width=&amp;quot;600&amp;quot; height=&amp;quot;400&amp;quot; &amp;lt;br&amp;gt; src=&amp;quot;http://yoursite.org/file.php/2/movie.swf&amp;quot; quality=&amp;quot;high&amp;quot; &amp;lt;br&amp;gt; type=&amp;quot;application/x-shockwave-flash&amp;quot; &amp;lt;br&amp;gt; pluginspage=&amp;quot;http://www.macromedia.com/go/getflashplayer&amp;quot; /&amp;gt;&amp;lt;/object&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; If using the .swf filter you can control display size by adding the following parameters to the end of the link to specify size: ?d=widthxheight (for example ?d=600x400  where the image is 600 pixels wide 400 pixels high). You can use up to 3 characters for the width and the height, plus an optional % symbol at the end.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039;  There are also other ways to achieve sizing control. See the [http://moodle.org/mod/forum/discuss.php?d=29588 Size of embedded Flash] forum posts for some hacks.&lt;br /&gt;
&lt;br /&gt;
===Update 2008===&lt;br /&gt;
The following code works in IE7 and Firefox 3:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;embed width=&amp;quot;600&amp;quot; height=&amp;quot;400&amp;quot; type=&amp;quot;application/x-shockwave-flash&amp;quot; &lt;br /&gt;
src=&amp;quot;http://YOURSITE.com/path/to/your/swffile/swf&amp;quot; &lt;br /&gt;
id=&amp;quot;myFlashId&amp;quot; bgcolor=&amp;quot;#ffffff&amp;quot; quality=&amp;quot;high&amp;quot; wmode=&amp;quot;opaque&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Insert flash into a lesson page==&lt;br /&gt;
Inserting a Flash file into a [[Lesson Pages|lesson page]] (either a branch or question page) is similar to the above.&lt;br /&gt;
#Publish the SWF and HTML upload the SWF to a central location on your server. &lt;br /&gt;
#Then copy and paste the HTML code (between the object tags) and &lt;br /&gt;
#place that in the HTML side of your question (switch to HTML view).&lt;br /&gt;
# Change the value in your HTML code&lt;br /&gt;
##Example: Change this &amp;lt;nowiki&amp;gt;&amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;MyFlashFile.swf&amp;quot;&amp;lt;/nowiki&amp;gt; to this &amp;lt;nowiki&amp;gt;&amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;http://www.myserver.com/flash_files/MyFlashFile.swf&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Repeat the same step, but change the src instead.&lt;br /&gt;
##Example:&amp;lt;nowiki&amp;gt;&amp;lt;embed src=&amp;quot;http://www.myserver.com/flash_files/MyFlashFile.swf&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#Save the question&lt;br /&gt;
&lt;br /&gt;
==Some external links to Flash file generating programs==&lt;br /&gt;
This is not a comprehensive list nor an endorsement of any product.&lt;br /&gt;
*[http://www.openoffice.org/ Open Office, an open source program] can export-create a Flash swf file in Impress, the presentation module.  Very basic output.&lt;br /&gt;
*[http://www.adobe.com/products/flash/ Adobe/Macromedia Flash site] &amp;quot;The&amp;quot; serious program, now owned by Adobe and part of their Creative Suite.&lt;br /&gt;
*[http://www.debugmode.com/wink/ Wink] freeware program. Basic output functions, steps up from OO Impress but not even close to Adobe Flash.&lt;br /&gt;
*[http://osflash.org/projects Open Source Flash Organization] list of projects probably best viewed by developers, not teachers&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[Flash_module]] How to install a Flash plugin module.&lt;br /&gt;
*[[Files]] for teachers&lt;br /&gt;
*[[Filters]] part of the administration block&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=37119 Multimedia plugin vs object embed] forum discussion&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=29588 Size of embedded Flash] forum discussion&lt;br /&gt;
*[[Development:SWF]] SWF Activity Module&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Teacher]]&lt;br /&gt;
[[pl:Flash]]&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=User:David_Horat&amp;diff=48257</id>
		<title>User:David Horat</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=User:David_Horat&amp;diff=48257"/>
		<updated>2008-12-17T16:17:51Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Personal webpage: http://davidhorat.com/&lt;br /&gt;
* Moodle.org profile: http://moodle.org/user/view.php?id=153093&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice&amp;diff=42585</id>
		<title>Development:Voice</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice&amp;diff=42585"/>
		<updated>2008-08-25T06:41:43Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
Cancelled due to Opera´s voice control not good enough in open contexts.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Moodle Voice is a project for embedding VoiceXML support into Moodle Core.&lt;br /&gt;
&lt;br /&gt;
== Project Status ==&lt;br /&gt;
* Project stopped.&lt;br /&gt;
* The current voice recognition technology in Opera is not good enough to make the whole Moodle application Voice accesible.&lt;br /&gt;
&lt;br /&gt;
== Current Focus ==&lt;br /&gt;
&lt;br /&gt;
1. Describing the functionality to be made voice enabled within this project.&lt;br /&gt;
&lt;br /&gt;
2. Add an experimental option called &amp;quot;VoiceXML&amp;quot; so only when this variable is checked, VoiceXML code is generated.&lt;br /&gt;
&lt;br /&gt;
3. Create a php lib for VoiceXML to put all functionality of VoiceXML and to be used by the rest of the code.&lt;br /&gt;
&lt;br /&gt;
4. Modify weblib.php and formslib.php intensively to use the VoiceXML lib and output VoiceXML code along with the html code if the VoiceXML variable is set.&lt;br /&gt;
&lt;br /&gt;
5. Create a set of tests for every function and the integration of several functions to assure that the functionality is the expected one.&lt;br /&gt;
&lt;br /&gt;
== Contacts ==&lt;br /&gt;
Student :  [http://mayankjain20.googlepages.com Mayank Jain]&lt;br /&gt;
&lt;br /&gt;
Mentor  :  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
== Suggestions ==&lt;br /&gt;
Please feel free to chip-in with your suggestions.&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:DB_layer_2.0&amp;diff=35322</id>
		<title>Development:DB layer 2.0</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:DB_layer_2.0&amp;diff=35322"/>
		<updated>2008-04-28T12:05:52Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;COMING SOON&lt;br /&gt;
&lt;br /&gt;
== Ideas ==&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Object-relational_mapping Object Relational Mapping style]&lt;br /&gt;
* There are already some PHP ORM tools:&lt;br /&gt;
** [http://www.phpdoctrine.org/ Doctrine]&lt;br /&gt;
** [http://www.phpobjectgenerator.com/ PHP Object Generator]&lt;br /&gt;
** [http://propel.phpdb.org/trac/ Propel]&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Projects_for_new_developers&amp;diff=33950</id>
		<title>Projects for new developers</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Projects_for_new_developers&amp;diff=33950"/>
		<updated>2008-03-25T09:43:00Z</updated>

		<summary type="html">&lt;p&gt;David.horat: /* Moodle Usability Guidelines */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists possible student projects in Moodle, in particular suggestions for GSOC 2008 projects. &lt;br /&gt;
__NOTOC__&lt;br /&gt;
===Potential GSOC students===&lt;br /&gt;
&lt;br /&gt;
Firstly, review the [http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents GSOC advice for students].&lt;br /&gt;
&lt;br /&gt;
You may choose a project from the list below and/or suggest your own project ideas. Please use the [http://moodle.org/mod/forum/view.php?id=7105 Moodle.org Student projects forum] for discussing project ideas.&lt;br /&gt;
&lt;br /&gt;
Student applications start on Monday 24th March 2008. See the [http://code.google.com/opensource/gsoc/2008/faqs.html#0.1_timeline GSOC timeline] for more information.&lt;br /&gt;
&lt;br /&gt;
===Potential mentors===&lt;br /&gt;
&lt;br /&gt;
Moodle developers willing to mentor a GSOC project, please suggest a new project under the heading &amp;quot;Ideas we&#039;re considering for GSOC&amp;quot; and/or add your name to an existing project. Contact [http://moodle.org/user/view.php?id=24152&amp;amp;course=5 Helen Foster] if you have any questions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
==Useful links==&lt;br /&gt;
&lt;br /&gt;
* [[GSOC]] - describing Moodle&#039;s involvement with Google in their Summer of Code program, including a list of GSOC projects from 2006 and 2007&lt;br /&gt;
* [http://tracker.moodle.org/secure/IssueNavigator.jspa?mode=hide&amp;amp;requestId=10512 Popular Requests] - Most voted-for enhancements and new feature requests in the tracker&lt;br /&gt;
&lt;br /&gt;
==GSOC suggested projects==&lt;br /&gt;
&lt;br /&gt;
Following a review, approved suggested projects which have mentors will be moved under this heading. &#039;&#039;More approved suggested projects coming soon!&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
=== Consuming RSS feeds ===&lt;br /&gt;
&lt;br /&gt;
RSS/Atom feeds are becoming an important technology on the web and so it&#039;s crucial that Moodle has good support for consuming these feeds for a variety of different uses. At present we generate [[RSS|RSS feeds]] for use by other applications, though only consume feeds in the [[RSS feeds block]]. It would be useful to have a core library which can take care of aggregating feeds (and the issues around it) and to provide them in a simple format for plugins and other core parts of Moodle to use.&lt;br /&gt;
&lt;br /&gt;
This project will involve creating a feed aggregation library which:&lt;br /&gt;
* Will consume most current aggregation technologies (RSS 0.90/1.0/2.0 /Atom etc)&lt;br /&gt;
* Will work behind a variety of web proxies &lt;br /&gt;
* Periodically aggregates and uses a caching mechanism (doesn&#039;t query remote server with every request)&lt;br /&gt;
* (Is probably based on an existing PHP framework)&lt;br /&gt;
&lt;br /&gt;
In order test this library, it will be necessary to refactor the RSS block to use it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [http://moodle.org/user/view.php?id=104159&amp;amp;course=5 Dan Poltawski]&lt;br /&gt;
&lt;br /&gt;
=== Secure RSS feeds ===&lt;br /&gt;
&lt;br /&gt;
Currently RSS is less than useful because:&lt;br /&gt;
* Either we can&#039;t publish private information to the outside world because it&#039;s too sensitive.&lt;br /&gt;
* We open up sensitive information to the outside world&lt;br /&gt;
&lt;br /&gt;
We should add codes to make the RSS URLs practically impossible to guess, much the same way as Google Calendar does it.&lt;br /&gt;
&lt;br /&gt;
* Overhaul all the RSS feeds in Moodle to make use of a long hash-like string in the URL for identification (Forums, Data etc).  We already have a mechanism for managing these, developed for the grade export reports, called user_key_login.&lt;br /&gt;
* Add RSS to other areas of Moodle such as the participants &amp;quot;last logins&amp;quot; and the activity logs.&lt;br /&gt;
* Explore/research other methods of opening up RSS in a safe way to the outside world.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [http://moodle.org/user/view.php?id=240338&amp;amp;course=5 Nicolas Connault]&lt;br /&gt;
&lt;br /&gt;
===New customisable theme===&lt;br /&gt;
&lt;br /&gt;
Creation of a new [[Themes|theme]] (theme/custom) that includes a configuration page so that the theme can be easily edited directly via Moodle. The page would include:&lt;br /&gt;
&lt;br /&gt;
* Select a logo from the site files and/or interface to upload a file&lt;br /&gt;
* Several input fields to customise various CSS elements such as block headings, text colour, background colour, headings, header, footer, extra custom CSS etc.&lt;br /&gt;
* Select a parent theme&lt;br /&gt;
&lt;br /&gt;
Also include the option of an administrator setting the theme for the site with their particular configuration or allowing users to customise various elements of the theme.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [http://moodle.org/user/view.php?id=11995 Shane Elliott]&lt;br /&gt;
&lt;br /&gt;
=== Blog Assignment Type ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is it for?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blogs are inherently user owned and driven by definition, however teachers would like to have a way to use blogs as assignments in their courses, comment, grade, etc.&lt;br /&gt;
&lt;br /&gt;
A solution to this conundrum would be a new Assignment type that makes it possible for a student to easily submit the link one of their blogs to an assignment in a course, and have that blog entry privately graded and commented on by the instructor of that course. The blog entry itself remains public along with all of the student&#039;s other blogs. The tool would provide a time filter in the Assignment, so that the instructor could limit the blog entry posting dates that will be accepted (both to ensure &#039;fresh&#039; entries and to keep the list of entries the student chooses short for frequent student bloggers).&lt;br /&gt;
&lt;br /&gt;
I suggest a blog assignment type that functions as follows:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teacher:&#039;&#039;&#039;&lt;br /&gt;
Teacher creates a blog assignment, this puts a grade in the gradebook and provides an assignment link for students to see.&lt;br /&gt;
&lt;br /&gt;
The teacher can configure options to allow a blog entry posted in the last X days to be used for the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Students:&#039;&#039;&#039;&lt;br /&gt;
When students enter the assignment they see a drop down menu of all their current (blog entries posted in the last X days as chosen by the teacher) blog entries, and they choose one to satisfy the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assessment:&#039;&#039;&#039;&lt;br /&gt;
The teacher goes in to the Assignment, views the blogs that are linked from the assignment, leaves comments (the comments only show up to the student when they view the blog assignment), and gives a grade.&lt;br /&gt;
&lt;br /&gt;
The blog entries themselves stay on the student&#039;s blog, only the grades, links, and comments go in the assignment (optionally the assignment scrapes the student&#039;s blog and loads the full text in to store for backup and restore).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mathieu Petit-Clair&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interested Student&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=27192&amp;amp;course=1 Joey Morwick]&lt;br /&gt;
&lt;br /&gt;
=== Competency tracking ===&lt;br /&gt;
&lt;br /&gt;
Currently in Moodle 1.9 we have a way of saying &amp;quot;these courses and these activities are intended to achieve these outcomes&amp;quot; and teachers can grade students against those outcomes.  eg You could grade &amp;quot;Understands basic evacuation procedures&amp;quot; on a scale like &amp;quot;No understanding, Partial understanding, Total understanding&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
What we need now is a way to &lt;br /&gt;
* Relate a list of desired outcomes to each USER, for the site, like a &amp;quot;learning plan&amp;quot; for that user.&lt;br /&gt;
* For each outcome, specify a desired competency (eg Total understanding) for that competency to be &amp;quot;achieved&amp;quot;.&lt;br /&gt;
* Find a good way to connect Grades in gradebooks to these competencies&lt;br /&gt;
** We&#039;ll have to cope with results that might not contribute to final grading, such as initial evaluations. &lt;br /&gt;
** We&#039;ll have to cope with final grading from more than one course, and aggregate them&lt;br /&gt;
* In the end we&#039;ll have to generate nice reports to admins and users so that they can see what a particular user can do and what they still have to learn or prove.&lt;br /&gt;
* Finally, for extra credit, it would be nice to have a &amp;quot;suggest courses&amp;quot; features which would suggest upcoming courses that can help a user gain missing competencies.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [http://moodle.org/user/view.php?id=1 Martin Dougiamas]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ideas we&#039;re considering for GSOC==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Please add your ideas for GSOC projects under this heading.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Following a review, approved suggested projects which have mentors will be moved under the heading &amp;quot;GSOC suggested projects&amp;quot; above. Please note that suggested projects require a mentor in order for them to be approved.&lt;br /&gt;
&lt;br /&gt;
=== Roles interface improvements ===&lt;br /&gt;
&lt;br /&gt;
Improve the roles editing interface by making it more dynamic and flexible.  You can use the YUI library for ajax if you like, but there must be a good fall-back interface too.   Some ideas include:&lt;br /&gt;
&lt;br /&gt;
* Improve the order of the capabilities and implement better grouping.&lt;br /&gt;
* Make the groups of capabilities collapsible to make it easier to &amp;quot;zoom in&amp;quot; to a particular section.&lt;br /&gt;
* Add floating tooltip help when you hover over any given capability.&lt;br /&gt;
* Experiment with an (alternate) interface seeing the roles all side-by-side for easier comparison/editing.&lt;br /&gt;
* Implement a roles backup and restore system to allow site administrators to distribute useful roles in the Moodle community (rather than having to describe the permissions setup)&lt;br /&gt;
* More clearly designate the scope of capabilities. Does the capability apply at the site, category, course, activity, or user to user levels.&lt;br /&gt;
* Analyse the problem carefully with feedback from the community for more ideas.&lt;br /&gt;
&lt;br /&gt;
===Integration with bibliographic systems such as Wikindx===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Design and construct an integration with Wikindx (or other open-source bibliographic tools, if appropriate).&lt;br /&gt;
&lt;br /&gt;
Teachers should be able to easily refer to wikindx bibliography items throughout a Moodle course, and be able to:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
** Possibly, allow some kind of direct searching of a wikindx database from within Moodle, so as to make it easier to refer to items&lt;br /&gt;
* Generate reading lists / bibliographies&lt;br /&gt;
* Allow export of the above into common machine-readable formats such as Bibtex or RIS. (Wikindx can perform this so again it&#039;s a question of hooking into, or expanding, wikindx functionality.)&lt;br /&gt;
&lt;br /&gt;
See also [[Development:Wikindx]] and [http://moodle.org/mod/forum/discuss.php?d=23022 this forum discussion] too&lt;br /&gt;
&lt;br /&gt;
===Implement CATs in Moodle===&lt;br /&gt;
&lt;br /&gt;
[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&#039;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. &lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
# Make Moodle an even better teaching tool.&lt;br /&gt;
# Provide some good exemplars of how to do interesting things with database templates.&lt;br /&gt;
# Possibly highlight limitations in the database template system, that would require improvements to the database module code to overcome.&lt;br /&gt;
# One of the outcomes of this project could be some really good &#039;How to write a database template&#039; tutorial, which would be very valuable to the community.&lt;br /&gt;
&lt;br /&gt;
This is my (Tim Hunt&#039;s) idea, but I would not be interested in mentoring it. It would need to be someone who knows all about the database module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle IDE ===&lt;br /&gt;
The objective of this project is to create a Moodle IDE based on Eclipse so that new developers can get to develop Moodle in less time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ideas&#039;&#039;&#039;&lt;br /&gt;
* First release: Eclipse + Plugins + Moodle splashscreen + CVS Configuration + Apache + MySQL + Moodle CVS code. All preconfigured and ready out of the box.&lt;br /&gt;
* Every X time, it checks for new versions of Moodle and packs it.&lt;br /&gt;
* Checkstyle plugin alike to follow Moodle Design Guidelines.&lt;br /&gt;
* Development help (can be wiki pages to navigate offline)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;More mentors needed&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download (Old Version)&#039;&#039;&#039;: [http://mirrors.davidhorat.com/moodle/MoodleIDE-latest.zip MoodleIDE-latest]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Join the [http://moodle.org/mod/forum/discuss.php?d=92859 discussion thread]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Moodle Multisite ===&lt;br /&gt;
&lt;br /&gt;
The objective of this project is to make Moodle able to manage several Moodle sites with just one source code. This will help administrators of several sites to centralize code upgrades and &#039;&#039;technical problems&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ideas&#039;&#039;&#039;&lt;br /&gt;
* config.php will be a proxy that executes the concrete config file depending on the current url.&lt;br /&gt;
* The concrete config file will be under the directory /config and will have an arbitrary name created by the user.&lt;br /&gt;
* Create an XML file with all the pairs URL(n)-ConfigFile(1).&lt;br /&gt;
* Every time this file changes, it should be created the config.php file cache (to speed up things).&lt;br /&gt;
* Develop a Web frontend to change this file, that can be just accessed by the super admin in every site.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Join the [http://moodle.org/mod/forum/discuss.php?d=92860 discussion thread]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Automatic Accessibility Checking ===&lt;br /&gt;
&lt;br /&gt;
The objective of this project is to make a tool that can check Moodle´s accessibility automatically before realising a version.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ideas&#039;&#039;&#039;&lt;br /&gt;
* Automatic Tool (see down)&lt;br /&gt;
* Create an example course which introduces every XHTML code of the Moodle application, in order to have a way to test it.&lt;br /&gt;
* Create a button called &amp;quot;Check XHTML&amp;quot; which will send the current page code to a validator.&lt;br /&gt;
** This button just helps to check if the current page is valid. Good for development purposes.&lt;br /&gt;
** This button will be (de)activated in the administration panel&lt;br /&gt;
** Keep in mind that this button will not pass the URL as a referer, but it will take all the code from the page and send it to the validation service&lt;br /&gt;
** This button can be used in other web applications&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automatic Tool&#039;&#039;&#039;&lt;br /&gt;
* Create (or use an existing one) an automatic and easy to use tool that retrieves all the pages in a site until a concrete level (recursive calling it for each link)&lt;br /&gt;
** Use concrete user agent names&lt;br /&gt;
** Be able to store cookies in order to check it with a concrete user and password&lt;br /&gt;
* Plug each output to an automatic XHTML validator&lt;br /&gt;
** In the future we can plug in different validators: CSS, WCAG (what it can be checkable automatically), etc.&lt;br /&gt;
* Generate stats&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Interested Student&#039;&#039;&#039;:  David Knight email - david[at]allsopmedia[dot]com irc - Lucias O`Neil&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Join the [http://moodle.org/mod/forum/discuss.php?d=92861 discussion thread]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Moodle Usability ===&lt;br /&gt;
The main objective of this project is to detect and solve specific usability issues.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Main tasks&#039;&#039;&#039;&lt;br /&gt;
* Research in the tracker, forums, etc. to create a hitlist of the top 10 (or 20) specific usability issues.&lt;br /&gt;
* For each issue, identify the problem clearly (screenshots) and clearly describe one or more solutions (incl mock screenshots) for the community to evaluate.&lt;br /&gt;
* Create code to solve the problem with the best decided solution (optional, depending on Moodle community thoughs).&lt;br /&gt;
* Take a look at [http://fluidproject.org/ Fluid Project] (who we are involved with already) to see where some of their components can be used in Moodle (optional).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Join the [http://moodle.org/mod/forum/discuss.php?d=92862 discussion thread]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Moodle Target tracking + rewards/gifts===&lt;br /&gt;
&lt;br /&gt;
This one would suit a facebook enthusiast! The Facebook gifts system is very popular and an ideal motivator for students at school level. Moodle needs an equivalent.&lt;br /&gt;
&lt;br /&gt;
The aim is to develop a system for setting targets e.g. &#039;get at least 60% in this assignment/quiz/whatever&#039; and for reward credits to be awarded automatically when it is completed. These reward credits translate to a system of Gifts similar to Facebook ones (small images, akin to stickers, which can be bought for a small fee and sent to friends who then display them on their profile). Admins can control what the reward images are for their site, maybe having them in some sort of rank order of value, or having different ones with different meanings. There are several ways they could be implemented beyond that:&lt;br /&gt;
* Teachers could choose which rewards can be earned for a specific task. For example, there may be different rewards for forums and assignments&lt;br /&gt;
* Teachers may want to specify different rewards for different levels of performance on the same task&lt;br /&gt;
* Teachers decide how many points a certain target is worth and the students cash in those points for rewards of various values&lt;br /&gt;
* Teachers decide how many rewards a target is worth and students choose that many rewards. None are worth more than 1 point each, the only difference is the graphic.&lt;br /&gt;
Once students have rewards, they need a way of allocating them (presumably permanently) to their friends. A system for logically displaying them on the friend&#039;s profile page would be needed too and will need to take into account&lt;br /&gt;
* Students with only a few stickers given to them by friends will want them to maximise their display&lt;br /&gt;
* Students who are very popular with hundreds of stickers may need to groups of 10 similar ones substituted for a super-sticker to use less space&lt;br /&gt;
* Hovering over the sticker should give details of who awarded it and when and possibly a short message.&lt;br /&gt;
Additionally, the social rating/ranking that this achieves will have most effect when it is publicly visible in various places e.g. under forum avatars and maybe in the online users block as well as the user profile. &lt;br /&gt;
&lt;br /&gt;
Maybe this would sit well with the &#039;Friends&#039; part of last years GSOC social networking project if it were finished.&lt;br /&gt;
&lt;br /&gt;
I can&#039;t offer to mentor in coding terms, but will help with ideas all I can. [[User:Matt Gibson|Matt Gibson]] 05:26, 4 March 2008 (CST)&lt;br /&gt;
&lt;br /&gt;
Interested Student : Rajan Vaish ( GTALK/GMAIL:vaish.rajan@gmail.com, IRC: vaish)&lt;br /&gt;
&lt;br /&gt;
===Use of Video Material Effectively within Moodle===&lt;br /&gt;
&lt;br /&gt;
The main purpose of this module will be to get use of video content, most probably a lecture, in a more formal/controlled/effective way within Moodle.&lt;br /&gt;
&lt;br /&gt;
The main features of this module will be;&lt;br /&gt;
* Stream the video file (most probably in flv format)&lt;br /&gt;
** Should be able to stream by using multiple ways (e.x. FMS, Red5, lighttpd, etc..)&lt;br /&gt;
** Develop a front-end to configure the streaming server settings&lt;br /&gt;
** automatic media conversion (controlled by other Moodle settings like max file size, etc..)&lt;br /&gt;
* The teacher can give related notes, websites or other resources with the video&lt;br /&gt;
* The students can keep a note related to each video&lt;br /&gt;
* Share/view other student&#039;s notes (probably controlled by the teachers and/or students)&lt;br /&gt;
* Optionally assess the student notes and include them in the grade book &lt;br /&gt;
&lt;br /&gt;
The above list may expanded based on your views.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty Level:&#039;&#039;&#039; Easy/Medium&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skills Required:&#039;&#039;&#039;&lt;br /&gt;
* Familiarity with streaming servers like Red5 and video streaming in general.&lt;br /&gt;
* Should be able to install and configure required products (Moodle, Red5, lighttpd, etc..) in any OS (Windows, Linux, Mac, etc..)&lt;br /&gt;
* Understanding of UI design concepts.&lt;br /&gt;
* Familiarity with Moodle APIs and [[Developer_documentation |Developing Moodle in general]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Join the [http://moodle.org/mod/forum/discuss.php?d=92310 discussion thread]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;References&#039;&#039;&#039;&lt;br /&gt;
* [http://moodle.org/mod/data/view.php?rid=931&amp;amp;page=102 FlashVideo]&lt;br /&gt;
* [http://osflash.org/red5 RED5 Open Source Streaming Server]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential Mentor:&#039;&#039;&#039; [http://moodle.org/user/edit.php?id=68520 Rashan Anushka]&lt;br /&gt;
&lt;br /&gt;
===Web-based upgrade and plugins interface===&lt;br /&gt;
&lt;br /&gt;
A system for Moodle to be upgraded along with its plugins from within the admin interface.&lt;br /&gt;
&lt;br /&gt;
Currently, adding third party modules/patches can be messy and can especially slow down the upgrade process if CVS is not used. The aim would be to develop a way to package plugins in a standardised way so that a single zip file could be retrieved and installed automatically, similar to the way courses are restored. An added feature would be for the modules and plugins database on moodle.org to have an XML index so that you could browse available plugins from within your own moodle instance and have a one-click install option. Version compatibility info could be included so that only those which will work with your install will be shown. At upgrade time, the new third-party components screen could then show which ones could be upgraded along with the rest of the code and which would need to dropped because there is no compatible replacement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Add SQLite Support to XMLDB===&lt;br /&gt;
Having local sqlite database has been discussed in the past by developers for uses such as prototyping and testing. In this project you would add sqllite to the moodle database abstraction layer. Once this had been archieved you would look at adding a mechanism to copy a live moodle database into a sqllite database to implement a mechnism to switch into &#039;testing mode&#039; using a sqlite copy of the live database.  See also [http://moodle.org/mod/forum/discuss.php?d=88827 this thread on sqllite in moodle]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/discuss.php?d=92797 Simple Quiz building user interface] forum discussion about work that might be done this summer, although as part of something other than GSOC&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Project]]&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Projects_for_new_developers&amp;diff=33739</id>
		<title>Projects for new developers</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Projects_for_new_developers&amp;diff=33739"/>
		<updated>2008-03-18T10:07:44Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists possible student projects in Moodle, in particular suggestions for GSOC 2008 projects.&lt;br /&gt;
__NOTOC__&lt;br /&gt;
==To do this week (17th - 24th March 2008)==&lt;br /&gt;
&lt;br /&gt;
*Would-be GSOC student participants please discuss your application ideas in the [http://moodle.org/mod/forum/view.php?id=7105 Moodle.org Student projects forum]. &#039;&#039;You&#039;re welcome to suggest ideas for projects too!&#039;&#039;&lt;br /&gt;
*Moodlers willing to mentor a GSOC project, please add your name to a project on this page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Secure RSS feeds ==&lt;br /&gt;
&lt;br /&gt;
Currently RSS is less than useful because:&lt;br /&gt;
* Either we can&#039;t publish private information to the outside world because it&#039;s too sensitive.&lt;br /&gt;
* We open up sensitive information to the outside world&lt;br /&gt;
&lt;br /&gt;
We should add codes to make the RSS URLs practically impossible to guess, much the same way as Google Calendar does it.&lt;br /&gt;
&lt;br /&gt;
* Overhaul all the RSS feeds in Moodle to make use of a long hash-like string in the URL for identification (Forums, Data etc).&lt;br /&gt;
* Store these codes in a new field per-user and per-course.   &lt;br /&gt;
* Add GUIs to let the user recreate their code to something else should they suspect a breach.&lt;br /&gt;
* Add RSS to other areas of Moodle such as the participants &amp;quot;last logins&amp;quot; and the activity logs.&lt;br /&gt;
* Explore/research other methods of opening up RSS in a safe way to the outside world.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Old Specification:&#039;&#039;&#039; [[Student projects/Secure RSS feeds|Secure RSS feeds]]&lt;br /&gt;
&lt;br /&gt;
== Roles interface improvements ==&lt;br /&gt;
&lt;br /&gt;
Improve the roles editing interface by making it more dynamic and flexible.  You can use the YUI library for ajax if you like, but there must be a good fall-back interface too.   Some ideas include:&lt;br /&gt;
&lt;br /&gt;
* Improve the order of the capabilities and implement better grouping.&lt;br /&gt;
* Make the groups of capabilities collapsible to make it easier to &amp;quot;zoom in&amp;quot; to a particular section.&lt;br /&gt;
* Add floating tooltip help when you hover over any given capability.&lt;br /&gt;
* Experiment with an (alternate) interface seeing the roles all side-by-side for easier comparison/editing.&lt;br /&gt;
* Implement a roles backup and restore system to allow site administrators to distribute useful roles in the moodle comunity (rather than having to describe the permissions setup)&lt;br /&gt;
* Analyse the problem carefully with feedback from the community for more ideas.&lt;br /&gt;
&lt;br /&gt;
==Integration with bibliographic systems such as Wikindx==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Design and construct an integration with Wikindx (or other open-source bibliographic tools, if appropriate).&lt;br /&gt;
&lt;br /&gt;
Teachers should be able to easily refer to wikindx bibliography items throughout a Moodle course, and be able to:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
** Possibly, allow some kind of direct searching of a wikindx database from within Moodle, so as to make it easier to refer to items&lt;br /&gt;
* Generate reading lists / bibliographies&lt;br /&gt;
* Allow export of the above into common machine-readable formats such as Bibtex or RIS. (Wikindx can perform this so again it&#039;s a question of hooking into, or expanding, wikindx functionality.)&lt;br /&gt;
&lt;br /&gt;
See also [[Development:Wikindx]] and [http://moodle.org/mod/forum/discuss.php?d=23022 this forum discussion] too&lt;br /&gt;
&lt;br /&gt;
==Implement CATs in Moodle==&lt;br /&gt;
&lt;br /&gt;
[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&#039;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. &lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
# Make Moodle an even better teaching tool.&lt;br /&gt;
# Provide some good exemplars of how to do interesting things with database templates.&lt;br /&gt;
# Possibly highlight limitations in the database template system, that would require improvements to the database module code to overcome.&lt;br /&gt;
# One of the outcomes of this project could be some really good &#039;How to write a database template&#039; tutorial, which would be very valuable to the community.&lt;br /&gt;
&lt;br /&gt;
This is my (Tim Hunt&#039;s) idea, but I would not be interested in mentoring it. It would need to be someone who knows all about the database module.&lt;br /&gt;
&lt;br /&gt;
== Blog Assignment Type ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is it for?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blogs are inherently user owned and driven by definition, however teachers would like to have a way to use blogs as assignments in their courses, comment, grade, etc.&lt;br /&gt;
&lt;br /&gt;
A solution to this conundrum would be a new Assignment type that makes it possible for a student to easily submit the link one of their blogs to an assignment in a course, and have that blog entry privately graded and commented on by the instructor of that course. The blog entry itself remains public along with all of the student&#039;s other blogs. The tool would provide a time filter in the Assignment, so that the instructor could limit the blog entry posting dates that will be accepted (both to ensure &#039;fresh&#039; entries and to keep the list of entries the student chooses short for frequent student bloggers).&lt;br /&gt;
&lt;br /&gt;
I suggest a blog assignment type that functions as follows:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teacher:&#039;&#039;&#039;&lt;br /&gt;
Teacher creates a blog assignment, this puts a grade in the gradebook and provides an assignment link for students to see.&lt;br /&gt;
&lt;br /&gt;
The teacher can configure options to allow a blog entry posted in the last X days to be used for the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Students:&#039;&#039;&#039;&lt;br /&gt;
When students enter the assignment they see a drop down menu of all their current (blog entries posted in the last X days as chosen by the teacher) blog entries, and they choose one to satisfy the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assessment:&#039;&#039;&#039;&lt;br /&gt;
The teacher goes in to the Assignment, views the blogs that are linked from the assignment, leaves comments (the comments only show up to the student when they view the blog assignment), and gives a grade.&lt;br /&gt;
&lt;br /&gt;
The blog entries themselves stay on the student&#039;s blog, only the grades, links, and comments go in the assignment (optionally the assignment scrapes the student&#039;s blog and loads the full text in to store for backup and restore).&lt;br /&gt;
&lt;br /&gt;
== Moodle IDE ==&lt;br /&gt;
The objective of this project is to create a Moodle IDE based on Eclipse so that new developers can get to develop Moodle in less time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ideas&#039;&#039;&#039;&lt;br /&gt;
* First release: Eclipse + Plugins + Moodle splashscreen + CVS Configuration + Apache + MySQL + Moodle CVS code. All preconfigured and ready out of the box.&lt;br /&gt;
* Every X time, it checks for new versions of Moodle and packs it.&lt;br /&gt;
* Checkstyle plugin alike fo follow Moodle Design Guidelines.&lt;br /&gt;
* Development help (can be wiki pages to navigate offline)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;More mentors needed&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download (Old Version)&#039;&#039;&#039;: [http://mirrors.davidhorat.com/moodle/MoodleIDE-latest.zip MoodleIDE-latest]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Join the [http://moodle.org/mod/forum/discuss.php?d=92859 discussion thread]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Moodle Multisite ==&lt;br /&gt;
The objective of this project is to make Moodle able to manage several Moodle sites with just one source code. This will help administrators of several sites to centralize code upgrades and &#039;&#039;technical problems&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ideas&#039;&#039;&#039;&lt;br /&gt;
* config.php will be a proxy that executes the concrete config file depending on the current url.&lt;br /&gt;
* The concrete config file will be under the directory /config and will have an arbitrary name created by the user.&lt;br /&gt;
* Create an XML file with all the pairs URL(n)-ConfigFile(1).&lt;br /&gt;
* Every time this file changes, it should be created the config.php file cache (to speed up things).&lt;br /&gt;
* Develop a Web frontend to change this file, that can be just accessed by the super admin in every site.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Join the [http://moodle.org/mod/forum/discuss.php?d=92860 discussion thread]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Automatic Accesibility Checking ==&lt;br /&gt;
The objective of this project is to make a tool that can check Moodle´s accesibility automatically before realising a version.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ideas&#039;&#039;&#039;&lt;br /&gt;
* Automatic Tool (see down)&lt;br /&gt;
* Create an example course which introduces every XHTML code of the Moodle application, in order to have a way to test it.&lt;br /&gt;
* Create a button called &amp;quot;Check XHTML&amp;quot; which will send the current page code to a validator.&lt;br /&gt;
** This button just helps to check if the current page is valid. Good for development purposes.&lt;br /&gt;
** This button will be (de)activated in the administration panel&lt;br /&gt;
** Keep in mind that this button will not pass the URL as a referer, but it will take all the code from the page and send it to the validation service&lt;br /&gt;
** This button can be used in other web applications&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automatic Tool&#039;&#039;&#039;&lt;br /&gt;
* Create (or use an existing one) an automatic and easy to use tool that retrieves all the pages in a site until a concrete level (recursive calling it for each link)&lt;br /&gt;
** Use concrete user agent names&lt;br /&gt;
** Be able to store cookies in order to check it with a concrete user and password&lt;br /&gt;
* Plug each output to an automatic XHTML validator&lt;br /&gt;
** In the future we can plug in different validators: CSS, WCAG (what it can be checkable automaticly), etc.&lt;br /&gt;
* Generate stats&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Join the [http://moodle.org/mod/forum/discuss.php?d=92861 discussion thread]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Moodle Usability Guidelines ==&lt;br /&gt;
The main objective of this project is to develop a usability guidelines and testing methods in order to have a real view of Moodle usage.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Main tasks&#039;&#039;&#039;&lt;br /&gt;
* Research in the usability world to see which methods are most used and which are most reliable.&lt;br /&gt;
* Select the ones that are more appropiate for Moodle&lt;br /&gt;
* Create a usability guideline with the way to apply these methods for Moodle&lt;br /&gt;
* Try them with real world people (optional, although it would be very interesting)&lt;br /&gt;
* Analyse the results in order to extract conclusions of the current Moodle Usage&lt;br /&gt;
* Report the ways we could improve current Moodle Usability&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Join the [http://moodle.org/mod/forum/discuss.php?d=92862 discussion thread]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Moodle Target tracking + rewards/gifts==&lt;br /&gt;
This one would suit a facebook enthusiast! The Facebook gifts system is very popular and an ideal motivator for students at school level. Moodle needs an equivalent.&lt;br /&gt;
&lt;br /&gt;
The aim is to develop a system for setting targets e.g. &#039;get at least 60% in this assignment/quiz/whatever&#039; and for reward credits to be awarded automatically when it is completed. These reward credits translate to a system of Gifts similar to facebook ones (small images, akin to stickers, which can be bought for a small fee and sent to friends who then display them on their profile). Admins can control what the reward images are for their site, maybe having them in some sort of rank order of value, or having different ones with different meanings. There are several ways they could be implemented beyond that:&lt;br /&gt;
* Teachers could choose which rewards can be earned for a specific task. For example, there may be different rewards for forums and assignments&lt;br /&gt;
* Teachers may want to specify different rewards for different levels of performance on the same task&lt;br /&gt;
* Teachers decide how many points a certain target is worth and the students cash in those points for rewards of various values&lt;br /&gt;
* Teachers decide how many rewards a target is worth and students choose that many rewards. None are worth more than 1 point each, the only difference is the graphic.&lt;br /&gt;
Once students have rewards, they need a way of allocating them (presumably permanently) to their friends. A system for logically displaying them on the friend&#039;s profile page would be needed too and will need to take into account&lt;br /&gt;
* Students with only a few stickers given to them by friends will want them to maximise their display&lt;br /&gt;
* Students who are very popular with hundreds of stickers may need to groups of 10 similar ones substituted for a super-sticker to use less space&lt;br /&gt;
* Hovering over the sticker should give details of who awarded it and when and possibly a short message.&lt;br /&gt;
Additionally, the social rating/ranking that this achieves will have most effect when it is publicly visible in various places e.g. under forum avatars and maybe in the online users block as well as the user profile. &lt;br /&gt;
&lt;br /&gt;
Maybe this would sit well with the &#039;Friends&#039; part of last years GSOC social networking project if it were finished.&lt;br /&gt;
&lt;br /&gt;
I can&#039;t offer to mentor in coding terms, but will help with ideas all I can. [[User:Matt Gibson|Matt Gibson]] 05:26, 4 March 2008 (CST)&lt;br /&gt;
&lt;br /&gt;
==Use of Video Material Effectively within Moodle==&lt;br /&gt;
The main purpose of this module will be to get use of video content, most probably a lecture, in a more fomal/controled/affective way within moodle.&lt;br /&gt;
&lt;br /&gt;
The main features of this module will be;&lt;br /&gt;
* Stream the video file (most probably in flv format)&lt;br /&gt;
** Should be able to stream by using multiple ways (e.x. FMS, Red5, lighttpd, etc..)&lt;br /&gt;
** Develop a fronted to configure the streaming server settings&lt;br /&gt;
** automatic media conversion (controlled by other moodle settings like max file size, etc..)&lt;br /&gt;
* The teacher can give related notes, websites or other resources with the video&lt;br /&gt;
* The students can keep a note related to each video&lt;br /&gt;
* Share/view other student&#039;s notes (probably controlled by the teachers and/or students)&lt;br /&gt;
* Optionally asses the student notes and include them in the grade book &lt;br /&gt;
&lt;br /&gt;
The above list may expanded based on your views.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty Level:&#039;&#039;&#039; Easy/Medium&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skills Required:&#039;&#039;&#039;&lt;br /&gt;
* Familiarity with Streaming Servers like Red5 and video streaming in general.&lt;br /&gt;
* Should be able to install and configure required products (Moodle, Red5, lighttpd, etc..) in any OS (Windows, Linux, Mac, etc..)&lt;br /&gt;
* Understanding of UI design concepts.&lt;br /&gt;
* Familiarity with Moodle APIs and [[Developer_documentation |Developing Moodle in general]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;References&#039;&#039;&#039;&lt;br /&gt;
* [http://moodle.org/mod/data/view.php?rid=931&amp;amp;page=102 FlashVideo]&lt;br /&gt;
* [http://osflash.org/red5 RED5 Open Source Streaming Server]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential Mentor:&#039;&#039;&#039; [http://moodle.org/user/edit.php?id=68520 Rashan Anushka]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Web-based upgrade and plugins interface==&lt;br /&gt;
A system for Moodle to be upgraded along with its plugins from within the admin interface.&lt;br /&gt;
&lt;br /&gt;
Currently, adding third party modules/patches can be messy and can especially slow down the upgrade process if CVS is not used. The aim would be to develop a way to package plugins in a standardised way so that a single zip file could be retrieved and installed automatically, similar to the way courses are restored. An added feature would be for the modules and plugins database on moodle.org to have an XML index so that you could browse available plugins from within your own moodle instance and have a one-click install option. Version compatibility info could be included so that only those which will work with your install will be shown. At upgrade time, the new third-party components screen could then show which ones could be upgraded along with the rest of the code and which would need to dropped because there is no compatible replacement.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[GSOC]], including a list of GSOC projects from 2006 and 2007&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=92797 this forum thread] about work that might be done this summer, although as part of something other than GSOC.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Project]]&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Projects_for_new_developers&amp;diff=33738</id>
		<title>Projects for new developers</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Projects_for_new_developers&amp;diff=33738"/>
		<updated>2008-03-18T10:02:05Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists possible student projects in Moodle, in particular suggestions for GSOC 2008 projects.&lt;br /&gt;
__NOTOC__&lt;br /&gt;
==To do this week (17th - 24th March 2008)==&lt;br /&gt;
&lt;br /&gt;
*Would-be GSOC student participants please discuss your application ideas in the [http://moodle.org/mod/forum/view.php?id=7105 Moodle.org Student projects forum]. &#039;&#039;You&#039;re welcome to suggest ideas for projects too!&#039;&#039;&lt;br /&gt;
*Moodlers willing to mentor a GSOC project, please add your name to a project on this page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Secure RSS feeds ==&lt;br /&gt;
&lt;br /&gt;
Currently RSS is less than useful because:&lt;br /&gt;
* Either we can&#039;t publish private information to the outside world because it&#039;s too sensitive.&lt;br /&gt;
* We open up sensitive information to the outside world&lt;br /&gt;
&lt;br /&gt;
We should add codes to make the RSS URLs practically impossible to guess, much the same way as Google Calendar does it.&lt;br /&gt;
&lt;br /&gt;
* Overhaul all the RSS feeds in Moodle to make use of a long hash-like string in the URL for identification (Forums, Data etc).&lt;br /&gt;
* Store these codes in a new field per-user and per-course.   &lt;br /&gt;
* Add GUIs to let the user recreate their code to something else should they suspect a breach.&lt;br /&gt;
* Add RSS to other areas of Moodle such as the participants &amp;quot;last logins&amp;quot; and the activity logs.&lt;br /&gt;
* Explore/research other methods of opening up RSS in a safe way to the outside world.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Old Specification:&#039;&#039;&#039; [[Student projects/Secure RSS feeds|Secure RSS feeds]]&lt;br /&gt;
&lt;br /&gt;
== Roles interface improvements ==&lt;br /&gt;
&lt;br /&gt;
Improve the roles editing interface by making it more dynamic and flexible.  You can use the YUI library for ajax if you like, but there must be a good fall-back interface too.   Some ideas include:&lt;br /&gt;
&lt;br /&gt;
* Improve the order of the capabilities and implement better grouping.&lt;br /&gt;
* Make the groups of capabilities collapsible to make it easier to &amp;quot;zoom in&amp;quot; to a particular section.&lt;br /&gt;
* Add floating tooltip help when you hover over any given capability.&lt;br /&gt;
* Experiment with an (alternate) interface seeing the roles all side-by-side for easier comparison/editing.&lt;br /&gt;
* Implement a roles backup and restore system to allow site administrators to distribute useful roles in the moodle comunity (rather than having to describe the permissions setup)&lt;br /&gt;
* Analyse the problem carefully with feedback from the community for more ideas.&lt;br /&gt;
&lt;br /&gt;
==Integration with bibliographic systems such as Wikindx==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Design and construct an integration with Wikindx (or other open-source bibliographic tools, if appropriate).&lt;br /&gt;
&lt;br /&gt;
Teachers should be able to easily refer to wikindx bibliography items throughout a Moodle course, and be able to:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
** Possibly, allow some kind of direct searching of a wikindx database from within Moodle, so as to make it easier to refer to items&lt;br /&gt;
* Generate reading lists / bibliographies&lt;br /&gt;
* Allow export of the above into common machine-readable formats such as Bibtex or RIS. (Wikindx can perform this so again it&#039;s a question of hooking into, or expanding, wikindx functionality.)&lt;br /&gt;
&lt;br /&gt;
See also [[Development:Wikindx]] and [http://moodle.org/mod/forum/discuss.php?d=23022 this forum discussion] too&lt;br /&gt;
&lt;br /&gt;
==Implement CATs in Moodle==&lt;br /&gt;
&lt;br /&gt;
[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&#039;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. &lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
# Make Moodle an even better teaching tool.&lt;br /&gt;
# Provide some good exemplars of how to do interesting things with database templates.&lt;br /&gt;
# Possibly highlight limitations in the database template system, that would require improvements to the database module code to overcome.&lt;br /&gt;
# One of the outcomes of this project could be some really good &#039;How to write a database template&#039; tutorial, which would be very valuable to the community.&lt;br /&gt;
&lt;br /&gt;
This is my (Tim Hunt&#039;s) idea, but I would not be interested in mentoring it. It would need to be someone who knows all about the database module.&lt;br /&gt;
&lt;br /&gt;
== Blog Assignment Type ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is it for?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blogs are inherently user owned and driven by definition, however teachers would like to have a way to use blogs as assignments in their courses, comment, grade, etc.&lt;br /&gt;
&lt;br /&gt;
A solution to this conundrum would be a new Assignment type that makes it possible for a student to easily submit the link one of their blogs to an assignment in a course, and have that blog entry privately graded and commented on by the instructor of that course. The blog entry itself remains public along with all of the student&#039;s other blogs. The tool would provide a time filter in the Assignment, so that the instructor could limit the blog entry posting dates that will be accepted (both to ensure &#039;fresh&#039; entries and to keep the list of entries the student chooses short for frequent student bloggers).&lt;br /&gt;
&lt;br /&gt;
I suggest a blog assignment type that functions as follows:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teacher:&#039;&#039;&#039;&lt;br /&gt;
Teacher creates a blog assignment, this puts a grade in the gradebook and provides an assignment link for students to see.&lt;br /&gt;
&lt;br /&gt;
The teacher can configure options to allow a blog entry posted in the last X days to be used for the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Students:&#039;&#039;&#039;&lt;br /&gt;
When students enter the assignment they see a drop down menu of all their current (blog entries posted in the last X days as chosen by the teacher) blog entries, and they choose one to satisfy the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assessment:&#039;&#039;&#039;&lt;br /&gt;
The teacher goes in to the Assignment, views the blogs that are linked from the assignment, leaves comments (the comments only show up to the student when they view the blog assignment), and gives a grade.&lt;br /&gt;
&lt;br /&gt;
The blog entries themselves stay on the student&#039;s blog, only the grades, links, and comments go in the assignment (optionally the assignment scrapes the student&#039;s blog and loads the full text in to store for backup and restore).&lt;br /&gt;
&lt;br /&gt;
== Moodle IDE ==&lt;br /&gt;
The objective of this project is to create a Moodle IDE based on Eclipse so that new developers can get to develop Moodle in less time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ideas&#039;&#039;&#039;&lt;br /&gt;
* First release: Eclipse + Plugins + Moodle splashscreen + CVS Configuration + Apache + MySQL + Moodle CVS code. All preconfigured and ready out of the box.&lt;br /&gt;
* Every X time, it checks for new versions of Moodle and packs it.&lt;br /&gt;
* Checkstyle plugin alike fo follow Moodle Design Guidelines.&lt;br /&gt;
* Development help (can be wiki pages to navigate offline)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;More mentors needed&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download (Old Version)&#039;&#039;&#039;: [http://mirrors.davidhorat.com/moodle/MoodleIDE-latest.zip MoodleIDE-latest]&lt;br /&gt;
&lt;br /&gt;
== Moodle Multisite ==&lt;br /&gt;
The objective of this project is to make Moodle able to manage several Moodle sites with just one source code. This will help administrators of several sites to centralize code upgrades and &#039;&#039;technical problems&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ideas&#039;&#039;&#039;&lt;br /&gt;
* config.php will be a proxy that executes the concrete config file depending on the current url.&lt;br /&gt;
* The concrete config file will be under the directory /config and will have an arbitrary name created by the user.&lt;br /&gt;
* Create an XML file with all the pairs URL(n)-ConfigFile(1).&lt;br /&gt;
* Every time this file changes, it should be created the config.php file cache (to speed up things).&lt;br /&gt;
* Develop a Web frontend to change this file, that can be just accessed by the super admin in every site.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
== Automatic Accesibility Checking ==&lt;br /&gt;
The objective of this project is to make a tool that can check Moodle´s accesibility automatically before realising a version.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ideas&#039;&#039;&#039;&lt;br /&gt;
* Automatic Tool (see down)&lt;br /&gt;
* Create an example course which introduces every XHTML code of the Moodle application, in order to have a way to test it.&lt;br /&gt;
* Create a button called &amp;quot;Check XHTML&amp;quot; which will send the current page code to a validator.&lt;br /&gt;
** This button just helps to check if the current page is valid. Good for development purposes.&lt;br /&gt;
** This button will be (de)activated in the administration panel&lt;br /&gt;
** Keep in mind that this button will not pass the URL as a referer, but it will take all the code from the page and send it to the validation service&lt;br /&gt;
** This button can be used in other web applications&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automatic Tool&#039;&#039;&#039;&lt;br /&gt;
* Create (or use an existing one) an automatic and easy to use tool that retrieves all the pages in a site until a concrete level (recursive calling it for each link)&lt;br /&gt;
** Use concrete user agent names&lt;br /&gt;
** Be able to store cookies in order to check it with a concrete user and password&lt;br /&gt;
* Plug each output to an automatic XHTML validator&lt;br /&gt;
** In the future we can plug in different validators: CSS, WCAG (what it can be checkable automaticly), etc.&lt;br /&gt;
* Generate stats&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
== Moodle Usability Guidelines ==&lt;br /&gt;
The main objective of this project is to develop a usability guidelines and testing methods in order to have a real view of Moodle usage.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Main tasks&#039;&#039;&#039;&lt;br /&gt;
* Research in the usability world to see which methods are most used and which are most reliable.&lt;br /&gt;
* Select the ones that are more appropiate for Moodle&lt;br /&gt;
* Create a usability guideline with the way to apply these methods for Moodle&lt;br /&gt;
* Try them with real world people (optional, although it would be very interesting)&lt;br /&gt;
* Analyse the results in order to extract conclusions of the current Moodle Usage&lt;br /&gt;
* Report the ways we could improve current Moodle Usability&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
==Moodle Target tracking + rewards/gifts==&lt;br /&gt;
This one would suit a facebook enthusiast! The Facebook gifts system is very popular and an ideal motivator for students at school level. Moodle needs an equivalent.&lt;br /&gt;
&lt;br /&gt;
The aim is to develop a system for setting targets e.g. &#039;get at least 60% in this assignment/quiz/whatever&#039; and for reward credits to be awarded automatically when it is completed. These reward credits translate to a system of Gifts similar to facebook ones (small images, akin to stickers, which can be bought for a small fee and sent to friends who then display them on their profile). Admins can control what the reward images are for their site, maybe having them in some sort of rank order of value, or having different ones with different meanings. There are several ways they could be implemented beyond that:&lt;br /&gt;
* Teachers could choose which rewards can be earned for a specific task. For example, there may be different rewards for forums and assignments&lt;br /&gt;
* Teachers may want to specify different rewards for different levels of performance on the same task&lt;br /&gt;
* Teachers decide how many points a certain target is worth and the students cash in those points for rewards of various values&lt;br /&gt;
* Teachers decide how many rewards a target is worth and students choose that many rewards. None are worth more than 1 point each, the only difference is the graphic.&lt;br /&gt;
Once students have rewards, they need a way of allocating them (presumably permanently) to their friends. A system for logically displaying them on the friend&#039;s profile page would be needed too and will need to take into account&lt;br /&gt;
* Students with only a few stickers given to them by friends will want them to maximise their display&lt;br /&gt;
* Students who are very popular with hundreds of stickers may need to groups of 10 similar ones substituted for a super-sticker to use less space&lt;br /&gt;
* Hovering over the sticker should give details of who awarded it and when and possibly a short message.&lt;br /&gt;
Additionally, the social rating/ranking that this achieves will have most effect when it is publicly visible in various places e.g. under forum avatars and maybe in the online users block as well as the user profile. &lt;br /&gt;
&lt;br /&gt;
Maybe this would sit well with the &#039;Friends&#039; part of last years GSOC social networking project if it were finished.&lt;br /&gt;
&lt;br /&gt;
I can&#039;t offer to mentor in coding terms, but will help with ideas all I can. [[User:Matt Gibson|Matt Gibson]] 05:26, 4 March 2008 (CST)&lt;br /&gt;
&lt;br /&gt;
==Use of Video Material Effectively within Moodle==&lt;br /&gt;
The main purpose of this module will be to get use of video content, most probably a lecture, in a more fomal/controled/affective way within moodle.&lt;br /&gt;
&lt;br /&gt;
The main features of this module will be;&lt;br /&gt;
* Stream the video file (most probably in flv format)&lt;br /&gt;
** Should be able to stream by using multiple ways (e.x. FMS, Red5, lighttpd, etc..)&lt;br /&gt;
** Develop a fronted to configure the streaming server settings&lt;br /&gt;
** automatic media conversion (controlled by other moodle settings like max file size, etc..)&lt;br /&gt;
* The teacher can give related notes, websites or other resources with the video&lt;br /&gt;
* The students can keep a note related to each video&lt;br /&gt;
* Share/view other student&#039;s notes (probably controlled by the teachers and/or students)&lt;br /&gt;
* Optionally asses the student notes and include them in the grade book &lt;br /&gt;
&lt;br /&gt;
The above list may expanded based on your views.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Difficulty Level:&#039;&#039;&#039; Easy/Medium&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Skills Required:&#039;&#039;&#039;&lt;br /&gt;
* Familiarity with Streaming Servers like Red5 and video streaming in general.&lt;br /&gt;
* Should be able to install and configure required products (Moodle, Red5, lighttpd, etc..) in any OS (Windows, Linux, Mac, etc..)&lt;br /&gt;
* Understanding of UI design concepts.&lt;br /&gt;
* Familiarity with Moodle APIs and [[Developer_documentation |Developing Moodle in general]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;References&#039;&#039;&#039;&lt;br /&gt;
* [http://moodle.org/mod/data/view.php?rid=931&amp;amp;page=102 FlashVideo]&lt;br /&gt;
* [http://osflash.org/red5 RED5 Open Source Streaming Server]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential Mentor:&#039;&#039;&#039; [http://moodle.org/user/edit.php?id=68520 Rashan Anushka]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Web-based upgrade and plugins interface==&lt;br /&gt;
A system for Moodle to be upgraded along with its plugins from within the admin interface.&lt;br /&gt;
&lt;br /&gt;
Currently, adding third party modules/patches can be messy and can especially slow down the upgrade process if CVS is not used. The aim would be to develop a way to package plugins in a standardised way so that a single zip file could be retrieved and installed automatically, similar to the way courses are restored. An added feature would be for the modules and plugins database on moodle.org to have an XML index so that you could browse available plugins from within your own moodle instance and have a one-click install option. Version compatibility info could be included so that only those which will work with your install will be shown. At upgrade time, the new third-party components screen could then show which ones could be upgraded along with the rest of the code and which would need to dropped because there is no compatible replacement.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[GSOC]], including a list of GSOC projects from 2006 and 2007&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=92797 this forum thread] about work that might be done this summer, although as part of something other than GSOC.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Project]]&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice&amp;diff=33056</id>
		<title>Development:Voice</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice&amp;diff=33056"/>
		<updated>2008-02-28T21:39:38Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Moodle Voice is a project for embedding VoiceXML support into Moodle Core.&lt;br /&gt;
&lt;br /&gt;
== Project Status ==&lt;br /&gt;
* Project stopped.&lt;br /&gt;
* The current voice recognition technology in Opera is not good enough to make the whole Moodle application Voice accesible.&lt;br /&gt;
&lt;br /&gt;
== Current Focus ==&lt;br /&gt;
&lt;br /&gt;
1. Describing the functionality to be made voice enabled within this project.&lt;br /&gt;
&lt;br /&gt;
2. Add an experimental option called &amp;quot;VoiceXML&amp;quot; so only when this variable is checked, VoiceXML code is generated.&lt;br /&gt;
&lt;br /&gt;
3. Create a php lib for VoiceXML to put all functionality of VoiceXML and to be used by the rest of the code.&lt;br /&gt;
&lt;br /&gt;
4. Modify weblib.php and formslib.php intensively to use the VoiceXML lib and output VoiceXML code along with the html code if the VoiceXML variable is set.&lt;br /&gt;
&lt;br /&gt;
5. Create a set of tests for every function and the integration of several functions to assure that the functionality is the expected one.&lt;br /&gt;
&lt;br /&gt;
== Contacts ==&lt;br /&gt;
Student :  [http://mayankjain20.googlepages.com Mayank Jain]&lt;br /&gt;
&lt;br /&gt;
Mentor  :  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
== Suggestions ==&lt;br /&gt;
Please feel free to chip-in with your suggestions.&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice&amp;diff=33055</id>
		<title>Development:Voice</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice&amp;diff=33055"/>
		<updated>2008-02-28T21:39:20Z</updated>

		<summary type="html">&lt;p&gt;David.horat: /* Project Status */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Moodle Voice is a project for embedding VoiceXML support into Moodle Core.&lt;br /&gt;
&lt;br /&gt;
== Project Status ==&lt;br /&gt;
* Project stopped.&lt;br /&gt;
* The current voice recognition technology in Opera is not good enough to make the whole Moodle application Voice accesible.&lt;br /&gt;
&lt;br /&gt;
== Current Focus ==&lt;br /&gt;
&lt;br /&gt;
1. Describing the functionality to be made voice enabled within this project.&lt;br /&gt;
&lt;br /&gt;
2. Add an experimental option called &amp;quot;VoiceXML&amp;quot; so only when this variable is checked, VoiceXML code is generated.&lt;br /&gt;
&lt;br /&gt;
3. Create a php lib for VoiceXML to put all functionality of VoiceXML and to be used by the rest of the code.&lt;br /&gt;
&lt;br /&gt;
4. Modify weblib.php and formslib.php intensively to use the VoiceXML lib and output VoiceXML code along with the html code if the VoiceXML variable is set.&lt;br /&gt;
&lt;br /&gt;
5. Create a set of tests for every function and the integration of several functions to assure that the functionality is the expected one.&lt;br /&gt;
&lt;br /&gt;
== Contacts ==&lt;br /&gt;
Student :  [http://mayankjain20.googlepages.com Mayank Jain]&lt;br /&gt;
&lt;br /&gt;
Mentor  :  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
== Suggestions ==&lt;br /&gt;
Please feel free to chip-in with your suggestions.&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice_ToDo&amp;diff=23694</id>
		<title>Development:Voice ToDo</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice_ToDo&amp;diff=23694"/>
		<updated>2007-05-26T07:57:45Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
&lt;br /&gt;
Here we will put the tasks we need to complete. If no tasks assigned, then keep on with the timeplan.&lt;br /&gt;
&lt;br /&gt;
== ToDo ==&lt;br /&gt;
* Take the HTML output of a page in Moodle and change all its link tags to make it Voice enabled.&lt;br /&gt;
* Take the HTML out of a page with a form in Moodle and change the form to make it Voice enabled.&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice_Changelog&amp;diff=23693</id>
		<title>Development:Voice Changelog</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice_Changelog&amp;diff=23693"/>
		<updated>2007-05-26T07:57:06Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
&lt;br /&gt;
= Moodle Code =&lt;br /&gt;
&lt;br /&gt;
==Lib==&lt;br /&gt;
&lt;br /&gt;
===Voice XML===&lt;br /&gt;
voicexmlenabled(): Returns whether voicexml feature is enabled/allowed or not.&lt;br /&gt;
voicexmllib:anotherfunction(): bla bla bla&lt;br /&gt;
&lt;br /&gt;
===Weblib===&lt;br /&gt;
weblib:yetanotherfunction(): Changed so now it will output&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice_Timelog&amp;diff=23692</id>
		<title>Development:Voice Timelog</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice_Timelog&amp;diff=23692"/>
		<updated>2007-05-26T07:56:53Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
&lt;br /&gt;
== May 07 ==&lt;br /&gt;
&lt;br /&gt;
=== 25/05/07 ===&lt;br /&gt;
&lt;br /&gt;
- I analysed the weblib functions to see how can I change them to fit the Voice XML function calls.&lt;br /&gt;
&lt;br /&gt;
- I changed the function X of fle Y to make it interact with Z.&lt;br /&gt;
&lt;br /&gt;
=== 24/05/07 ===&lt;br /&gt;
&lt;br /&gt;
- ...&lt;br /&gt;
&lt;br /&gt;
- ...&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice_Timelog&amp;diff=23691</id>
		<title>Development:Voice Timelog</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice_Timelog&amp;diff=23691"/>
		<updated>2007-05-26T07:56:02Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
&lt;br /&gt;
25/05/07&lt;br /&gt;
- I analysed the weblib functions to see how can I change them to fit the Voice XML function calls.&lt;br /&gt;
- I changed the function X of fle Y to make it interact with Z.&lt;br /&gt;
&lt;br /&gt;
24/05/07&lt;br /&gt;
...&lt;br /&gt;
...&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice_Timelog&amp;diff=23690</id>
		<title>Development:Voice Timelog</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice_Timelog&amp;diff=23690"/>
		<updated>2007-05-26T07:55:28Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;25/05/07&lt;br /&gt;
- I analysed the weblib functions to see how can I change them to fit the Voice XML function calls.&lt;br /&gt;
- I changed the function X of fle Y to make it interact with Z.&lt;br /&gt;
&lt;br /&gt;
24/05/07&lt;br /&gt;
...&lt;br /&gt;
...&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice_Changelog&amp;diff=23689</id>
		<title>Development:Voice Changelog</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice_Changelog&amp;diff=23689"/>
		<updated>2007-05-26T07:53:56Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Moodle Code =&lt;br /&gt;
&lt;br /&gt;
==Lib==&lt;br /&gt;
&lt;br /&gt;
===Voice XML===&lt;br /&gt;
voicexmlenabled(): Returns whether voicexml feature is enabled/allowed or not.&lt;br /&gt;
voicexmllib:anotherfunction(): bla bla bla&lt;br /&gt;
&lt;br /&gt;
===Weblib===&lt;br /&gt;
weblib:yetanotherfunction(): Changed so now it will output&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice&amp;diff=23688</id>
		<title>Development:Voice</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice&amp;diff=23688"/>
		<updated>2007-05-26T07:49:55Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Moodle Voice is a project for embedding VoiceXML support into Moodle Core.&lt;br /&gt;
&lt;br /&gt;
== Project Status ==&lt;br /&gt;
Analysis and Requirement Extraction Phase&lt;br /&gt;
&lt;br /&gt;
== Current Focus ==&lt;br /&gt;
&lt;br /&gt;
1. Describing the functionality to be made voice enabled within this project.&lt;br /&gt;
&lt;br /&gt;
2. Add and experimental option called &amp;quot;VoiceXML&amp;quot; so only when this variable is checked, VoiceXML code is generated.&lt;br /&gt;
&lt;br /&gt;
3. Create a php lib for VoiceXML to put all functionality of VoiceXML and to be used by the rest of the code.&lt;br /&gt;
&lt;br /&gt;
4. Modify weblib.php and formslib.php intensively to use the VoiceXML lib and output VoiceXML code along with the html code if the VoiceXML variable is set.&lt;br /&gt;
&lt;br /&gt;
5. Create a set of tests for every function and the integration of several functions to assure that the functionlity is the expected one.&lt;br /&gt;
&lt;br /&gt;
== Contacts ==&lt;br /&gt;
Student :  [http://mayankjain20.googlepages.com Mayank Jain]&lt;br /&gt;
&lt;br /&gt;
Mentor  :  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
== Suggestions ==&lt;br /&gt;
Please feel free to chip-in with your suggestions.&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Tasks_completed&amp;diff=23687</id>
		<title>Development:Tasks completed</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Tasks_completed&amp;diff=23687"/>
		<updated>2007-05-26T07:49:19Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Tasks Completed =&lt;br /&gt;
&lt;br /&gt;
== Initial Setup ==&lt;br /&gt;
1. Read All Coding guidelines.&lt;br /&gt;
&lt;br /&gt;
2. Read through the Moodle Developer Information&lt;br /&gt;
&lt;br /&gt;
3. Setup of the php-eclipse environment done.&lt;br /&gt;
&lt;br /&gt;
4. Downloaded and installed moodle code from CVS&lt;br /&gt;
   Repository used : eu.cvs.moodle.org&lt;br /&gt;
5. Setup of Opera done&lt;br /&gt;
   Tested and Learnt opera browser voice support commands(opera 9.01)&lt;br /&gt;
&lt;br /&gt;
6. Read Understood and Tested all Voice Examples on [http://dev.opera.com/articles/voice/ Opera Website] &lt;br /&gt;
&lt;br /&gt;
7. Read on voicexml intricacies - needed to analyse moodle output to identify what could be converted and what not.&lt;br /&gt;
&lt;br /&gt;
8. Added an experimental option called &amp;quot;VoiceXML&amp;quot; so only when this variable is checked, VoiceXML code is generated. &lt;br /&gt;
&lt;br /&gt;
9. Created a php lib for VoiceXML to put all functionality of VoiceXML and to be used by the rest of the code (lib/voicexml/voicexmllib.php).&lt;br /&gt;
&lt;br /&gt;
10. Created a unit test for voicexmllib to test all functionality in voicexmllib.php in (lib/simpletest/testvoicexmllib.php).&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice_VoiceXML_Examples&amp;diff=23686</id>
		<title>Development:Voice VoiceXML Examples</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice_VoiceXML_Examples&amp;diff=23686"/>
		<updated>2007-05-26T07:47:53Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Preparation ==&lt;br /&gt;
[http://www.opera.com/products/desktop/voice/ Download and install Opera in English with Voice Support]&lt;br /&gt;
&lt;br /&gt;
{{Voice}}&lt;br /&gt;
{{Moodle 1.9}}&lt;br /&gt;
== Examples ==&lt;br /&gt;
# [http://devfiles.myopera.com/articles/74/helloworld.xml Hello World!]: In this example, the browser will just say &amp;quot;Hello world&amp;quot;.&lt;br /&gt;
# [http://devfiles.myopera.com/articles/39/colorpicker.xml Color picker]: In this example, the browser will say: &amp;quot;Hello. Voice is installed.&amp;quot; Then you can clik on the button &amp;quot;Change colour now&amp;quot; and says in loud voice one of the colours of the box: Red | Pink | Purple | Blue | Green | Maroon | Orange ...&lt;br /&gt;
# [http://devfiles.myopera.com/articles/39/opera2go.xml Best browser]: In this example, the browser will ask: &amp;quot;What is the name of the best browser?&amp;quot;. If you say Opera, it will redirect you to the Opera webpage &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.opera.com/features/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. In other cases, it will say &amp;quot;Try again.&amp;quot;&lt;br /&gt;
# [http://dev.opera.com/articles/view/temporary-x-v-by-example/ More examples]: In this article, you can see several examples of how Voice works. I suggest looking at the one named &amp;quot;I don&#039;t understand what you are saying, but I can pretend to&amp;quot; in which you see the potential of the grammars used.&lt;br /&gt;
# [http://dev.opera.com/articles/view/add-voice-interactivity-to-your-site/ Tutorial: How to add voice interactivity to your site]: In this tutorial you will find all the basic information about how to add VoiceXML to your site without having to change too much of the code. The idea is having just one output that can be recognized by both VoiceXML browsers, such as Opera, and other standard browsers, such as Internet Explorer and Mozilla Firefox. Firefox and Konqueror are already planning to implement VoiceXML.&lt;br /&gt;
# [http://www.robodesign.ro/coding/how-to-add-voice/site/ Site example]: Here you can see a normal site with embedded VoiceXML that works in Internet Explorer, Firefox and Opera (and more). Of course, the only one which support Voice is Opera, so you will only hear in this last one.&lt;br /&gt;
# [http://www.uwplatt.edu/auralCSS/pizza.xml Pizza Order Form]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [http://dev.opera.com/articles/voice/ Opera Developer Community: Voice Articles]&lt;br /&gt;
* [http://jamiep.org/voicexml/ Basic Examples from Jamie Pratt]&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice_Project&amp;diff=23164</id>
		<title>Development:Voice Project</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice_Project&amp;diff=23164"/>
		<updated>2007-05-09T21:27:17Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
== Objective ==&lt;br /&gt;
Adapt Moodle interface to output the needed VoiceXML so you can navigate with your voice with a VoiceXML enabled browser, such as Opera.&lt;br /&gt;
&lt;br /&gt;
== Benefits ==&lt;br /&gt;
Moodle is a free software e-learning platform which is designed to help educators create online courses with rich multimedia content. Making Moodle voice enabled will help disabled people, specially blind and motor disabled, to interact with this great e-Learning tool. Not only that, but also this gives another input interface which can be used to interact faster with the application.&lt;br /&gt;
&lt;br /&gt;
== Timeplan ==&lt;br /&gt;
* Analysis (2 weeks : May 28th - June 10th)&lt;br /&gt;
** Study W3C VoiceXML 2.0&lt;br /&gt;
** Extract requirements: study Moodle output and code to choose what to make voice enabled&lt;br /&gt;
** Begin project webpage, documentation and logs&lt;br /&gt;
* Design (1 weeks : June 11 th - June 17th)&lt;br /&gt;
** Make an Architectural Design&lt;br /&gt;
** Make an Implementation Proposal&lt;br /&gt;
* Implementation (8 weeks : June 18th - August 5th)&lt;br /&gt;
** Milestone X (each 2 weeks) &lt;br /&gt;
* Documentation (2 weeks : August 20th - August 31th)&lt;br /&gt;
** Developer documentation&lt;br /&gt;
** Moodle administrator documentation&lt;br /&gt;
** Future roadmap and design plans&lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
Due to the large Moodle code, the scope of what to make voice enabled will be decided in the Analysis phase, although it will be at least all navigational stuff, such as course selection, profile configuration and resource selection.&lt;br /&gt;
&lt;br /&gt;
== State of the Art of VoiceXML ==&lt;br /&gt;
VoiceXML is a well known technology that has been used and supported by IVR several years. Now it has finally come to our desktop. Currently, this technology is only supported by [http://dev.opera.com/articles/voice/ Opera] in the standard browsers field, but since it is a [http://www.w3.org/TR/voicexml20/ 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 [http://wiki.mozilla.org/Firefox:2.0_Accessibility Firefox] and [http://www.qsos.org/sheets/webbrowser/konqueror/konqueror-3.5.5.html Konqueror]. Some examples of this technology can be found at: &lt;br /&gt;
* http://dev.opera.com/articles/view/add-voice-interactivity-to-your-site/&lt;br /&gt;
* http://dev.opera.com/articles/view/temporary-x-v-by-example/&lt;br /&gt;
* http://dev.opera.com/articles/view/xhtml-voice-in-action/&lt;br /&gt;
&lt;br /&gt;
== Architecture Description ==&lt;br /&gt;
# We have the option of using [http://moodle.org/mod/forum/discuss.php?d=31895 Customized Scripts] so we will [https://docs.moodle.org/en/Developer_Overview_of_MFM_Code not interfere with normal Moodle development]. On the other hand, we can directly merge it in the current CVS.&lt;br /&gt;
# Our code will detect whether the user browser is VoiceXML enabled or not and send the corresponding code&lt;br /&gt;
# In the &amp;quot;future roadmap&amp;quot; it will be included how to embed the code in Moodle core (in case it isnt) and make a Moodle configuration option to activate voice features. (It can be done in the project if we have enough time)&lt;br /&gt;
&lt;br /&gt;
== Related Work ==&lt;br /&gt;
* [https://docs.moodle.org/en/Moodle_for_Mobiles Moodle for Mobiles] [http://moodle.cvs.sourceforge.net/moodle/contrib/patches/mobile/ CVS]&lt;br /&gt;
** Outputs [http://www.w3.org/TR/1998/NOTE-compactHTML-19980209/ Compact HTML], uses [http://moodle.org/mod/forum/discuss.php?d=31895 Customized Scripts]&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Projects_for_new_developers&amp;diff=22961</id>
		<title>Projects for new developers</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Projects_for_new_developers&amp;diff=22961"/>
		<updated>2007-04-30T16:08:07Z</updated>

		<summary type="html">&lt;p&gt;David.horat: /* Moodle IDE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page currently lists the projects available Moodle&#039;s participation in the [http://code.google.com/soc Google Summer of Code 2007].   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.&lt;br /&gt;
&lt;br /&gt;
Current status:  Thank you to all the applicants!   Google have now confirmed the final selections and we have ten projects with a mentor and a student.  Here is a [http://moodle.org/mod/forum/discuss.php?d=69206 general discussion about the project].  Complete details are below.&lt;br /&gt;
&lt;br /&gt;
==Google Summer of Code 2007 Timeline==&lt;br /&gt;
* &#039;&#039;&#039;Starting now&#039;&#039;&#039;: construct detailed specifications for each project (see below), with feedback from the mentor and the Moodle community.  Some questions will be easy for your mentor to answer directly, but some you may have to post in the appropriate [http://moodle.org/course/view.php?id=5 Using Moodle] forums to gather and evaluate community feedback.&lt;br /&gt;
* &#039;&#039;&#039;May 31&#039;&#039;&#039;: Coding officially starts.  At this time you should have a bug in the [http://tracker.moodle.org Moodle Tracker] that breaks your project down into subtasks.  Please keep this tracker up to date with all your subsequent work - it&#039;s the best place for all asynchronous discussion with your mentor.&lt;br /&gt;
* &#039;&#039;&#039;July 9-16&#039;&#039;&#039;: Interim evaluation of code so far&lt;br /&gt;
* &#039;&#039;&#039;August 20&#039;&#039;&#039;: Coding should be completed &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Google Summer of Code 2007 Projects==&lt;br /&gt;
&lt;br /&gt;
The following projects are in no particular order!&lt;br /&gt;
&lt;br /&gt;
===Developing new question types for the quiz===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* Drag and drop versions of ordering and matching question types.&lt;br /&gt;
* Place a marker or draw a line on an image question types.&lt;br /&gt;
* Drag the missing words into the sentence/onto an image question type.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Tim Hunt&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Adriane Boyd&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/New question types|New question types]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Enterprise-level improvements===&lt;br /&gt;
&lt;br /&gt;
Here are a few things you could do to help Moodle run in a heavy environment (either big Moodles or many multiple Moodles).&lt;br /&gt;
&lt;br /&gt;
* Adapt all the DB installation and upgrade scripts to run from the command line, so fully scripted installations are possible without using the web interface.&lt;br /&gt;
&lt;br /&gt;
* Develop a profiling system for developers to use when testing their code.  Aim to spot and fix performance bottlenecks in Moodle with good reports and suggestions about what developers could do.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Penny Leach&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Dilan Anuruddha Karanachcharighe&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Enterprise-level improvements|Enterprise-level improvements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Chat revamp===&lt;br /&gt;
&lt;br /&gt;
mod/chat needs a bit of an overhaul. Possible interesting approaches:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Integrate Moodle with a Jabber backend, plus frontend glue. &lt;br /&gt;
** On the backend, we need to consider authentication, chatroom creation, and logging. &lt;br /&gt;
** On the frontend, ensuring that we can get Jabber clients started reliably on the end-user&#039;s machine, and  integrate a preexisting web-based Jabber client for Jabber-impaired users.&lt;br /&gt;
** Installation matter: a clear install HowTo for the Jabber + Moodle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [[User:Geoff Cant|Geoff Cant]], Martin Langhoff&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Thotage Piyasena&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Chat revamp|Chat revamp]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Messaging improvements===&lt;br /&gt;
&lt;br /&gt;
The Moodle messaging system in Moodle is a bit clunky and could use improvements to make it slicker and more efficient as a tool for messaging people within the Moodle environment.&lt;br /&gt;
&lt;br /&gt;
Functionality improvements:&lt;br /&gt;
* Add a messaging API class to the core of Moodle which all modules will start using for sending messages (currently they all format their own emails).&lt;br /&gt;
* Add output plugins to messaging so that users can choose exactly how to route their messages, especially when they aren&#039;t online at the time.  Initially the two plugins would be &amp;quot;browser&amp;quot; and &amp;quot;email&amp;quot;, but later there could be a jabber plugin, an IRC plugin etc)&lt;br /&gt;
&lt;br /&gt;
Gui improvements:&lt;br /&gt;
* Improve the main message GUI using AJAX (Moodle includes the YUI library so you&#039;d need to use that)&lt;br /&gt;
* Improve the messaging window to allow chats among three or more other people at once.&lt;br /&gt;
* GUI for the output plugins to allow users to set rules about each plugin independently, and also to select from incoming messages by type, by user or by moodle module.&lt;br /&gt;
* Improve the methods to search messages and find discussions from the past.&lt;br /&gt;
* Improve administrator auditing of message logs, including filtering etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Martin Dougiamas&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Luis Filipe Romão Rodrigues&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Messaging improvements|Messaging improvements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Automated grading for Computer Programming Assignments===&lt;br /&gt;
&lt;br /&gt;
The project here is to develop two things&lt;br /&gt;
&lt;br /&gt;
#A Moodle assignment plugin to handle the GUI and higher-level processes involved in submitting and grading a programming assignment&lt;br /&gt;
#An interface to an external 3rd party program (preferably an established, active open source project) to handle the actual analysis and grading of the source code.  It should have plugins to handle arbitrary languages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [[User:Nicolas Connault]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Arkaitz Garro&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Automated grading of programs|Automated grading of programs]]&lt;br /&gt;
&lt;br /&gt;
=== User Management Improvements ===&lt;br /&gt;
&lt;br /&gt;
* Improve the User features in moodle to allow bulk-operations. &lt;br /&gt;
** Create an interface to do bulk operations on users (e.g. delete users, reset passwords etc) This could potentially use an AJAX implementation for multiple filtering/selection of required students for bulk operations.&lt;br /&gt;
** Overhall the CSV upload features to allow more flexibility (more options, features to auto-generate more fields such as usernames)&lt;br /&gt;
* Enrolment&lt;br /&gt;
** Specify time of manual enrollments ([http://tracker.moodle.org/browse/MDL-8877 MDL-8877])&lt;br /&gt;
* Notes&lt;br /&gt;
** Allow teachers to put notes for each student in every course, much requested feature ([http://tracker.moodle.org/browse/MDL-7077 MDL-7077])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Yu Zhang&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Andrei Bautu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/User Management Improvements|User Management Improvements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Email interface to Moodle ===&lt;br /&gt;
&lt;br /&gt;
The idea is to let people reply naturally to email they receive from Moodle to change settings or add further comments into forums etc.   Moodle activities can then be accessed like a mailing list.&lt;br /&gt;
&lt;br /&gt;
* Add a setting so admins can specify if they want an email interface enabled.  Without it, none of the following is active and Moodle functions just as it does today.&lt;br /&gt;
* Improve the outgoing emails in Moodle to contain a unique and robust code in the headers and potentially also in the subject line (switchable by user setting) that encrypts information about the receiver, the activity instance and the specific data.  For example, all the information to securely identify a forum post.&lt;br /&gt;
* Write a PHP script designed to run from the commandline as part of an email filter, that accepts emails on standard input, parses them and then calls a function in the relevant module.  For example forum_incoming_email() in mod/forum/lib.php.&lt;br /&gt;
* Write function for forum module (at least) to parse the content of the email and add it as a post from the user.   Other modules can be worked on if there&#039;s time ... resources could be sent back as attachments, quizzes could send questions and accept multiple choice answers, the course could send back a listing of activities with further codes for each one, etc.&lt;br /&gt;
* Security is essential!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Martin Langhoff&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Peter Boswood&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Email interface|Email interface]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Secure RSS feeds ===&lt;br /&gt;
&lt;br /&gt;
Currently RSS is less than useful because:&lt;br /&gt;
* Either we can&#039;t publish private information to the outside world because it&#039;s too sensitive.&lt;br /&gt;
* We open up sensitive information to the outside world&lt;br /&gt;
&lt;br /&gt;
We should add codes to make the RSS URLs practically impossible to guess, much the same way as Google Calendar does it.&lt;br /&gt;
&lt;br /&gt;
* Overhaul all the RSS feeds in Moodle to make use of a long hash-like string in the URL for identification (Forums, Data etc).&lt;br /&gt;
* Store these codes in a new field per-user and per-course.   &lt;br /&gt;
* Add GUIs to let the user recreate their code to something else should they suspect a breach.&lt;br /&gt;
* Add RSS to other areas of Moodle such as the participants &amp;quot;last logins&amp;quot; and the activity logs.&lt;br /&gt;
* Explore/research other methods of opening up RSS in a safe way to the outside world.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Petr Škoda&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Udit Sajjanhar&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Secure RSS feeds|Secure RSS feeds]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Social Networking features ===&lt;br /&gt;
&lt;br /&gt;
Explore the possibilities of social networking features by expanding the user profile page:&lt;br /&gt;
&lt;br /&gt;
* add user tags that describe interests etc, as links to &amp;quot;interest pages&amp;quot;  eg constructivism&lt;br /&gt;
* interest pages that contain information about all the people who share that interest, as well as blog entries that use that tag, google searches, other info using standard Moodle blocks etc&lt;br /&gt;
* allow users to add other users as &amp;quot;friends&amp;quot;, which are displayed on their user profile pages&lt;br /&gt;
* think about controls to prevent abuse of these features in a school environment.&lt;br /&gt;
* allow users to specify an external RSS feed to their own external blog, parsing the feed insert entries (optionally selecting by tag) as internal blog entries for that user, adding new tags/permissions as specified, with links back to external entry etc.&lt;br /&gt;
* if time, explore deeper integrations with Youtube, Flickr, MySpace, Facebook etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Martin Dougiamas&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Luiz Eduardo Laydner Cruz&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Social Networking features|Social Networking features]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Moodle Voice===&lt;br /&gt;
&lt;br /&gt;
*Objective: Adapt Moodle interface to output the needed VoiceXML so you can navigate with your voice with a VoiceXML enabled browser, such as [http://www.opera.com/ Opera].&lt;br /&gt;
*[[Development:Voice_Project|Project Proposal]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student&#039;&#039;&#039;: 	Mayank Jain&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification&#039;&#039;&#039;: [[Development:Voice|Development:Voice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Other open projects still looking for students==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Roles interface improvements ===&lt;br /&gt;
&lt;br /&gt;
Improve the roles editing interface by making it more dynamic and flexible.  You can use the YUI library for ajax if you like, but there must be a good fall-back interface too.   Some ideas include:&lt;br /&gt;
&lt;br /&gt;
* Improve the order of the capabilities and implement better grouping.&lt;br /&gt;
* Make the groups of capabilities collapsible to make it easier to &amp;quot;zoom in&amp;quot; to a particular section.&lt;br /&gt;
* Add floating tooltip help when you hover over any given capability.&lt;br /&gt;
* Experiment with an (alternate) interface seeing the roles all side-by-side for easier comparison/editing.&lt;br /&gt;
* Implement a roles backup and restore system to allow site administrators to distribute useful roles in the moodle comunity (rather than having to describe the permissions setup)&lt;br /&gt;
* Analyse the problem carefully with feedback from the community for more ideas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integration with bibliographic systems such as Wikindx===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Design and construct an integration with Wikindx (or other open-source bibliographic tools, if appropriate).&lt;br /&gt;
&lt;br /&gt;
Teachers should be able to easily refer to wikindx bibliography items throughout a Moodle course, and be able to:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
** Possibly, allow some kind of direct searching of a wikindx database from within Moodle, so as to make it easier to refer to items&lt;br /&gt;
* Generate reading lists / bibliographies&lt;br /&gt;
* Allow export of the above into common machine-readable formats such as Bibtex or RIS. (Wikindx can perform this so again it&#039;s a question of hooking into, or expanding, wikindx functionality.)&lt;br /&gt;
&lt;br /&gt;
See also [[Development:Wikindx]] and [http://moodle.org/mod/forum/discuss.php?d=23022 this forum discussion] too&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Implement CATs in Moodle===&lt;br /&gt;
&lt;br /&gt;
[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&#039;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. &lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
# Make Moodle an even better teaching tool.&lt;br /&gt;
# Provide some good exemplars of how to do interesting things with database templates.&lt;br /&gt;
# Possibly highlight limitations in the database template system, that would require improvements to the database module code to overcome.&lt;br /&gt;
# One of the outcomes of this project could be some really good &#039;How to write a database template&#039; tutorial, which would be very valuable to the community.&lt;br /&gt;
&lt;br /&gt;
This is my (Tim Hunt&#039;s) idea, but I would not be interested in mentoring it. It would need to be someone who knows all about the database module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blog Assignment Type ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is it for?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blogs are inherently user owned and driven by definition, however teachers would like to have a way to use blogs as assignments in their courses, comment, grade, etc.&lt;br /&gt;
&lt;br /&gt;
A solution to this conundrum would be a new Assignment type that makes it possible for a student to easily submit the link one of their blogs to an assignment in a course, and have that blog entry privately graded and commented on by the instructor of that course. The blog entry itself remains public along with all of the student&#039;s other blogs. The tool would provide a time filter in the Assignment, so that the instructor could limit the blog entry posting dates that will be accepted (both to ensure &#039;fresh&#039; entries and to keep the list of entries the student chooses short for frequent student bloggers).&lt;br /&gt;
&lt;br /&gt;
I suggest a blog assignment type that functions as follows:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teacher:&#039;&#039;&#039;&lt;br /&gt;
Teacher creates a blog assignment, this puts a grade in the gradebook and provides an assignment link for students to see.&lt;br /&gt;
&lt;br /&gt;
The teacher can configure options to allow a blog entry posted in the last X days to be used for the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Students:&#039;&#039;&#039;&lt;br /&gt;
When students enter the assignment they see a drop down menu of all their current (blog entries posted in the last X days as chosen by the teacher) blog entries, and they choose one to satisfy the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assessment:&#039;&#039;&#039;&lt;br /&gt;
The teacher goes in to the Assignment, views the blogs that are linked from the assignment, leaves comments (the comments only show up to the student when they view the blog assignment), and gives a grade.&lt;br /&gt;
&lt;br /&gt;
The blog entries themselves stay on the student&#039;s blog, only the grades, links, and comments go in the assignment (optionally the assignment scrapes the student&#039;s blog and loads the full text in to store for backup and restore).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle IDE ===&lt;br /&gt;
The objective of this project is to create a Moodle IDE based on Eclipse so that new developers can get to develop Moodle in less time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ideas&#039;&#039;&#039;&lt;br /&gt;
* First release: Eclipse + Plugins + Moodle splashscreen + CVS Configuration + Apache + MySQL + Moodle CVS code. All preconfigured and ready out of the box.&lt;br /&gt;
* Future&lt;br /&gt;
** Every X time, it checks for new versions of Moodle and packs it.&lt;br /&gt;
** Checkstyle plugin alike fo follow Moodle Design Guidelines.&lt;br /&gt;
** Development help (can be wiki pages to navigate offline)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Download&#039;&#039;&#039;: [http://mirrors.davidhorat.com/moodle/MoodleIDE-latest.zip MoodleIDE-latest]&lt;br /&gt;
&lt;br /&gt;
=== Moodle Multisite ===&lt;br /&gt;
The objective of this project is to make Moodle able to manage several Moodle sites with just one source code. This will help administrators of several sites to centralize code upgrades and &#039;&#039;technical problems&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ideas&#039;&#039;&#039;&lt;br /&gt;
* First release&lt;br /&gt;
** config.php will be a proxy that executes the concrete config file depending on the current url.&lt;br /&gt;
** The concrete config file will be under the directory /config and will have an arbitrary name created by the user.&lt;br /&gt;
* Future&lt;br /&gt;
** Create an XML file with all the pairs URL(n)-ConfigFile(1).&lt;br /&gt;
** Every time this file changes, it should be created the config.php file proxy.&lt;br /&gt;
** Develop a Web frontend to change this file, that can be just accessed by the super admin in every site.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
==Google Summer of Code 2006 Projects==&lt;br /&gt;
#[[Student projects/Presets for Database module|Presets for Database module project notes]]&lt;br /&gt;
#[[Student projects/Integrated bug tracker|Integrated bug tracker project notes]]&lt;br /&gt;
#[[Student projects/AJAX course format|AJAX course format project notes]]&lt;br /&gt;
#[[Student projects/Admin page cleanup|Admin page cleanup project notes]]&lt;br /&gt;
#[[Student projects/Global search|Global search project notes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Projects==&lt;br /&gt;
&lt;br /&gt;
#[[Student projects/ical|Calendar export to iCal]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Project]]&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Projects_for_new_developers&amp;diff=22960</id>
		<title>Projects for new developers</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Projects_for_new_developers&amp;diff=22960"/>
		<updated>2007-04-30T16:07:55Z</updated>

		<summary type="html">&lt;p&gt;David.horat: /* Moodle IDE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page currently lists the projects available Moodle&#039;s participation in the [http://code.google.com/soc Google Summer of Code 2007].   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.&lt;br /&gt;
&lt;br /&gt;
Current status:  Thank you to all the applicants!   Google have now confirmed the final selections and we have ten projects with a mentor and a student.  Here is a [http://moodle.org/mod/forum/discuss.php?d=69206 general discussion about the project].  Complete details are below.&lt;br /&gt;
&lt;br /&gt;
==Google Summer of Code 2007 Timeline==&lt;br /&gt;
* &#039;&#039;&#039;Starting now&#039;&#039;&#039;: construct detailed specifications for each project (see below), with feedback from the mentor and the Moodle community.  Some questions will be easy for your mentor to answer directly, but some you may have to post in the appropriate [http://moodle.org/course/view.php?id=5 Using Moodle] forums to gather and evaluate community feedback.&lt;br /&gt;
* &#039;&#039;&#039;May 31&#039;&#039;&#039;: Coding officially starts.  At this time you should have a bug in the [http://tracker.moodle.org Moodle Tracker] that breaks your project down into subtasks.  Please keep this tracker up to date with all your subsequent work - it&#039;s the best place for all asynchronous discussion with your mentor.&lt;br /&gt;
* &#039;&#039;&#039;July 9-16&#039;&#039;&#039;: Interim evaluation of code so far&lt;br /&gt;
* &#039;&#039;&#039;August 20&#039;&#039;&#039;: Coding should be completed &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Google Summer of Code 2007 Projects==&lt;br /&gt;
&lt;br /&gt;
The following projects are in no particular order!&lt;br /&gt;
&lt;br /&gt;
===Developing new question types for the quiz===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* Drag and drop versions of ordering and matching question types.&lt;br /&gt;
* Place a marker or draw a line on an image question types.&lt;br /&gt;
* Drag the missing words into the sentence/onto an image question type.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Tim Hunt&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Adriane Boyd&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/New question types|New question types]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Enterprise-level improvements===&lt;br /&gt;
&lt;br /&gt;
Here are a few things you could do to help Moodle run in a heavy environment (either big Moodles or many multiple Moodles).&lt;br /&gt;
&lt;br /&gt;
* Adapt all the DB installation and upgrade scripts to run from the command line, so fully scripted installations are possible without using the web interface.&lt;br /&gt;
&lt;br /&gt;
* Develop a profiling system for developers to use when testing their code.  Aim to spot and fix performance bottlenecks in Moodle with good reports and suggestions about what developers could do.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Penny Leach&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Dilan Anuruddha Karanachcharighe&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Enterprise-level improvements|Enterprise-level improvements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Chat revamp===&lt;br /&gt;
&lt;br /&gt;
mod/chat needs a bit of an overhaul. Possible interesting approaches:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Integrate Moodle with a Jabber backend, plus frontend glue. &lt;br /&gt;
** On the backend, we need to consider authentication, chatroom creation, and logging. &lt;br /&gt;
** On the frontend, ensuring that we can get Jabber clients started reliably on the end-user&#039;s machine, and  integrate a preexisting web-based Jabber client for Jabber-impaired users.&lt;br /&gt;
** Installation matter: a clear install HowTo for the Jabber + Moodle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [[User:Geoff Cant|Geoff Cant]], Martin Langhoff&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Thotage Piyasena&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Chat revamp|Chat revamp]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Messaging improvements===&lt;br /&gt;
&lt;br /&gt;
The Moodle messaging system in Moodle is a bit clunky and could use improvements to make it slicker and more efficient as a tool for messaging people within the Moodle environment.&lt;br /&gt;
&lt;br /&gt;
Functionality improvements:&lt;br /&gt;
* Add a messaging API class to the core of Moodle which all modules will start using for sending messages (currently they all format their own emails).&lt;br /&gt;
* Add output plugins to messaging so that users can choose exactly how to route their messages, especially when they aren&#039;t online at the time.  Initially the two plugins would be &amp;quot;browser&amp;quot; and &amp;quot;email&amp;quot;, but later there could be a jabber plugin, an IRC plugin etc)&lt;br /&gt;
&lt;br /&gt;
Gui improvements:&lt;br /&gt;
* Improve the main message GUI using AJAX (Moodle includes the YUI library so you&#039;d need to use that)&lt;br /&gt;
* Improve the messaging window to allow chats among three or more other people at once.&lt;br /&gt;
* GUI for the output plugins to allow users to set rules about each plugin independently, and also to select from incoming messages by type, by user or by moodle module.&lt;br /&gt;
* Improve the methods to search messages and find discussions from the past.&lt;br /&gt;
* Improve administrator auditing of message logs, including filtering etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Martin Dougiamas&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Luis Filipe Romão Rodrigues&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Messaging improvements|Messaging improvements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Automated grading for Computer Programming Assignments===&lt;br /&gt;
&lt;br /&gt;
The project here is to develop two things&lt;br /&gt;
&lt;br /&gt;
#A Moodle assignment plugin to handle the GUI and higher-level processes involved in submitting and grading a programming assignment&lt;br /&gt;
#An interface to an external 3rd party program (preferably an established, active open source project) to handle the actual analysis and grading of the source code.  It should have plugins to handle arbitrary languages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [[User:Nicolas Connault]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Arkaitz Garro&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Automated grading of programs|Automated grading of programs]]&lt;br /&gt;
&lt;br /&gt;
=== User Management Improvements ===&lt;br /&gt;
&lt;br /&gt;
* Improve the User features in moodle to allow bulk-operations. &lt;br /&gt;
** Create an interface to do bulk operations on users (e.g. delete users, reset passwords etc) This could potentially use an AJAX implementation for multiple filtering/selection of required students for bulk operations.&lt;br /&gt;
** Overhall the CSV upload features to allow more flexibility (more options, features to auto-generate more fields such as usernames)&lt;br /&gt;
* Enrolment&lt;br /&gt;
** Specify time of manual enrollments ([http://tracker.moodle.org/browse/MDL-8877 MDL-8877])&lt;br /&gt;
* Notes&lt;br /&gt;
** Allow teachers to put notes for each student in every course, much requested feature ([http://tracker.moodle.org/browse/MDL-7077 MDL-7077])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Yu Zhang&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Andrei Bautu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/User Management Improvements|User Management Improvements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Email interface to Moodle ===&lt;br /&gt;
&lt;br /&gt;
The idea is to let people reply naturally to email they receive from Moodle to change settings or add further comments into forums etc.   Moodle activities can then be accessed like a mailing list.&lt;br /&gt;
&lt;br /&gt;
* Add a setting so admins can specify if they want an email interface enabled.  Without it, none of the following is active and Moodle functions just as it does today.&lt;br /&gt;
* Improve the outgoing emails in Moodle to contain a unique and robust code in the headers and potentially also in the subject line (switchable by user setting) that encrypts information about the receiver, the activity instance and the specific data.  For example, all the information to securely identify a forum post.&lt;br /&gt;
* Write a PHP script designed to run from the commandline as part of an email filter, that accepts emails on standard input, parses them and then calls a function in the relevant module.  For example forum_incoming_email() in mod/forum/lib.php.&lt;br /&gt;
* Write function for forum module (at least) to parse the content of the email and add it as a post from the user.   Other modules can be worked on if there&#039;s time ... resources could be sent back as attachments, quizzes could send questions and accept multiple choice answers, the course could send back a listing of activities with further codes for each one, etc.&lt;br /&gt;
* Security is essential!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Martin Langhoff&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Peter Boswood&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Email interface|Email interface]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Secure RSS feeds ===&lt;br /&gt;
&lt;br /&gt;
Currently RSS is less than useful because:&lt;br /&gt;
* Either we can&#039;t publish private information to the outside world because it&#039;s too sensitive.&lt;br /&gt;
* We open up sensitive information to the outside world&lt;br /&gt;
&lt;br /&gt;
We should add codes to make the RSS URLs practically impossible to guess, much the same way as Google Calendar does it.&lt;br /&gt;
&lt;br /&gt;
* Overhaul all the RSS feeds in Moodle to make use of a long hash-like string in the URL for identification (Forums, Data etc).&lt;br /&gt;
* Store these codes in a new field per-user and per-course.   &lt;br /&gt;
* Add GUIs to let the user recreate their code to something else should they suspect a breach.&lt;br /&gt;
* Add RSS to other areas of Moodle such as the participants &amp;quot;last logins&amp;quot; and the activity logs.&lt;br /&gt;
* Explore/research other methods of opening up RSS in a safe way to the outside world.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Petr Škoda&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Udit Sajjanhar&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Secure RSS feeds|Secure RSS feeds]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Social Networking features ===&lt;br /&gt;
&lt;br /&gt;
Explore the possibilities of social networking features by expanding the user profile page:&lt;br /&gt;
&lt;br /&gt;
* add user tags that describe interests etc, as links to &amp;quot;interest pages&amp;quot;  eg constructivism&lt;br /&gt;
* interest pages that contain information about all the people who share that interest, as well as blog entries that use that tag, google searches, other info using standard Moodle blocks etc&lt;br /&gt;
* allow users to add other users as &amp;quot;friends&amp;quot;, which are displayed on their user profile pages&lt;br /&gt;
* think about controls to prevent abuse of these features in a school environment.&lt;br /&gt;
* allow users to specify an external RSS feed to their own external blog, parsing the feed insert entries (optionally selecting by tag) as internal blog entries for that user, adding new tags/permissions as specified, with links back to external entry etc.&lt;br /&gt;
* if time, explore deeper integrations with Youtube, Flickr, MySpace, Facebook etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Martin Dougiamas&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Luiz Eduardo Laydner Cruz&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Social Networking features|Social Networking features]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Moodle Voice===&lt;br /&gt;
&lt;br /&gt;
*Objective: Adapt Moodle interface to output the needed VoiceXML so you can navigate with your voice with a VoiceXML enabled browser, such as [http://www.opera.com/ Opera].&lt;br /&gt;
*[[Development:Voice_Project|Project Proposal]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student&#039;&#039;&#039;: 	Mayank Jain&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification&#039;&#039;&#039;: [[Development:Voice|Development:Voice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Other open projects still looking for students==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Roles interface improvements ===&lt;br /&gt;
&lt;br /&gt;
Improve the roles editing interface by making it more dynamic and flexible.  You can use the YUI library for ajax if you like, but there must be a good fall-back interface too.   Some ideas include:&lt;br /&gt;
&lt;br /&gt;
* Improve the order of the capabilities and implement better grouping.&lt;br /&gt;
* Make the groups of capabilities collapsible to make it easier to &amp;quot;zoom in&amp;quot; to a particular section.&lt;br /&gt;
* Add floating tooltip help when you hover over any given capability.&lt;br /&gt;
* Experiment with an (alternate) interface seeing the roles all side-by-side for easier comparison/editing.&lt;br /&gt;
* Implement a roles backup and restore system to allow site administrators to distribute useful roles in the moodle comunity (rather than having to describe the permissions setup)&lt;br /&gt;
* Analyse the problem carefully with feedback from the community for more ideas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integration with bibliographic systems such as Wikindx===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Design and construct an integration with Wikindx (or other open-source bibliographic tools, if appropriate).&lt;br /&gt;
&lt;br /&gt;
Teachers should be able to easily refer to wikindx bibliography items throughout a Moodle course, and be able to:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
** Possibly, allow some kind of direct searching of a wikindx database from within Moodle, so as to make it easier to refer to items&lt;br /&gt;
* Generate reading lists / bibliographies&lt;br /&gt;
* Allow export of the above into common machine-readable formats such as Bibtex or RIS. (Wikindx can perform this so again it&#039;s a question of hooking into, or expanding, wikindx functionality.)&lt;br /&gt;
&lt;br /&gt;
See also [[Development:Wikindx]] and [http://moodle.org/mod/forum/discuss.php?d=23022 this forum discussion] too&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Implement CATs in Moodle===&lt;br /&gt;
&lt;br /&gt;
[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&#039;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. &lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
# Make Moodle an even better teaching tool.&lt;br /&gt;
# Provide some good exemplars of how to do interesting things with database templates.&lt;br /&gt;
# Possibly highlight limitations in the database template system, that would require improvements to the database module code to overcome.&lt;br /&gt;
# One of the outcomes of this project could be some really good &#039;How to write a database template&#039; tutorial, which would be very valuable to the community.&lt;br /&gt;
&lt;br /&gt;
This is my (Tim Hunt&#039;s) idea, but I would not be interested in mentoring it. It would need to be someone who knows all about the database module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blog Assignment Type ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is it for?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blogs are inherently user owned and driven by definition, however teachers would like to have a way to use blogs as assignments in their courses, comment, grade, etc.&lt;br /&gt;
&lt;br /&gt;
A solution to this conundrum would be a new Assignment type that makes it possible for a student to easily submit the link one of their blogs to an assignment in a course, and have that blog entry privately graded and commented on by the instructor of that course. The blog entry itself remains public along with all of the student&#039;s other blogs. The tool would provide a time filter in the Assignment, so that the instructor could limit the blog entry posting dates that will be accepted (both to ensure &#039;fresh&#039; entries and to keep the list of entries the student chooses short for frequent student bloggers).&lt;br /&gt;
&lt;br /&gt;
I suggest a blog assignment type that functions as follows:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teacher:&#039;&#039;&#039;&lt;br /&gt;
Teacher creates a blog assignment, this puts a grade in the gradebook and provides an assignment link for students to see.&lt;br /&gt;
&lt;br /&gt;
The teacher can configure options to allow a blog entry posted in the last X days to be used for the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Students:&#039;&#039;&#039;&lt;br /&gt;
When students enter the assignment they see a drop down menu of all their current (blog entries posted in the last X days as chosen by the teacher) blog entries, and they choose one to satisfy the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assessment:&#039;&#039;&#039;&lt;br /&gt;
The teacher goes in to the Assignment, views the blogs that are linked from the assignment, leaves comments (the comments only show up to the student when they view the blog assignment), and gives a grade.&lt;br /&gt;
&lt;br /&gt;
The blog entries themselves stay on the student&#039;s blog, only the grades, links, and comments go in the assignment (optionally the assignment scrapes the student&#039;s blog and loads the full text in to store for backup and restore).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle IDE ===&lt;br /&gt;
The objective of this project is to create a Moodle IDE based on Eclipse so that new developers can get to develop Moodle in less time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ideas&#039;&#039;&#039;&lt;br /&gt;
* First release: Eclipse + Plugins + Moodle splashscreen + CVS Configuration + Apache + MySQL + Moodle CVS code. All preconfigured and ready out of the box.&lt;br /&gt;
* Future&lt;br /&gt;
** Every X time, it checks for new versions of Moodle and packs it.&lt;br /&gt;
** Checkstyle plugin alike fo follow Moodle Design Guidelines.&lt;br /&gt;
** Development help (can be wiki pages to navigate offline)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&#039;&#039;&#039;Download&#039;&#039;&#039;: [http://mirrors.davidhorat.com/moodle/MoodleIDE-latest.zip MoodleIDE-latest]&lt;br /&gt;
&lt;br /&gt;
=== Moodle Multisite ===&lt;br /&gt;
The objective of this project is to make Moodle able to manage several Moodle sites with just one source code. This will help administrators of several sites to centralize code upgrades and &#039;&#039;technical problems&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ideas&#039;&#039;&#039;&lt;br /&gt;
* First release&lt;br /&gt;
** config.php will be a proxy that executes the concrete config file depending on the current url.&lt;br /&gt;
** The concrete config file will be under the directory /config and will have an arbitrary name created by the user.&lt;br /&gt;
* Future&lt;br /&gt;
** Create an XML file with all the pairs URL(n)-ConfigFile(1).&lt;br /&gt;
** Every time this file changes, it should be created the config.php file proxy.&lt;br /&gt;
** Develop a Web frontend to change this file, that can be just accessed by the super admin in every site.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
==Google Summer of Code 2006 Projects==&lt;br /&gt;
#[[Student projects/Presets for Database module|Presets for Database module project notes]]&lt;br /&gt;
#[[Student projects/Integrated bug tracker|Integrated bug tracker project notes]]&lt;br /&gt;
#[[Student projects/AJAX course format|AJAX course format project notes]]&lt;br /&gt;
#[[Student projects/Admin page cleanup|Admin page cleanup project notes]]&lt;br /&gt;
#[[Student projects/Global search|Global search project notes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Projects==&lt;br /&gt;
&lt;br /&gt;
#[[Student projects/ical|Calendar export to iCal]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Project]]&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Projects_for_new_developers&amp;diff=22701</id>
		<title>Projects for new developers</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Projects_for_new_developers&amp;diff=22701"/>
		<updated>2007-04-24T18:51:01Z</updated>

		<summary type="html">&lt;p&gt;David.horat: /* Moodle Integrated Development Environment (Moodle IDE) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page currently lists the projects available Moodle&#039;s participation in the [http://code.google.com/soc Google Summer of Code 2007].   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.&lt;br /&gt;
&lt;br /&gt;
Current status:  Thank you to all the applicants!   Google have now confirmed the final selections and we have ten projects with a mentor and a student.  Here is a [http://moodle.org/mod/forum/discuss.php?d=69206 general discussion about the project].  Complete details are below.&lt;br /&gt;
&lt;br /&gt;
==Google Summer of Code 2007 Timeline==&lt;br /&gt;
* &#039;&#039;&#039;Starting now&#039;&#039;&#039;: construct detailed specifications for each project (see below), with feedback from the mentor and the Moodle community.  Some questions will be easy for your mentor to answer directly, but some you may have to post in the appropriate [http://moodle.org/course/view.php?id=5 Using Moodle] forums to gather and evaluate community feedback.&lt;br /&gt;
* &#039;&#039;&#039;May 31&#039;&#039;&#039;: Coding officially starts.  At this time you should have a bug in the [http://tracker.moodle.org Moodle Tracker] that breaks your project down into subtasks.  Please keep this tracker up to date with all your subsequent work - it&#039;s the best place for all asynchronous discussion with your mentor.&lt;br /&gt;
* &#039;&#039;&#039;July 9-16&#039;&#039;&#039;: Interim evaluation of code so far&lt;br /&gt;
* &#039;&#039;&#039;August 20&#039;&#039;&#039;: Coding should be completed &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Google Summer of Code 2007 Projects==&lt;br /&gt;
&lt;br /&gt;
The following projects are in no particular order!&lt;br /&gt;
&lt;br /&gt;
===Developing new question types for the quiz===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* Drag and drop versions of ordering and matching question types.&lt;br /&gt;
* Place a marker or draw a line on an image question types.&lt;br /&gt;
* Drag the missing words into the sentence/onto an image question type.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Tim Hunt&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Adriane Boyd&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/New question types|New question types]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Enterprise-level improvements===&lt;br /&gt;
&lt;br /&gt;
Here are a few things you could do to help Moodle run in a heavy environment (either big Moodles or many multiple Moodles).&lt;br /&gt;
&lt;br /&gt;
* Adapt all the DB installation and upgrade scripts to run from the command line, so fully scripted installations are possible without using the web interface.&lt;br /&gt;
&lt;br /&gt;
* Develop a profiling system for developers to use when testing their code.  Aim to spot and fix performance bottlenecks in Moodle with good reports and suggestions about what developers could do.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Penny Leach&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Dilan Anuruddha Karanachcharighe&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Enterprise-level improvements|Enterprise-level improvements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Chat revamp===&lt;br /&gt;
&lt;br /&gt;
mod/chat needs a bit of an overhaul. Possible interesting approaches:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Integrate Moodle with a Jabber backend, plus frontend glue. &lt;br /&gt;
** On the backend, we need to consider authentication, chatroom creation, and logging. &lt;br /&gt;
** On the frontend, ensuring that we can get Jabber clients started reliably on the end-user&#039;s machine, and  integrate a preexisting web-based Jabber client for Jabber-impaired users.&lt;br /&gt;
** Installation matter: a clear install HowTo for the Jabber + Moodle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [[User:Geoff Cant|Geoff Cant]], Martin Langhoff&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Thotage Piyasena&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Chat revamp|Chat revamp]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Messaging improvements===&lt;br /&gt;
&lt;br /&gt;
The Moodle messaging system in Moodle is a bit clunky and could use improvements to make it slicker and more efficient as a tool for messaging people within the Moodle environment.&lt;br /&gt;
&lt;br /&gt;
Functionality improvements:&lt;br /&gt;
* Add a messaging API class to the core of Moodle which all modules will start using for sending messages (currently they all format their own emails).&lt;br /&gt;
* Add output plugins to messaging so that users can choose exactly how to route their messages, especially when they aren&#039;t online at the time.  Initially the two plugins would be &amp;quot;browser&amp;quot; and &amp;quot;email&amp;quot;, but later there could be a jabber plugin, an IRC plugin etc)&lt;br /&gt;
&lt;br /&gt;
Gui improvements:&lt;br /&gt;
* Improve the main message GUI using AJAX (Moodle includes the YUI library so you&#039;d need to use that)&lt;br /&gt;
* Improve the messaging window to allow chats among three or more other people at once.&lt;br /&gt;
* GUI for the output plugins to allow users to set rules about each plugin independently, and also to select from incoming messages by type, by user or by moodle module.&lt;br /&gt;
* Improve the methods to search messages and find discussions from the past.&lt;br /&gt;
* Improve administrator auditing of message logs, including filtering etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Martin Dougiamas&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Luis Filipe Romão Rodrigues&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Messaging improvements|Messaging improvements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Automated grading for Computer Programming Assignments===&lt;br /&gt;
&lt;br /&gt;
The project here is to develop two things&lt;br /&gt;
&lt;br /&gt;
#A Moodle assignment plugin to handle the GUI and higher-level processes involved in submitting and grading a programming assignment&lt;br /&gt;
#An interface to an external 3rd party program (preferably an established, active open source project) to handle the actual analysis and grading of the source code.  It should have plugins to handle arbitrary languages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [[User:Nicolas Connault]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Arkaitz Garro&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Automated grading of programs|Automated grading of programs]]&lt;br /&gt;
&lt;br /&gt;
=== User Management Improvements ===&lt;br /&gt;
&lt;br /&gt;
* Improve the User features in moodle to allow bulk-operations. &lt;br /&gt;
** Create an interface to do bulk operations on users (e.g. delete users, reset passwords etc) This could potentially use an AJAX implementation for multiple filtering/selection of required students for bulk operations.&lt;br /&gt;
** Overhall the CSV upload features to allow more flexibility (more options, features to auto-generate more fields such as usernames)&lt;br /&gt;
* Enrolment&lt;br /&gt;
** Specify time of manual enrollments ([http://tracker.moodle.org/browse/MDL-8877 MDL-8877])&lt;br /&gt;
* Notes&lt;br /&gt;
** Allow teachers to put notes for each student in every course, much requested feature ([http://tracker.moodle.org/browse/MDL-7077 MDL-7077])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Yu Zhang&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Andrei Bautu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/User Management Improvements|User Management Improvements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Email interface to Moodle ===&lt;br /&gt;
&lt;br /&gt;
The idea is to let people reply naturally to email they receive from Moodle to change settings or add further comments into forums etc.   Moodle activities can then be accessed like a mailing list.&lt;br /&gt;
&lt;br /&gt;
* Add a setting so admins can specify if they want an email interface enabled.  Without it, none of the following is active and Moodle functions just as it does today.&lt;br /&gt;
* Improve the outgoing emails in Moodle to contain a unique and robust code in the headers and potentially also in the subject line (switchable by user setting) that encrypts information about the receiver, the activity instance and the specific data.  For example, all the information to securely identify a forum post.&lt;br /&gt;
* Write a PHP script designed to run from the commandline as part of an email filter, that accepts emails on standard input, parses them and then calls a function in the relevant module.  For example forum_incoming_email() in mod/forum/lib.php.&lt;br /&gt;
* Write function for forum module (at least) to parse the content of the email and add it as a post from the user.   Other modules can be worked on if there&#039;s time ... resources could be sent back as attachments, quizzes could send questions and accept multiple choice answers, the course could send back a listing of activities with further codes for each one, etc.&lt;br /&gt;
* Security is essential!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Martin Langhoff&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Peter Boswood&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Email interface|Email interface]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Secure RSS feeds ===&lt;br /&gt;
&lt;br /&gt;
Currently RSS is less than useful because:&lt;br /&gt;
* Either we can&#039;t publish private information to the outside world because it&#039;s too sensitive.&lt;br /&gt;
* We open up sensitive information to the outside world&lt;br /&gt;
&lt;br /&gt;
We should add codes to make the RSS URLs practically impossible to guess, much the same way as Google Calendar does it.&lt;br /&gt;
&lt;br /&gt;
* Overhaul all the RSS feeds in Moodle to make use of a long hash-like string in the URL for identification (Forums, Data etc).&lt;br /&gt;
* Store these codes in a new field per-user and per-course.   &lt;br /&gt;
* Add GUIs to let the user recreate their code to something else should they suspect a breach.&lt;br /&gt;
* Add RSS to other areas of Moodle such as the participants &amp;quot;last logins&amp;quot; and the activity logs.&lt;br /&gt;
* Explore/research other methods of opening up RSS in a safe way to the outside world.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Petr Škoda&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Udit Sajjanhar&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Secure RSS feeds|Secure RSS feeds]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Social Networking features ===&lt;br /&gt;
&lt;br /&gt;
Explore the possibilities of social networking features by expanding the user profile page:&lt;br /&gt;
&lt;br /&gt;
* add user tags that describe interests etc, as links to &amp;quot;interest pages&amp;quot;  eg constructivism&lt;br /&gt;
* interest pages that contain information about all the people who share that interest, as well as blog entries that use that tag, google searches, other info using standard Moodle blocks etc&lt;br /&gt;
* allow users to add other users as &amp;quot;friends&amp;quot;, which are displayed on their user profile pages&lt;br /&gt;
* think about controls to prevent abuse of these features in a school environment.&lt;br /&gt;
* allow users to specify an external RSS feed to their own external blog, parsing the feed insert entries (optionally selecting by tag) as internal blog entries for that user, adding new tags/permissions as specified, with links back to external entry etc.&lt;br /&gt;
* if time, explore deeper integrations with Youtube, Flickr, MySpace, Facebook etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Martin Dougiamas&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Luiz Eduardo Laydner Cruz&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Social Networking features|Social Networking features]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Moodle Voice===&lt;br /&gt;
&lt;br /&gt;
*Objective: Adapt Moodle interface to output the needed VoiceXML so you can navigate with your voice with a VoiceXML enabled browser, such as [http://www.opera.com/ Opera].&lt;br /&gt;
*[[Development:Voice_Project|Project Proposal]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student&#039;&#039;&#039;: 	Mayank Jain&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification&#039;&#039;&#039;: [[Development:Voice|Development:Voice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Other open projects still looking for students==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Roles interface improvements ===&lt;br /&gt;
&lt;br /&gt;
Improve the roles editing interface by making it more dynamic and flexible.  You can use the YUI library for ajax if you like, but there must be a good fall-back interface too.   Some ideas include:&lt;br /&gt;
&lt;br /&gt;
* Improve the order of the capabilities and implement better grouping.&lt;br /&gt;
* Make the groups of capabilities collapsible to make it easier to &amp;quot;zoom in&amp;quot; to a particular section.&lt;br /&gt;
* Add floating tooltip help when you hover over any given capability.&lt;br /&gt;
* Experiment with an (alternate) interface seeing the roles all side-by-side for easier comparison/editing.&lt;br /&gt;
* Implement a roles backup and restore system to allow site administrators to distribute useful roles in the moodle comunity (rather than having to describe the permissions setup)&lt;br /&gt;
* Analyse the problem carefully with feedback from the community for more ideas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integration with bibliographic systems such as Wikindx===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Design and construct an integration with Wikindx (or other open-source bibliographic tools, if appropriate).&lt;br /&gt;
&lt;br /&gt;
Teachers should be able to easily refer to wikindx bibliography items throughout a Moodle course, and be able to:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
** Possibly, allow some kind of direct searching of a wikindx database from within Moodle, so as to make it easier to refer to items&lt;br /&gt;
* Generate reading lists / bibliographies&lt;br /&gt;
* Allow export of the above into common machine-readable formats such as Bibtex or RIS. (Wikindx can perform this so again it&#039;s a question of hooking into, or expanding, wikindx functionality.)&lt;br /&gt;
&lt;br /&gt;
See also [[Development:Wikindx]] and [http://moodle.org/mod/forum/discuss.php?d=23022 this forum discussion] too&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Implement CATs in Moodle===&lt;br /&gt;
&lt;br /&gt;
[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&#039;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. &lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
# Make Moodle an even better teaching tool.&lt;br /&gt;
# Provide some good exemplars of how to do interesting things with database templates.&lt;br /&gt;
# Possibly highlight limitations in the database template system, that would require improvements to the database module code to overcome.&lt;br /&gt;
# One of the outcomes of this project could be some really good &#039;How to write a database template&#039; tutorial, which would be very valuable to the community.&lt;br /&gt;
&lt;br /&gt;
This is my (Tim Hunt&#039;s) idea, but I would not be interested in mentoring it. It would need to be someone who knows all about the database module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blog Assignment Type ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is it for?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blogs are inherently user owned and driven by definition, however teachers would like to have a way to use blogs as assignments in their courses, comment, grade, etc.&lt;br /&gt;
&lt;br /&gt;
A solution to this conundrum would be a new Assignment type that makes it possible for a student to easily submit the link one of their blogs to an assignment in a course, and have that blog entry privately graded and commented on by the instructor of that course. The blog entry itself remains public along with all of the student&#039;s other blogs. The tool would provide a time filter in the Assignment, so that the instructor could limit the blog entry posting dates that will be accepted (both to ensure &#039;fresh&#039; entries and to keep the list of entries the student chooses short for frequent student bloggers).&lt;br /&gt;
&lt;br /&gt;
I suggest a blog assignment type that functions as follows:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teacher:&#039;&#039;&#039;&lt;br /&gt;
Teacher creates a blog assignment, this puts a grade in the gradebook and provides an assignment link for students to see.&lt;br /&gt;
&lt;br /&gt;
The teacher can configure options to allow a blog entry posted in the last X days to be used for the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Students:&#039;&#039;&#039;&lt;br /&gt;
When students enter the assignment they see a drop down menu of all their current (blog entries posted in the last X days as chosen by the teacher) blog entries, and they choose one to satisfy the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assessment:&#039;&#039;&#039;&lt;br /&gt;
The teacher goes in to the Assignment, views the blogs that are linked from the assignment, leaves comments (the comments only show up to the student when they view the blog assignment), and gives a grade.&lt;br /&gt;
&lt;br /&gt;
The blog entries themselves stay on the student&#039;s blog, only the grades, links, and comments go in the assignment (optionally the assignment scrapes the student&#039;s blog and loads the full text in to store for backup and restore).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle IDE ===&lt;br /&gt;
The objective of this project is to create a Moodle IDE based on Eclipse so that new developers can get to develop Moodle in less time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ideas&#039;&#039;&#039;&lt;br /&gt;
* First release: Eclipse + Plugins + Moodle splashscreen + CVS Configuration + Apache + MySQL + Moodle CVS code. All preconfigured and ready out of the box.&lt;br /&gt;
* Future&lt;br /&gt;
** Every X time, it checks for new versions of Moodle and packs it.&lt;br /&gt;
** Checkstyle plugin alike fo follow Moodle Design Guidelines.&lt;br /&gt;
** Development help (can be wiki pages to navigate offline)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
=== Moodle Multisite ===&lt;br /&gt;
The objective of this project is to make Moodle able to manage several Moodle sites with just one source code. This will help administrators of several sites to centralize code upgrades and &#039;&#039;technical problems&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ideas&#039;&#039;&#039;&lt;br /&gt;
* First release&lt;br /&gt;
** config.php will be a proxy that executes the concrete config file depending on the current url.&lt;br /&gt;
** The concrete config file will be under the directory /config and will have an arbitrary name created by the user.&lt;br /&gt;
* Future&lt;br /&gt;
** Create an XML file with all the pairs URL(n)-ConfigFile(1).&lt;br /&gt;
** Every time this file changes, it should be created the config.php file proxy.&lt;br /&gt;
** Develop a Web frontend to change this file, that can be just accessed by the super admin in every site.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
==Google Summer of Code 2006 Projects==&lt;br /&gt;
#[[Student projects/Presets for Database module|Presets for Database module project notes]]&lt;br /&gt;
#[[Student projects/Integrated bug tracker|Integrated bug tracker project notes]]&lt;br /&gt;
#[[Student projects/AJAX course format|AJAX course format project notes]]&lt;br /&gt;
#[[Student projects/Admin page cleanup|Admin page cleanup project notes]]&lt;br /&gt;
#[[Student projects/Global search|Global search project notes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Projects==&lt;br /&gt;
&lt;br /&gt;
#[[Student projects/ical|Calendar export to iCal]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Project]]&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Projects_for_new_developers&amp;diff=22700</id>
		<title>Projects for new developers</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Projects_for_new_developers&amp;diff=22700"/>
		<updated>2007-04-24T18:50:45Z</updated>

		<summary type="html">&lt;p&gt;David.horat: /* Moodle Integrated Development Environment (Moodle IDE) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page currently lists the projects available Moodle&#039;s participation in the [http://code.google.com/soc Google Summer of Code 2007].   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.&lt;br /&gt;
&lt;br /&gt;
Current status:  Thank you to all the applicants!   Google have now confirmed the final selections and we have ten projects with a mentor and a student.  Here is a [http://moodle.org/mod/forum/discuss.php?d=69206 general discussion about the project].  Complete details are below.&lt;br /&gt;
&lt;br /&gt;
==Google Summer of Code 2007 Timeline==&lt;br /&gt;
* &#039;&#039;&#039;Starting now&#039;&#039;&#039;: construct detailed specifications for each project (see below), with feedback from the mentor and the Moodle community.  Some questions will be easy for your mentor to answer directly, but some you may have to post in the appropriate [http://moodle.org/course/view.php?id=5 Using Moodle] forums to gather and evaluate community feedback.&lt;br /&gt;
* &#039;&#039;&#039;May 31&#039;&#039;&#039;: Coding officially starts.  At this time you should have a bug in the [http://tracker.moodle.org Moodle Tracker] that breaks your project down into subtasks.  Please keep this tracker up to date with all your subsequent work - it&#039;s the best place for all asynchronous discussion with your mentor.&lt;br /&gt;
* &#039;&#039;&#039;July 9-16&#039;&#039;&#039;: Interim evaluation of code so far&lt;br /&gt;
* &#039;&#039;&#039;August 20&#039;&#039;&#039;: Coding should be completed &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Google Summer of Code 2007 Projects==&lt;br /&gt;
&lt;br /&gt;
The following projects are in no particular order!&lt;br /&gt;
&lt;br /&gt;
===Developing new question types for the quiz===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* Drag and drop versions of ordering and matching question types.&lt;br /&gt;
* Place a marker or draw a line on an image question types.&lt;br /&gt;
* Drag the missing words into the sentence/onto an image question type.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Tim Hunt&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Adriane Boyd&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/New question types|New question types]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Enterprise-level improvements===&lt;br /&gt;
&lt;br /&gt;
Here are a few things you could do to help Moodle run in a heavy environment (either big Moodles or many multiple Moodles).&lt;br /&gt;
&lt;br /&gt;
* Adapt all the DB installation and upgrade scripts to run from the command line, so fully scripted installations are possible without using the web interface.&lt;br /&gt;
&lt;br /&gt;
* Develop a profiling system for developers to use when testing their code.  Aim to spot and fix performance bottlenecks in Moodle with good reports and suggestions about what developers could do.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Penny Leach&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Dilan Anuruddha Karanachcharighe&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Enterprise-level improvements|Enterprise-level improvements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Chat revamp===&lt;br /&gt;
&lt;br /&gt;
mod/chat needs a bit of an overhaul. Possible interesting approaches:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Integrate Moodle with a Jabber backend, plus frontend glue. &lt;br /&gt;
** On the backend, we need to consider authentication, chatroom creation, and logging. &lt;br /&gt;
** On the frontend, ensuring that we can get Jabber clients started reliably on the end-user&#039;s machine, and  integrate a preexisting web-based Jabber client for Jabber-impaired users.&lt;br /&gt;
** Installation matter: a clear install HowTo for the Jabber + Moodle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [[User:Geoff Cant|Geoff Cant]], Martin Langhoff&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Thotage Piyasena&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Chat revamp|Chat revamp]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Messaging improvements===&lt;br /&gt;
&lt;br /&gt;
The Moodle messaging system in Moodle is a bit clunky and could use improvements to make it slicker and more efficient as a tool for messaging people within the Moodle environment.&lt;br /&gt;
&lt;br /&gt;
Functionality improvements:&lt;br /&gt;
* Add a messaging API class to the core of Moodle which all modules will start using for sending messages (currently they all format their own emails).&lt;br /&gt;
* Add output plugins to messaging so that users can choose exactly how to route their messages, especially when they aren&#039;t online at the time.  Initially the two plugins would be &amp;quot;browser&amp;quot; and &amp;quot;email&amp;quot;, but later there could be a jabber plugin, an IRC plugin etc)&lt;br /&gt;
&lt;br /&gt;
Gui improvements:&lt;br /&gt;
* Improve the main message GUI using AJAX (Moodle includes the YUI library so you&#039;d need to use that)&lt;br /&gt;
* Improve the messaging window to allow chats among three or more other people at once.&lt;br /&gt;
* GUI for the output plugins to allow users to set rules about each plugin independently, and also to select from incoming messages by type, by user or by moodle module.&lt;br /&gt;
* Improve the methods to search messages and find discussions from the past.&lt;br /&gt;
* Improve administrator auditing of message logs, including filtering etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Martin Dougiamas&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Luis Filipe Romão Rodrigues&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Messaging improvements|Messaging improvements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Automated grading for Computer Programming Assignments===&lt;br /&gt;
&lt;br /&gt;
The project here is to develop two things&lt;br /&gt;
&lt;br /&gt;
#A Moodle assignment plugin to handle the GUI and higher-level processes involved in submitting and grading a programming assignment&lt;br /&gt;
#An interface to an external 3rd party program (preferably an established, active open source project) to handle the actual analysis and grading of the source code.  It should have plugins to handle arbitrary languages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [[User:Nicolas Connault]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Arkaitz Garro&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Automated grading of programs|Automated grading of programs]]&lt;br /&gt;
&lt;br /&gt;
=== User Management Improvements ===&lt;br /&gt;
&lt;br /&gt;
* Improve the User features in moodle to allow bulk-operations. &lt;br /&gt;
** Create an interface to do bulk operations on users (e.g. delete users, reset passwords etc) This could potentially use an AJAX implementation for multiple filtering/selection of required students for bulk operations.&lt;br /&gt;
** Overhall the CSV upload features to allow more flexibility (more options, features to auto-generate more fields such as usernames)&lt;br /&gt;
* Enrolment&lt;br /&gt;
** Specify time of manual enrollments ([http://tracker.moodle.org/browse/MDL-8877 MDL-8877])&lt;br /&gt;
* Notes&lt;br /&gt;
** Allow teachers to put notes for each student in every course, much requested feature ([http://tracker.moodle.org/browse/MDL-7077 MDL-7077])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Yu Zhang&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Andrei Bautu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/User Management Improvements|User Management Improvements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Email interface to Moodle ===&lt;br /&gt;
&lt;br /&gt;
The idea is to let people reply naturally to email they receive from Moodle to change settings or add further comments into forums etc.   Moodle activities can then be accessed like a mailing list.&lt;br /&gt;
&lt;br /&gt;
* Add a setting so admins can specify if they want an email interface enabled.  Without it, none of the following is active and Moodle functions just as it does today.&lt;br /&gt;
* Improve the outgoing emails in Moodle to contain a unique and robust code in the headers and potentially also in the subject line (switchable by user setting) that encrypts information about the receiver, the activity instance and the specific data.  For example, all the information to securely identify a forum post.&lt;br /&gt;
* Write a PHP script designed to run from the commandline as part of an email filter, that accepts emails on standard input, parses them and then calls a function in the relevant module.  For example forum_incoming_email() in mod/forum/lib.php.&lt;br /&gt;
* Write function for forum module (at least) to parse the content of the email and add it as a post from the user.   Other modules can be worked on if there&#039;s time ... resources could be sent back as attachments, quizzes could send questions and accept multiple choice answers, the course could send back a listing of activities with further codes for each one, etc.&lt;br /&gt;
* Security is essential!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Martin Langhoff&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Peter Boswood&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Email interface|Email interface]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Secure RSS feeds ===&lt;br /&gt;
&lt;br /&gt;
Currently RSS is less than useful because:&lt;br /&gt;
* Either we can&#039;t publish private information to the outside world because it&#039;s too sensitive.&lt;br /&gt;
* We open up sensitive information to the outside world&lt;br /&gt;
&lt;br /&gt;
We should add codes to make the RSS URLs practically impossible to guess, much the same way as Google Calendar does it.&lt;br /&gt;
&lt;br /&gt;
* Overhaul all the RSS feeds in Moodle to make use of a long hash-like string in the URL for identification (Forums, Data etc).&lt;br /&gt;
* Store these codes in a new field per-user and per-course.   &lt;br /&gt;
* Add GUIs to let the user recreate their code to something else should they suspect a breach.&lt;br /&gt;
* Add RSS to other areas of Moodle such as the participants &amp;quot;last logins&amp;quot; and the activity logs.&lt;br /&gt;
* Explore/research other methods of opening up RSS in a safe way to the outside world.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Petr Škoda&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Udit Sajjanhar&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Secure RSS feeds|Secure RSS feeds]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Social Networking features ===&lt;br /&gt;
&lt;br /&gt;
Explore the possibilities of social networking features by expanding the user profile page:&lt;br /&gt;
&lt;br /&gt;
* add user tags that describe interests etc, as links to &amp;quot;interest pages&amp;quot;  eg constructivism&lt;br /&gt;
* interest pages that contain information about all the people who share that interest, as well as blog entries that use that tag, google searches, other info using standard Moodle blocks etc&lt;br /&gt;
* allow users to add other users as &amp;quot;friends&amp;quot;, which are displayed on their user profile pages&lt;br /&gt;
* think about controls to prevent abuse of these features in a school environment.&lt;br /&gt;
* allow users to specify an external RSS feed to their own external blog, parsing the feed insert entries (optionally selecting by tag) as internal blog entries for that user, adding new tags/permissions as specified, with links back to external entry etc.&lt;br /&gt;
* if time, explore deeper integrations with Youtube, Flickr, MySpace, Facebook etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Martin Dougiamas&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Luiz Eduardo Laydner Cruz&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Social Networking features|Social Networking features]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Moodle Voice===&lt;br /&gt;
&lt;br /&gt;
*Objective: Adapt Moodle interface to output the needed VoiceXML so you can navigate with your voice with a VoiceXML enabled browser, such as [http://www.opera.com/ Opera].&lt;br /&gt;
*[[Development:Voice_Project|Project Proposal]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student&#039;&#039;&#039;: 	Mayank Jain&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification&#039;&#039;&#039;: [[Development:Voice|Development:Voice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Other open projects still looking for students==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Roles interface improvements ===&lt;br /&gt;
&lt;br /&gt;
Improve the roles editing interface by making it more dynamic and flexible.  You can use the YUI library for ajax if you like, but there must be a good fall-back interface too.   Some ideas include:&lt;br /&gt;
&lt;br /&gt;
* Improve the order of the capabilities and implement better grouping.&lt;br /&gt;
* Make the groups of capabilities collapsible to make it easier to &amp;quot;zoom in&amp;quot; to a particular section.&lt;br /&gt;
* Add floating tooltip help when you hover over any given capability.&lt;br /&gt;
* Experiment with an (alternate) interface seeing the roles all side-by-side for easier comparison/editing.&lt;br /&gt;
* Implement a roles backup and restore system to allow site administrators to distribute useful roles in the moodle comunity (rather than having to describe the permissions setup)&lt;br /&gt;
* Analyse the problem carefully with feedback from the community for more ideas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integration with bibliographic systems such as Wikindx===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Design and construct an integration with Wikindx (or other open-source bibliographic tools, if appropriate).&lt;br /&gt;
&lt;br /&gt;
Teachers should be able to easily refer to wikindx bibliography items throughout a Moodle course, and be able to:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
** Possibly, allow some kind of direct searching of a wikindx database from within Moodle, so as to make it easier to refer to items&lt;br /&gt;
* Generate reading lists / bibliographies&lt;br /&gt;
* Allow export of the above into common machine-readable formats such as Bibtex or RIS. (Wikindx can perform this so again it&#039;s a question of hooking into, or expanding, wikindx functionality.)&lt;br /&gt;
&lt;br /&gt;
See also [[Development:Wikindx]] and [http://moodle.org/mod/forum/discuss.php?d=23022 this forum discussion] too&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Implement CATs in Moodle===&lt;br /&gt;
&lt;br /&gt;
[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&#039;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. &lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
# Make Moodle an even better teaching tool.&lt;br /&gt;
# Provide some good exemplars of how to do interesting things with database templates.&lt;br /&gt;
# Possibly highlight limitations in the database template system, that would require improvements to the database module code to overcome.&lt;br /&gt;
# One of the outcomes of this project could be some really good &#039;How to write a database template&#039; tutorial, which would be very valuable to the community.&lt;br /&gt;
&lt;br /&gt;
This is my (Tim Hunt&#039;s) idea, but I would not be interested in mentoring it. It would need to be someone who knows all about the database module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blog Assignment Type ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is it for?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blogs are inherently user owned and driven by definition, however teachers would like to have a way to use blogs as assignments in their courses, comment, grade, etc.&lt;br /&gt;
&lt;br /&gt;
A solution to this conundrum would be a new Assignment type that makes it possible for a student to easily submit the link one of their blogs to an assignment in a course, and have that blog entry privately graded and commented on by the instructor of that course. The blog entry itself remains public along with all of the student&#039;s other blogs. The tool would provide a time filter in the Assignment, so that the instructor could limit the blog entry posting dates that will be accepted (both to ensure &#039;fresh&#039; entries and to keep the list of entries the student chooses short for frequent student bloggers).&lt;br /&gt;
&lt;br /&gt;
I suggest a blog assignment type that functions as follows:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teacher:&#039;&#039;&#039;&lt;br /&gt;
Teacher creates a blog assignment, this puts a grade in the gradebook and provides an assignment link for students to see.&lt;br /&gt;
&lt;br /&gt;
The teacher can configure options to allow a blog entry posted in the last X days to be used for the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Students:&#039;&#039;&#039;&lt;br /&gt;
When students enter the assignment they see a drop down menu of all their current (blog entries posted in the last X days as chosen by the teacher) blog entries, and they choose one to satisfy the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assessment:&#039;&#039;&#039;&lt;br /&gt;
The teacher goes in to the Assignment, views the blogs that are linked from the assignment, leaves comments (the comments only show up to the student when they view the blog assignment), and gives a grade.&lt;br /&gt;
&lt;br /&gt;
The blog entries themselves stay on the student&#039;s blog, only the grades, links, and comments go in the assignment (optionally the assignment scrapes the student&#039;s blog and loads the full text in to store for backup and restore).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle Integrated Development Environment (Moodle IDE) ===&lt;br /&gt;
The objective of this project is to create a Moodle IDE based on Eclipse so that new developers can get to develop Moodle in less time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ideas&#039;&#039;&#039;&lt;br /&gt;
* First release: Eclipse + Plugins + Moodle splashscreen + CVS Configuration + Apache + MySQL + Moodle CVS code. All preconfigured and ready out of the box.&lt;br /&gt;
* Future&lt;br /&gt;
** Every X time, it checks for new versions of Moodle and packs it.&lt;br /&gt;
** Checkstyle plugin alike fo follow Moodle Design Guidelines.&lt;br /&gt;
** Development help (can be wiki pages to navigate offline)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
=== Moodle Multisite ===&lt;br /&gt;
The objective of this project is to make Moodle able to manage several Moodle sites with just one source code. This will help administrators of several sites to centralize code upgrades and &#039;&#039;technical problems&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ideas&#039;&#039;&#039;&lt;br /&gt;
* First release&lt;br /&gt;
** config.php will be a proxy that executes the concrete config file depending on the current url.&lt;br /&gt;
** The concrete config file will be under the directory /config and will have an arbitrary name created by the user.&lt;br /&gt;
* Future&lt;br /&gt;
** Create an XML file with all the pairs URL(n)-ConfigFile(1).&lt;br /&gt;
** Every time this file changes, it should be created the config.php file proxy.&lt;br /&gt;
** Develop a Web frontend to change this file, that can be just accessed by the super admin in every site.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
==Google Summer of Code 2006 Projects==&lt;br /&gt;
#[[Student projects/Presets for Database module|Presets for Database module project notes]]&lt;br /&gt;
#[[Student projects/Integrated bug tracker|Integrated bug tracker project notes]]&lt;br /&gt;
#[[Student projects/AJAX course format|AJAX course format project notes]]&lt;br /&gt;
#[[Student projects/Admin page cleanup|Admin page cleanup project notes]]&lt;br /&gt;
#[[Student projects/Global search|Global search project notes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Projects==&lt;br /&gt;
&lt;br /&gt;
#[[Student projects/ical|Calendar export to iCal]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Project]]&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Projects_for_new_developers&amp;diff=22699</id>
		<title>Projects for new developers</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Projects_for_new_developers&amp;diff=22699"/>
		<updated>2007-04-24T18:49:23Z</updated>

		<summary type="html">&lt;p&gt;David.horat: /* Other open projects still looking for students */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page currently lists the projects available Moodle&#039;s participation in the [http://code.google.com/soc Google Summer of Code 2007].   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.&lt;br /&gt;
&lt;br /&gt;
Current status:  Thank you to all the applicants!   Google have now confirmed the final selections and we have ten projects with a mentor and a student.  Here is a [http://moodle.org/mod/forum/discuss.php?d=69206 general discussion about the project].  Complete details are below.&lt;br /&gt;
&lt;br /&gt;
==Google Summer of Code 2007 Timeline==&lt;br /&gt;
* &#039;&#039;&#039;Starting now&#039;&#039;&#039;: construct detailed specifications for each project (see below), with feedback from the mentor and the Moodle community.  Some questions will be easy for your mentor to answer directly, but some you may have to post in the appropriate [http://moodle.org/course/view.php?id=5 Using Moodle] forums to gather and evaluate community feedback.&lt;br /&gt;
* &#039;&#039;&#039;May 31&#039;&#039;&#039;: Coding officially starts.  At this time you should have a bug in the [http://tracker.moodle.org Moodle Tracker] that breaks your project down into subtasks.  Please keep this tracker up to date with all your subsequent work - it&#039;s the best place for all asynchronous discussion with your mentor.&lt;br /&gt;
* &#039;&#039;&#039;July 9-16&#039;&#039;&#039;: Interim evaluation of code so far&lt;br /&gt;
* &#039;&#039;&#039;August 20&#039;&#039;&#039;: Coding should be completed &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Google Summer of Code 2007 Projects==&lt;br /&gt;
&lt;br /&gt;
The following projects are in no particular order!&lt;br /&gt;
&lt;br /&gt;
===Developing new question types for the quiz===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* Drag and drop versions of ordering and matching question types.&lt;br /&gt;
* Place a marker or draw a line on an image question types.&lt;br /&gt;
* Drag the missing words into the sentence/onto an image question type.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Tim Hunt&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Adriane Boyd&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/New question types|New question types]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Enterprise-level improvements===&lt;br /&gt;
&lt;br /&gt;
Here are a few things you could do to help Moodle run in a heavy environment (either big Moodles or many multiple Moodles).&lt;br /&gt;
&lt;br /&gt;
* Adapt all the DB installation and upgrade scripts to run from the command line, so fully scripted installations are possible without using the web interface.&lt;br /&gt;
&lt;br /&gt;
* Develop a profiling system for developers to use when testing their code.  Aim to spot and fix performance bottlenecks in Moodle with good reports and suggestions about what developers could do.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Penny Leach&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Dilan Anuruddha Karanachcharighe&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Enterprise-level improvements|Enterprise-level improvements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Chat revamp===&lt;br /&gt;
&lt;br /&gt;
mod/chat needs a bit of an overhaul. Possible interesting approaches:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Integrate Moodle with a Jabber backend, plus frontend glue. &lt;br /&gt;
** On the backend, we need to consider authentication, chatroom creation, and logging. &lt;br /&gt;
** On the frontend, ensuring that we can get Jabber clients started reliably on the end-user&#039;s machine, and  integrate a preexisting web-based Jabber client for Jabber-impaired users.&lt;br /&gt;
** Installation matter: a clear install HowTo for the Jabber + Moodle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [[User:Geoff Cant|Geoff Cant]], Martin Langhoff&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Thotage Piyasena&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Chat revamp|Chat revamp]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Messaging improvements===&lt;br /&gt;
&lt;br /&gt;
The Moodle messaging system in Moodle is a bit clunky and could use improvements to make it slicker and more efficient as a tool for messaging people within the Moodle environment.&lt;br /&gt;
&lt;br /&gt;
Functionality improvements:&lt;br /&gt;
* Add a messaging API class to the core of Moodle which all modules will start using for sending messages (currently they all format their own emails).&lt;br /&gt;
* Add output plugins to messaging so that users can choose exactly how to route their messages, especially when they aren&#039;t online at the time.  Initially the two plugins would be &amp;quot;browser&amp;quot; and &amp;quot;email&amp;quot;, but later there could be a jabber plugin, an IRC plugin etc)&lt;br /&gt;
&lt;br /&gt;
Gui improvements:&lt;br /&gt;
* Improve the main message GUI using AJAX (Moodle includes the YUI library so you&#039;d need to use that)&lt;br /&gt;
* Improve the messaging window to allow chats among three or more other people at once.&lt;br /&gt;
* GUI for the output plugins to allow users to set rules about each plugin independently, and also to select from incoming messages by type, by user or by moodle module.&lt;br /&gt;
* Improve the methods to search messages and find discussions from the past.&lt;br /&gt;
* Improve administrator auditing of message logs, including filtering etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Martin Dougiamas&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Luis Filipe Romão Rodrigues&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Messaging improvements|Messaging improvements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Automated grading for Computer Programming Assignments===&lt;br /&gt;
&lt;br /&gt;
The project here is to develop two things&lt;br /&gt;
&lt;br /&gt;
#A Moodle assignment plugin to handle the GUI and higher-level processes involved in submitting and grading a programming assignment&lt;br /&gt;
#An interface to an external 3rd party program (preferably an established, active open source project) to handle the actual analysis and grading of the source code.  It should have plugins to handle arbitrary languages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [[User:Nicolas Connault]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Arkaitz Garro&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Automated grading of programs|Automated grading of programs]]&lt;br /&gt;
&lt;br /&gt;
=== User Management Improvements ===&lt;br /&gt;
&lt;br /&gt;
* Improve the User features in moodle to allow bulk-operations. &lt;br /&gt;
** Create an interface to do bulk operations on users (e.g. delete users, reset passwords etc) This could potentially use an AJAX implementation for multiple filtering/selection of required students for bulk operations.&lt;br /&gt;
** Overhall the CSV upload features to allow more flexibility (more options, features to auto-generate more fields such as usernames)&lt;br /&gt;
* Enrolment&lt;br /&gt;
** Specify time of manual enrollments ([http://tracker.moodle.org/browse/MDL-8877 MDL-8877])&lt;br /&gt;
* Notes&lt;br /&gt;
** Allow teachers to put notes for each student in every course, much requested feature ([http://tracker.moodle.org/browse/MDL-7077 MDL-7077])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Yu Zhang&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Andrei Bautu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/User Management Improvements|User Management Improvements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Email interface to Moodle ===&lt;br /&gt;
&lt;br /&gt;
The idea is to let people reply naturally to email they receive from Moodle to change settings or add further comments into forums etc.   Moodle activities can then be accessed like a mailing list.&lt;br /&gt;
&lt;br /&gt;
* Add a setting so admins can specify if they want an email interface enabled.  Without it, none of the following is active and Moodle functions just as it does today.&lt;br /&gt;
* Improve the outgoing emails in Moodle to contain a unique and robust code in the headers and potentially also in the subject line (switchable by user setting) that encrypts information about the receiver, the activity instance and the specific data.  For example, all the information to securely identify a forum post.&lt;br /&gt;
* Write a PHP script designed to run from the commandline as part of an email filter, that accepts emails on standard input, parses them and then calls a function in the relevant module.  For example forum_incoming_email() in mod/forum/lib.php.&lt;br /&gt;
* Write function for forum module (at least) to parse the content of the email and add it as a post from the user.   Other modules can be worked on if there&#039;s time ... resources could be sent back as attachments, quizzes could send questions and accept multiple choice answers, the course could send back a listing of activities with further codes for each one, etc.&lt;br /&gt;
* Security is essential!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Martin Langhoff&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Peter Boswood&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Email interface|Email interface]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Secure RSS feeds ===&lt;br /&gt;
&lt;br /&gt;
Currently RSS is less than useful because:&lt;br /&gt;
* Either we can&#039;t publish private information to the outside world because it&#039;s too sensitive.&lt;br /&gt;
* We open up sensitive information to the outside world&lt;br /&gt;
&lt;br /&gt;
We should add codes to make the RSS URLs practically impossible to guess, much the same way as Google Calendar does it.&lt;br /&gt;
&lt;br /&gt;
* Overhaul all the RSS feeds in Moodle to make use of a long hash-like string in the URL for identification (Forums, Data etc).&lt;br /&gt;
* Store these codes in a new field per-user and per-course.   &lt;br /&gt;
* Add GUIs to let the user recreate their code to something else should they suspect a breach.&lt;br /&gt;
* Add RSS to other areas of Moodle such as the participants &amp;quot;last logins&amp;quot; and the activity logs.&lt;br /&gt;
* Explore/research other methods of opening up RSS in a safe way to the outside world.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Petr Škoda&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Udit Sajjanhar&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Secure RSS feeds|Secure RSS feeds]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Social Networking features ===&lt;br /&gt;
&lt;br /&gt;
Explore the possibilities of social networking features by expanding the user profile page:&lt;br /&gt;
&lt;br /&gt;
* add user tags that describe interests etc, as links to &amp;quot;interest pages&amp;quot;  eg constructivism&lt;br /&gt;
* interest pages that contain information about all the people who share that interest, as well as blog entries that use that tag, google searches, other info using standard Moodle blocks etc&lt;br /&gt;
* allow users to add other users as &amp;quot;friends&amp;quot;, which are displayed on their user profile pages&lt;br /&gt;
* think about controls to prevent abuse of these features in a school environment.&lt;br /&gt;
* allow users to specify an external RSS feed to their own external blog, parsing the feed insert entries (optionally selecting by tag) as internal blog entries for that user, adding new tags/permissions as specified, with links back to external entry etc.&lt;br /&gt;
* if time, explore deeper integrations with Youtube, Flickr, MySpace, Facebook etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Martin Dougiamas&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Luiz Eduardo Laydner Cruz&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Social Networking features|Social Networking features]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Moodle Voice===&lt;br /&gt;
&lt;br /&gt;
*Objective: Adapt Moodle interface to output the needed VoiceXML so you can navigate with your voice with a VoiceXML enabled browser, such as [http://www.opera.com/ Opera].&lt;br /&gt;
*[[Development:Voice_Project|Project Proposal]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student&#039;&#039;&#039;: 	Mayank Jain&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification&#039;&#039;&#039;: [[Development:Voice|Development:Voice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Other open projects still looking for students==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Roles interface improvements ===&lt;br /&gt;
&lt;br /&gt;
Improve the roles editing interface by making it more dynamic and flexible.  You can use the YUI library for ajax if you like, but there must be a good fall-back interface too.   Some ideas include:&lt;br /&gt;
&lt;br /&gt;
* Improve the order of the capabilities and implement better grouping.&lt;br /&gt;
* Make the groups of capabilities collapsible to make it easier to &amp;quot;zoom in&amp;quot; to a particular section.&lt;br /&gt;
* Add floating tooltip help when you hover over any given capability.&lt;br /&gt;
* Experiment with an (alternate) interface seeing the roles all side-by-side for easier comparison/editing.&lt;br /&gt;
* Implement a roles backup and restore system to allow site administrators to distribute useful roles in the moodle comunity (rather than having to describe the permissions setup)&lt;br /&gt;
* Analyse the problem carefully with feedback from the community for more ideas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integration with bibliographic systems such as Wikindx===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Design and construct an integration with Wikindx (or other open-source bibliographic tools, if appropriate).&lt;br /&gt;
&lt;br /&gt;
Teachers should be able to easily refer to wikindx bibliography items throughout a Moodle course, and be able to:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
** Possibly, allow some kind of direct searching of a wikindx database from within Moodle, so as to make it easier to refer to items&lt;br /&gt;
* Generate reading lists / bibliographies&lt;br /&gt;
* Allow export of the above into common machine-readable formats such as Bibtex or RIS. (Wikindx can perform this so again it&#039;s a question of hooking into, or expanding, wikindx functionality.)&lt;br /&gt;
&lt;br /&gt;
See also [[Development:Wikindx]] and [http://moodle.org/mod/forum/discuss.php?d=23022 this forum discussion] too&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Implement CATs in Moodle===&lt;br /&gt;
&lt;br /&gt;
[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&#039;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. &lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
# Make Moodle an even better teaching tool.&lt;br /&gt;
# Provide some good exemplars of how to do interesting things with database templates.&lt;br /&gt;
# Possibly highlight limitations in the database template system, that would require improvements to the database module code to overcome.&lt;br /&gt;
# One of the outcomes of this project could be some really good &#039;How to write a database template&#039; tutorial, which would be very valuable to the community.&lt;br /&gt;
&lt;br /&gt;
This is my (Tim Hunt&#039;s) idea, but I would not be interested in mentoring it. It would need to be someone who knows all about the database module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blog Assignment Type ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is it for?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blogs are inherently user owned and driven by definition, however teachers would like to have a way to use blogs as assignments in their courses, comment, grade, etc.&lt;br /&gt;
&lt;br /&gt;
A solution to this conundrum would be a new Assignment type that makes it possible for a student to easily submit the link one of their blogs to an assignment in a course, and have that blog entry privately graded and commented on by the instructor of that course. The blog entry itself remains public along with all of the student&#039;s other blogs. The tool would provide a time filter in the Assignment, so that the instructor could limit the blog entry posting dates that will be accepted (both to ensure &#039;fresh&#039; entries and to keep the list of entries the student chooses short for frequent student bloggers).&lt;br /&gt;
&lt;br /&gt;
I suggest a blog assignment type that functions as follows:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teacher:&#039;&#039;&#039;&lt;br /&gt;
Teacher creates a blog assignment, this puts a grade in the gradebook and provides an assignment link for students to see.&lt;br /&gt;
&lt;br /&gt;
The teacher can configure options to allow a blog entry posted in the last X days to be used for the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Students:&#039;&#039;&#039;&lt;br /&gt;
When students enter the assignment they see a drop down menu of all their current (blog entries posted in the last X days as chosen by the teacher) blog entries, and they choose one to satisfy the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assessment:&#039;&#039;&#039;&lt;br /&gt;
The teacher goes in to the Assignment, views the blogs that are linked from the assignment, leaves comments (the comments only show up to the student when they view the blog assignment), and gives a grade.&lt;br /&gt;
&lt;br /&gt;
The blog entries themselves stay on the student&#039;s blog, only the grades, links, and comments go in the assignment (optionally the assignment scrapes the student&#039;s blog and loads the full text in to store for backup and restore).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle Integrated Development Environment (Moodle IDE) ===&lt;br /&gt;
The objective of this project is to create a Moodle IDE based on Eclipse so that new developers can get to develop Moodle in less time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ideas&#039;&#039;&#039;&lt;br /&gt;
* First release: Eclipse + Plugins + Moodle splashscreen + CVS Configuration + Apache + MySQL + Moodle CVS code. All preconfigured and ready out of the box.&lt;br /&gt;
* Future&lt;br /&gt;
** Every X time, it checks for new versions of Moodle and packs it.&lt;br /&gt;
** Checkstyle plugin alike fo follow Moodle Design Guidelines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Moodle Multisite ===&lt;br /&gt;
The objective of this project is to make Moodle able to manage several Moodle sites with just one source code. This will help administrators of several sites to centralize code upgrades and &#039;&#039;technical problems&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ideas&#039;&#039;&#039;&lt;br /&gt;
* First release&lt;br /&gt;
** config.php will be a proxy that executes the concrete config file depending on the current url.&lt;br /&gt;
** The concrete config file will be under the directory /config and will have an arbitrary name created by the user.&lt;br /&gt;
* Future&lt;br /&gt;
** Create an XML file with all the pairs URL(n)-ConfigFile(1).&lt;br /&gt;
** Every time this file changes, it should be created the config.php file proxy.&lt;br /&gt;
** Develop a Web frontend to change this file, that can be just accessed by the super admin in every site.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
==Google Summer of Code 2006 Projects==&lt;br /&gt;
#[[Student projects/Presets for Database module|Presets for Database module project notes]]&lt;br /&gt;
#[[Student projects/Integrated bug tracker|Integrated bug tracker project notes]]&lt;br /&gt;
#[[Student projects/AJAX course format|AJAX course format project notes]]&lt;br /&gt;
#[[Student projects/Admin page cleanup|Admin page cleanup project notes]]&lt;br /&gt;
#[[Student projects/Global search|Global search project notes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Projects==&lt;br /&gt;
&lt;br /&gt;
#[[Student projects/ical|Calendar export to iCal]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Project]]&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Projects_for_new_developers&amp;diff=22408</id>
		<title>Projects for new developers</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Projects_for_new_developers&amp;diff=22408"/>
		<updated>2007-04-16T08:40:35Z</updated>

		<summary type="html">&lt;p&gt;David.horat: /* Moodle Voice */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page currently lists the projects available Moodle&#039;s participation in the [http://code.google.com/soc Google Summer of Code 2007].   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.&lt;br /&gt;
&lt;br /&gt;
Current status:  Thank you to all the applicants!   Google have now confirmed the final selections and we have ten projects with a mentor and a student.  Here is a [http://moodle.org/mod/forum/discuss.php?d=69206 general discussion about the project].  Complete details are below.&lt;br /&gt;
&lt;br /&gt;
==Google Summer of Code 2007 Timeline==&lt;br /&gt;
* &#039;&#039;&#039;Starting now&#039;&#039;&#039;: construct detailed specifications for each project (see below), with feedback from the mentor and the Moodle community.  Some questions will be easy for your mentor to answer directly, but some you may have to post in the appropriate [http://moodle.org/course/view.php?id=5 Using Moodle] forums to gather and evaluate community feedback.&lt;br /&gt;
* &#039;&#039;&#039;May 31&#039;&#039;&#039;: Coding officially starts.  At this time you should have a bug in the [http://tracker.moodle.org Moodle Tracker] that breaks your project down into subtasks.  Please keep this tracker up to date with all your subsequent work - it&#039;s the best place for all asynchronous discussion with your mentor.&lt;br /&gt;
* &#039;&#039;&#039;July 9-16&#039;&#039;&#039;: Interim evaluation of code so far&lt;br /&gt;
* &#039;&#039;&#039;August 20&#039;&#039;&#039;: Coding should be completed &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Google Summer of Code 2007 Projects==&lt;br /&gt;
&lt;br /&gt;
The following projects are in no particular order!&lt;br /&gt;
&lt;br /&gt;
===Developing new question types for the quiz===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* Drag and drop versions of ordering and matching question types.&lt;br /&gt;
* Place a marker or draw a line on an image question types.&lt;br /&gt;
* Drag the missing words into the sentence/onto an image question type.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Tim Hunt&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Adriane Boyd&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/New question types|New question types]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Enterprise-level improvements===&lt;br /&gt;
&lt;br /&gt;
Here are a few things you could do to help Moodle run in a heavy environment (either big Moodles or many multiple Moodles).&lt;br /&gt;
&lt;br /&gt;
* Adapt all the DB installation and upgrade scripts to run from the command line, so fully scripted installations are possible without using the web interface.&lt;br /&gt;
&lt;br /&gt;
* Develop a profiling system for developers to use when testing their code.  Aim to spot and fix performance bottlenecks in Moodle with good reports and suggestions about what developers could do.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Penny Leach&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Dilan Anuruddha Karanachcharighe&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Enterprise-level improvements|Enterprise-level improvements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Chat revamp===&lt;br /&gt;
&lt;br /&gt;
mod/chat needs a bit of an overhaul. Possible interesting approaches:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Integrate Moodle with a Jabber backend, plus frontend glue. &lt;br /&gt;
** On the backend, we need to consider authentication, chatroom creation, and logging. &lt;br /&gt;
** On the frontend, ensuring that we can get Jabber clients started reliably on the end-user&#039;s machine, and  integrate a preexisting web-based Jabber client for Jabber-impaired users.&lt;br /&gt;
** Installation matter: a clear install HowTo for the Jabber + Moodle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [[User:Geoff Cant|Geoff Cant]], Martin Langhoff&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Thotage Piyasena&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Chat revamp|Chat revamp]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Messaging improvements===&lt;br /&gt;
&lt;br /&gt;
The Moodle messaging system in Moodle is a bit clunky and could use improvements to make it slicker and more efficient as a tool for messaging people within the Moodle environment.&lt;br /&gt;
&lt;br /&gt;
Functionality improvements:&lt;br /&gt;
* Add a messaging API class to the core of Moodle which all modules will start using for sending messages (currently they all format their own emails).&lt;br /&gt;
* Add output plugins to messaging so that users can choose exactly how to route their messages, especially when they aren&#039;t online at the time.  Initially the two plugins would be &amp;quot;browser&amp;quot; and &amp;quot;email&amp;quot;, but later there could be a jabber plugin, an IRC plugin etc)&lt;br /&gt;
&lt;br /&gt;
Gui improvements:&lt;br /&gt;
* Improve the main message GUI using AJAX (Moodle includes the YUI library so you&#039;d need to use that)&lt;br /&gt;
* Improve the messaging window to allow chats among three or more other people at once.&lt;br /&gt;
* GUI for the output plugins to allow users to set rules about each plugin independently, and also to select from incoming messages by type, by user or by moodle module.&lt;br /&gt;
* Improve the methods to search messages and find discussions from the past.&lt;br /&gt;
* Improve administrator auditing of message logs, including filtering etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Martin Dougiamas&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Luis Filipe Romão Rodrigues&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Messaging improvements|Messaging improvements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Automated grading for Computer Programming Assignments===&lt;br /&gt;
&lt;br /&gt;
The project here is to develop two things&lt;br /&gt;
&lt;br /&gt;
#A Moodle assignment plugin to handle the GUI and higher-level processes involved in submitting and grading a programming assignment&lt;br /&gt;
#An interface to an external 3rd party program (preferably an established, active open source project) to handle the actual analysis and grading of the source code.  It should have plugins to handle arbitrary languages.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [[User:Nicolas Connault]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Arkaitz Garro&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Automated grading of programs|Automated grading of programs]]&lt;br /&gt;
&lt;br /&gt;
=== User Management Improvements ===&lt;br /&gt;
&lt;br /&gt;
* Improve the User features in moodle to allow bulk-operations. &lt;br /&gt;
** Create an interface to do bulk operations on users (e.g. delete users, reset passwords etc) This could potentially use an AJAX implementation for multiple filtering/selection of required students for bulk operations.&lt;br /&gt;
** Overhall the CSV upload features to allow more flexibility (more options, features to auto-generate more fields such as usernames)&lt;br /&gt;
* Enrolment&lt;br /&gt;
** Specify time of manual enrollments ([http://tracker.moodle.org/browse/MDL-8877 MDL-8877])&lt;br /&gt;
* Notes&lt;br /&gt;
** Allow teachers to put notes for each student in every course, much requested feature ([http://tracker.moodle.org/browse/MDL-7077 MDL-7077])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Yu Zhang&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Andrei Bautu&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/User Management Improvements|User Management Improvements]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Email interface to Moodle ===&lt;br /&gt;
&lt;br /&gt;
The idea is to let people reply naturally to email they receive from Moodle to change settings or add further comments into forums etc.   Moodle activities can then be accessed like a mailing list.&lt;br /&gt;
&lt;br /&gt;
* Add a setting so admins can specify if they want an email interface enabled.  Without it, none of the following is active and Moodle functions just as it does today.&lt;br /&gt;
* Improve the outgoing emails in Moodle to contain a unique and robust code in the headers and potentially also in the subject line (switchable by user setting) that encrypts information about the receiver, the activity instance and the specific data.  For example, all the information to securely identify a forum post.&lt;br /&gt;
* Write a PHP script designed to run from the commandline as part of an email filter, that accepts emails on standard input, parses them and then calls a function in the relevant module.  For example forum_incoming_email() in mod/forum/lib.php.&lt;br /&gt;
* Write function for forum module (at least) to parse the content of the email and add it as a post from the user.   Other modules can be worked on if there&#039;s time ... resources could be sent back as attachments, quizzes could send questions and accept multiple choice answers, the course could send back a listing of activities with further codes for each one, etc.&lt;br /&gt;
* Security is essential!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Martin Langhoff&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Peter Boswood&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Email interface|Email interface]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Secure RSS feeds ===&lt;br /&gt;
&lt;br /&gt;
Currently RSS is less than useful because:&lt;br /&gt;
* Either we can&#039;t publish private information to the outside world because it&#039;s too sensitive.&lt;br /&gt;
* We open up sensitive information to the outside world&lt;br /&gt;
&lt;br /&gt;
We should add codes to make the RSS URLs practically impossible to guess, much the same way as Google Calendar does it.&lt;br /&gt;
&lt;br /&gt;
* Overhaul all the RSS feeds in Moodle to make use of a long hash-like string in the URL for identification (Forums, Data etc).&lt;br /&gt;
* Store these codes in a new field per-user and per-course.   &lt;br /&gt;
* Add GUIs to let the user recreate their code to something else should they suspect a breach.&lt;br /&gt;
* Add RSS to other areas of Moodle such as the participants &amp;quot;last logins&amp;quot; and the activity logs.&lt;br /&gt;
* Explore/research other methods of opening up RSS in a safe way to the outside world.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Petr Škoda&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Udit Sajjanhar&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Secure RSS feeds|Secure RSS feeds]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Social Networking features ===&lt;br /&gt;
&lt;br /&gt;
Explore the possibilities of social networking features by expanding the user profile page:&lt;br /&gt;
&lt;br /&gt;
* add user tags that describe interests etc, as links to &amp;quot;interest pages&amp;quot;  eg constructivism&lt;br /&gt;
* interest pages that contain information about all the people who share that interest, as well as blog entries that use that tag, google searches, other info using standard Moodle blocks etc&lt;br /&gt;
* allow users to add other users as &amp;quot;friends&amp;quot;, which are displayed on their user profile pages&lt;br /&gt;
* think about controls to prevent abuse of these features in a school environment.&lt;br /&gt;
* allow users to specify an external RSS feed to their own external blog, parsing the feed insert entries (optionally selecting by tag) as internal blog entries for that user, adding new tags/permissions as specified, with links back to external entry etc.&lt;br /&gt;
* if time, explore deeper integrations with Youtube, Flickr, MySpace, Facebook etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Martin Dougiamas&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student:&#039;&#039;&#039; Luiz Eduardo Laydner Cruz&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification:&#039;&#039;&#039; [[Student projects/Social Networking features|Social Networking features]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Moodle Voice===&lt;br /&gt;
&lt;br /&gt;
*Objective: Adapt Moodle interface to output the needed VoiceXML so you can navigate with your voice with a VoiceXML enabled browser, such as [http://www.opera.com/ Opera].&lt;br /&gt;
*[[Development:Voice_Project|Project Proposal]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Student&#039;&#039;&#039;: 	Mayank Jain&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Full Specification&#039;&#039;&#039;: [[Development:Voice|Development:Voice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Other open projects still looking for students==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Roles interface improvements ===&lt;br /&gt;
&lt;br /&gt;
Improve the roles editing interface by making it more dynamic and flexible.  You can use the YUI library for ajax if you like, but there must be a good fall-back interface too.   Some ideas include:&lt;br /&gt;
&lt;br /&gt;
* Improve the order of the capabilities and implement better grouping.&lt;br /&gt;
* Make the groups of capabilities collapsible to make it easier to &amp;quot;zoom in&amp;quot; to a particular section.&lt;br /&gt;
* Add floating tooltip help when you hover over any given capability.&lt;br /&gt;
* Experiment with an (alternate) interface seeing the roles all side-by-side for easier comparison/editing.&lt;br /&gt;
* Implement a roles backup and restore system to allow site administrators to distribute useful roles in the moodle comunity (rather than having to describe the permissions setup)&lt;br /&gt;
* Analyse the problem carefully with feedback from the community for more ideas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integration with bibliographic systems such as Wikindx===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Design and construct an integration with Wikindx (or other open-source bibliographic tools, if appropriate).&lt;br /&gt;
&lt;br /&gt;
Teachers should be able to easily refer to wikindx bibliography items throughout a Moodle course, and be able to:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
** Possibly, allow some kind of direct searching of a wikindx database from within Moodle, so as to make it easier to refer to items&lt;br /&gt;
* Generate reading lists / bibliographies&lt;br /&gt;
* Allow export of the above into common machine-readable formats such as Bibtex or RIS. (Wikindx can perform this so again it&#039;s a question of hooking into, or expanding, wikindx functionality.)&lt;br /&gt;
&lt;br /&gt;
See also [[Development:Wikindx]] and [http://moodle.org/mod/forum/discuss.php?d=23022 this forum discussion] too&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Implement CATs in Moodle===&lt;br /&gt;
&lt;br /&gt;
[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&#039;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. &lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
# Make Moodle an even better teaching tool.&lt;br /&gt;
# Provide some good exemplars of how to do interesting things with database templates.&lt;br /&gt;
# Possibly highlight limitations in the database template system, that would require improvements to the database module code to overcome.&lt;br /&gt;
# One of the outcomes of this project could be some really good &#039;How to write a database template&#039; tutorial, which would be very valuable to the community.&lt;br /&gt;
&lt;br /&gt;
This is my (Tim Hunt&#039;s) idea, but I would not be interested in mentoring it. It would need to be someone who knows all about the database module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Blog Assignment Type ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is it for?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blogs are inherently user owned and driven by definition, however teachers would like to have a way to use blogs as assignments in their courses, comment, grade, etc.&lt;br /&gt;
&lt;br /&gt;
A solution to this conundrum would be a new Assignment type that makes it possible for a student to easily submit the link one of their blogs to an assignment in a course, and have that blog entry privately graded and commented on by the instructor of that course. The blog entry itself remains public along with all of the student&#039;s other blogs. The tool would provide a time filter in the Assignment, so that the instructor could limit the blog entry posting dates that will be accepted (both to ensure &#039;fresh&#039; entries and to keep the list of entries the student chooses short for frequent student bloggers).&lt;br /&gt;
&lt;br /&gt;
I suggest a blog assignment type that functions as follows:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teacher:&#039;&#039;&#039;&lt;br /&gt;
Teacher creates a blog assignment, this puts a grade in the gradebook and provides an assignment link for students to see.&lt;br /&gt;
&lt;br /&gt;
The teacher can configure options to allow a blog entry posted in the last X days to be used for the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Students:&#039;&#039;&#039;&lt;br /&gt;
When students enter the assignment they see a drop down menu of all their current (blog entries posted in the last X days as chosen by the teacher) blog entries, and they choose one to satisfy the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assessment:&#039;&#039;&#039;&lt;br /&gt;
The teacher goes in to the Assignment, views the blogs that are linked from the assignment, leaves comments (the comments only show up to the student when they view the blog assignment), and gives a grade.&lt;br /&gt;
&lt;br /&gt;
The blog entries themselves stay on the student&#039;s blog, only the grades, links, and comments go in the assignment (optionally the assignment scrapes the student&#039;s blog and loads the full text in to store for backup and restore).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Google Summer of Code 2006 Projects==&lt;br /&gt;
#[[Student projects/Presets for Database module|Presets for Database module project notes]]&lt;br /&gt;
#[[Student projects/Integrated bug tracker|Integrated bug tracker project notes]]&lt;br /&gt;
#[[Student projects/AJAX course format|AJAX course format project notes]]&lt;br /&gt;
#[[Student projects/Admin page cleanup|Admin page cleanup project notes]]&lt;br /&gt;
#[[Student projects/Global search|Global search project notes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Projects==&lt;br /&gt;
&lt;br /&gt;
#[[Student projects/ical|Calendar export to iCal]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Project]]&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice_ToDo&amp;diff=22301</id>
		<title>Development:Voice ToDo</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice_ToDo&amp;diff=22301"/>
		<updated>2007-04-12T09:39:20Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
&lt;br /&gt;
Here we will put the tasks we need to complete. If no tasks assigned, then keep on with the timeplan.&lt;br /&gt;
&lt;br /&gt;
== ToDo ==&lt;br /&gt;
* Create a user and password for moodle.org, docs.moodle.org and tracker.moodle.org. Better use the same user and password for all.&lt;br /&gt;
* Select tools to be used.&lt;br /&gt;
** David Horat: I recommend using Eclipse + PHPEclipse plugin. See: [[Setting_up_Eclipse_for_Moodle_development]]&lt;br /&gt;
* Begin to study Moodle development documentation: [[Development:Voice_Moodle]]&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice_Timeplan&amp;diff=22287</id>
		<title>Development:Voice Timeplan</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice_Timeplan&amp;diff=22287"/>
		<updated>2007-04-12T09:03:33Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
&lt;br /&gt;
== Project ==&lt;br /&gt;
* 14th May - 20th May: Analysis (1 week)&lt;br /&gt;
** Extract requirements: study Moodle output and code to choose what to make voice enabled&lt;br /&gt;
*** Identify navigation(links) to be voice enabled.&lt;br /&gt;
*** Identify forms to be voice enabled.&lt;br /&gt;
*** Identify Text to be converted to speech to convey information through speech.&lt;br /&gt;
** Begin project webpage, documentation and logs&lt;br /&gt;
* 21th May - 3rd June: Design (2 weeks)&lt;br /&gt;
** Make an Architectural Design&lt;br /&gt;
** Make an Implementation Proposal&lt;br /&gt;
* 4th June - 5th August: Implementation (9 weeks)&lt;br /&gt;
** Implement Navigational Links (5 weeks)&lt;br /&gt;
*** Learn implementation intricacies VoiceXML(1 week)&lt;br /&gt;
*** Subtasks (to be decided in analysis phase)(4 week)&lt;br /&gt;
** Implement forms to be voice enabled(4 weeks)&lt;br /&gt;
* 6th August - 17th August: Documentation (2 weeks)&lt;br /&gt;
** Beta testing&lt;br /&gt;
** Developer documentation&lt;br /&gt;
** Moodle administrator documentation&lt;br /&gt;
** Future roadmap and design plans&lt;br /&gt;
* 18th August - 31th August: Revision and Documentation&lt;br /&gt;
&lt;br /&gt;
== Mentor ==&lt;br /&gt;
* 16th April - 27th April: teach the student about the community (about 30 mins per day)&lt;br /&gt;
* 28th April - 13th May: create basic documentation about the project and tools to be used (about 1 hour per day)&lt;br /&gt;
* 14th May - 17th August (about 1-2 hours per day)&lt;br /&gt;
** Solve student questions&lt;br /&gt;
** Improve project design&lt;br /&gt;
** Code quality assurance&lt;br /&gt;
** Commit to Moodle CVS&lt;br /&gt;
** Beta testing&lt;br /&gt;
* 20th August - 31th August: Marketing (1-2 hours per day)&lt;br /&gt;
&lt;br /&gt;
== Student ==&lt;br /&gt;
* 16th April - 27th April: learn about the community (about 30 mins per day)&lt;br /&gt;
* 14th May - 17th August: the project itself (about 7-8 hours per day)&lt;br /&gt;
* 20th August - 31th August: revision and marketing (2 hours per day)&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
* [http://code.google.com/support/bin/answer.py?answer=60325&amp;amp;topic=10729 Google Summer of Code 2007 Timeplan]&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice_ToDo&amp;diff=22285</id>
		<title>Development:Voice ToDo</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice_ToDo&amp;diff=22285"/>
		<updated>2007-04-12T08:58:15Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
&lt;br /&gt;
Here we will put the tasks we need to complete. If no tasks assigned, then keep on with the timeplan.&lt;br /&gt;
&lt;br /&gt;
== ToDo ==&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice_Timeplan&amp;diff=22284</id>
		<title>Development:Voice Timeplan</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice_Timeplan&amp;diff=22284"/>
		<updated>2007-04-12T08:52:23Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
&lt;br /&gt;
== Project ==&lt;br /&gt;
* 14th May - 20th May: Analysis (1 week)&lt;br /&gt;
** Extract requirements: study Moodle output and code to choose what to make voice enabled&lt;br /&gt;
*** Identify navigation(links) to be voice enabled.&lt;br /&gt;
*** Identify forms to be voice enabled.&lt;br /&gt;
*** Identify Text to be converted to speech to convey information through speech.&lt;br /&gt;
** Begin project webpage, documentation and logs&lt;br /&gt;
* 21th May - 3rd June: Design (2 weeks)&lt;br /&gt;
** Make an Architectural Design&lt;br /&gt;
** Make an Implementation Proposal&lt;br /&gt;
* 4th June - 5th August: Implementation (9 weeks)&lt;br /&gt;
** Implement Navigational Links (5 weeks)&lt;br /&gt;
*** Learn implementation intricacies VoiceXML(1 week)&lt;br /&gt;
*** Subtasks (to be decided in analysis phase)(4 week)&lt;br /&gt;
** Implement forms to be voice enabled(4 weeks)&lt;br /&gt;
* 6th August - 17th August: Documentation (2 weeks)&lt;br /&gt;
** Beta testing&lt;br /&gt;
** Developer documentation&lt;br /&gt;
** Moodle administrator documentation&lt;br /&gt;
** Future roadmap and design plans&lt;br /&gt;
* 18th August - 31th August: Revision and Documentation&lt;br /&gt;
&lt;br /&gt;
== Mentor ==&lt;br /&gt;
* 16th April - 27th April: teach the student about the community (about 30 mins per day)&lt;br /&gt;
* 28th April - 13th May: create basic documentation about the project and tools to be used (about 1 hour per day)&lt;br /&gt;
* 14th May - 17th August (about 1-2 hours per day)&lt;br /&gt;
** Solve student questions&lt;br /&gt;
** Improve project design&lt;br /&gt;
** Code quality assurance&lt;br /&gt;
** Commit to Moodle CVS&lt;br /&gt;
** Beta testing&lt;br /&gt;
* 20th August - 31th August: Marketing (1-2 hours per day)&lt;br /&gt;
&lt;br /&gt;
== Student ==&lt;br /&gt;
* 16th April - 27th April: learn about the community (about 30 mins per day)&lt;br /&gt;
* 14th May - 17th August: the project itself (about 7-8 hours per day)&lt;br /&gt;
* 20th August - 31th August: revision and marketing (2 hours per day)&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice_Timeplan&amp;diff=22283</id>
		<title>Development:Voice Timeplan</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice_Timeplan&amp;diff=22283"/>
		<updated>2007-04-12T08:51:41Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Project ==&lt;br /&gt;
* 14th May - 20th May: Analysis (1 week)&lt;br /&gt;
** Extract requirements: study Moodle output and code to choose what to make voice enabled&lt;br /&gt;
*** Identify navigation(links) to be voice enabled.&lt;br /&gt;
*** Identify forms to be voice enabled.&lt;br /&gt;
*** Identify Text to be converted to speech to convey information through speech.&lt;br /&gt;
** Begin project webpage, documentation and logs&lt;br /&gt;
* 21th May - 3rd June: Design (2 weeks)&lt;br /&gt;
** Make an Architectural Design&lt;br /&gt;
** Make an Implementation Proposal&lt;br /&gt;
* 4th June - 5th August: Implementation (9 weeks)&lt;br /&gt;
** Implement Navigational Links (5 weeks)&lt;br /&gt;
*** Learn implementation intricacies VoiceXML(1 week)&lt;br /&gt;
*** Subtasks (to be decided in analysis phase)(4 week)&lt;br /&gt;
** Implement forms to be voice enabled(4 weeks)&lt;br /&gt;
* 6th August - 17th August: Documentation (2 weeks)&lt;br /&gt;
** Beta testing&lt;br /&gt;
** Developer documentation&lt;br /&gt;
** Moodle administrator documentation&lt;br /&gt;
** Future roadmap and design plans&lt;br /&gt;
* 18th August - 31th August: Revision and Documentation&lt;br /&gt;
&lt;br /&gt;
== Mentor ==&lt;br /&gt;
* 16th April - 27th April: teach the student about the community (about 30 mins per day)&lt;br /&gt;
* 28th April - 13th May: create basic documentation about the project and tools to be used (about 1 hour per day)&lt;br /&gt;
* 14th May - 17th August (about 1-2 hours per day)&lt;br /&gt;
** Solve student questions&lt;br /&gt;
** Improve project design&lt;br /&gt;
** Code quality assurance&lt;br /&gt;
** Commit to Moodle CVS&lt;br /&gt;
** Beta testing&lt;br /&gt;
* 20th August - 31th August: Marketing (1-2 hours per day)&lt;br /&gt;
&lt;br /&gt;
== Student ==&lt;br /&gt;
* 16th April - 27th April: learn about the community (about 30 mins per day)&lt;br /&gt;
* 14th May - 17th August: the project itself (about 7-8 hours per day)&lt;br /&gt;
* 20th August - 31th August: revision and marketing (2 hours per day)&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice_GsocFormslibExercise&amp;diff=22093</id>
		<title>Development:Voice GsocFormslibExercise</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice_GsocFormslibExercise&amp;diff=22093"/>
		<updated>2007-04-04T10:08:40Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Write a form using the [http://moodle.cvs.sourceforge.net/moodle/moodle/lib/formslib.php?view=markup Formslib class] and its  [[Development:lib/formslib.php|documentation]].&#039;&#039;&#039;&lt;br /&gt;
## &#039;&#039;&#039;Deadline&#039;&#039;&#039;: 8th of April, 2007&lt;br /&gt;
### Estimated time to finish: 4 hours&lt;br /&gt;
## There should be two files: example.php and example_form.php&lt;br /&gt;
### &#039;&#039;&#039;example.php&#039;&#039;&#039;: It should invoke the form the first time called. If the form is the caller, then just present the parameters and their values on screen (to test if it has worked).&lt;br /&gt;
### &#039;&#039;&#039;example_form.php&#039;&#039;&#039;: The form itself. It should be a class that extends &amp;quot;moodleform&amp;quot; from &amp;quot;formslib.php&amp;quot;. Note that this file should not be invoked from the browser.&lt;br /&gt;
## The form should have the next fields&lt;br /&gt;
### name: max 20 chars, obligatory&lt;br /&gt;
### password: max 20 chars, it should be presented with asterisks, obligatory&lt;br /&gt;
### email: max 20 chars, obligatory, preferably with validation&lt;br /&gt;
### comment: textfield, max 250 chars, optional&lt;br /&gt;
## You can use the next &#039;&#039;&#039;examples&#039;&#039;&#039; (and all you can find) from the Moodle CVS:&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password_form.php?view=markup&lt;br /&gt;
## &#039;&#039;&#039;FAQ&#039;&#039;&#039;&lt;br /&gt;
### Do I have to install the whole Moodle? No, just use the formslib.php file and any other if needed.&lt;br /&gt;
### Do I need any tools? You can use any tools as you need. In the project we will work probably with Eclipse and phpEclipse, although it can be discussed.&lt;br /&gt;
### Can I strip down the formslib.php file so it doesn´t have any references to other Moodle files? Yes you can, although you should state somewhere the changes so I can see them.&lt;br /&gt;
### Does it need to work? Well, let´s just say that if it works, it gets more points. :)&lt;br /&gt;
### Where do I find the Moodle CVS? [http://moodle.cvs.sourceforge.net/moodle/moodle/ Here is the Moodle CVS]&lt;br /&gt;
### What aspects will be taken into account?&lt;br /&gt;
#### Well documented&lt;br /&gt;
#### Easy to understand&lt;br /&gt;
#### It should work&lt;br /&gt;
#### It should not have security breaches or if it has, they should to be documented&lt;br /&gt;
### What Coding Guidelines should I use?&lt;br /&gt;
#### Output HTML code should be [http://www.w3.org/TR/xhtml1/ XHTML 1.0 Strict].&lt;br /&gt;
#### Use 4 spaces for indentation (tabs are forbidden). Use correctly nested indentations.&lt;br /&gt;
#### Document every function: parameters, return value and functionality.&lt;br /&gt;
#### Specify the system you used for development and testing: Operating System, browser and IDE.&lt;br /&gt;
#### We suggest using [http://www.phpdoc.org/ PHP Doc] documentation format, the standard Moodle documentation format, although it is not required at this stage. It is very similar to Javadoc.&lt;br /&gt;
#### We suggest using [https://docs.moodle.org/en/Coding Moodle Coding Guidelines], although it is not required at this stage.&lt;br /&gt;
## &#039;&#039;&#039;Finally&#039;&#039;&#039;, you can either send me the files with two screenshots of them running (the first time called and second time called) or you can set it up in your webserver so I can see them running, plus a zip or tar.gz file with the files so I can download them. Please, &#039;&#039;&#039;do not&#039;&#039;&#039; include temporal files!&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice_GsocFormslibExercise&amp;diff=22092</id>
		<title>Development:Voice GsocFormslibExercise</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice_GsocFormslibExercise&amp;diff=22092"/>
		<updated>2007-04-04T09:53:45Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Write a form using the [http://moodle.cvs.sourceforge.net/moodle/moodle/lib/formslib.php?view=markup Formslib class] and its  [[Development:lib/formslib.php|documentation]].&#039;&#039;&#039;&lt;br /&gt;
## &#039;&#039;&#039;Deadline&#039;&#039;&#039;: 8th of April, 2007&lt;br /&gt;
### Estimated time to finish: 4 hours&lt;br /&gt;
## There should be two files: example.php and example_form.php&lt;br /&gt;
### &#039;&#039;&#039;example.php&#039;&#039;&#039;: It should invoke the form the first time called. If the form is the caller, then just present the parameters and their values on screen (to test if it has worked).&lt;br /&gt;
### &#039;&#039;&#039;example_form.php&#039;&#039;&#039;: The form itself. It should be a class that extends &amp;quot;moodleform&amp;quot; from &amp;quot;formslib.php&amp;quot;. Note that this file should not be invoked from the browser.&lt;br /&gt;
## The form should have the next fields&lt;br /&gt;
### name: max 20 chars, obligatory&lt;br /&gt;
### password: max 20 chars, it should be presented with asterisks, obligatory&lt;br /&gt;
### email: max 20 chars, obligatory, preferably with validation&lt;br /&gt;
### comment: textfield, max 250 chars, optional&lt;br /&gt;
## You can use the next &#039;&#039;&#039;examples&#039;&#039;&#039; (and all you can find) from the Moodle CVS:&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password_form.php?view=markup&lt;br /&gt;
## &#039;&#039;&#039;FAQ&#039;&#039;&#039;&lt;br /&gt;
### Do I have to install the whole Moodle? No, just use the formslib.php file and any other if needed.&lt;br /&gt;
### Do I need any tools? You can use any tools as you need. In the project we will work probably with Eclipse and phpEclipse, although it can be discussed.&lt;br /&gt;
### Can I strip down the formslib.php file so it doesn´t have any references to other Moodle files? Yes you can, although you should state somewhere the changes so I can see them.&lt;br /&gt;
### Does it need to work? Well, let´s just say that if it works, it gets more points. :)&lt;br /&gt;
### Where do I find the Moodle CVS? [http://moodle.cvs.sourceforge.net/moodle/moodle/ Here is the Moodle CVS]&lt;br /&gt;
### What aspects will be taken into account?&lt;br /&gt;
#### Well documented&lt;br /&gt;
#### Easy to understand&lt;br /&gt;
#### It should work&lt;br /&gt;
#### It should not have security breaches or if it has, they should to be documented&lt;br /&gt;
### What Coding Guidelines should I use?&lt;br /&gt;
#### Output HTML code should be [http://www.w3.org/TR/xhtml1/ XHTML 1.0 Strict]&lt;br /&gt;
#### Use 4 spaces for indentation (tabs are forbidden)&lt;br /&gt;
#### Document every function: parameters, return value and functionality&lt;br /&gt;
#### We suggest using [http://www.phpdoc.org/ PHP Doc] documentation format, the standard Moodle documentation format, although it is not required at this stage. It is very similar to Javadoc.&lt;br /&gt;
#### We suggest using [https://docs.moodle.org/en/Coding Moodle Coding Guidelines], although it is not required at this stage&lt;br /&gt;
## &#039;&#039;&#039;Finally&#039;&#039;&#039;, you can either send me the files with two screenshots of them running (the first time called and second time called) or you can set it up in your webserver so I can see them running, plus a zip or tar.gz file with the files so I can download them. Please, &#039;&#039;&#039;do not&#039;&#039;&#039; include temporal files!&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice_GsocFormslibExercise&amp;diff=22091</id>
		<title>Development:Voice GsocFormslibExercise</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice_GsocFormslibExercise&amp;diff=22091"/>
		<updated>2007-04-04T09:45:42Z</updated>

		<summary type="html">&lt;p&gt;David.horat: FAQ 7: Coding Guidelines added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Write a form using the [http://moodle.cvs.sourceforge.net/moodle/moodle/lib/formslib.php?view=markup Formslib class] and its  [[Development:lib/formslib.php|documentation]].&#039;&#039;&#039;&lt;br /&gt;
## &#039;&#039;&#039;Deadline&#039;&#039;&#039;: 8th of April, 2007&lt;br /&gt;
### Estimated time to finish: 4 hours&lt;br /&gt;
## There should be two files: example.php and example_form.php&lt;br /&gt;
### &#039;&#039;&#039;example.php&#039;&#039;&#039;: It should invoke the form the first time called. If the form is the caller, then just present the parameters and their values on screen (to test if it has worked).&lt;br /&gt;
### &#039;&#039;&#039;example_form.php&#039;&#039;&#039;: The form itself. It should be a class that extends &amp;quot;moodleform&amp;quot; from &amp;quot;formslib.php&amp;quot;. Note that this file should not be invoked from the browser.&lt;br /&gt;
## The form should have the next fields&lt;br /&gt;
### name: max 20 chars, obligatory&lt;br /&gt;
### password: max 20 chars, it should be presented with asterisks, obligatory&lt;br /&gt;
### email: max 20 chars, obligatory, preferably with validation&lt;br /&gt;
### comment: textfield, max 250 chars, optional&lt;br /&gt;
## You can use the next &#039;&#039;&#039;examples&#039;&#039;&#039; (and all you can find) from the Moodle CVS:&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password_form.php?view=markup&lt;br /&gt;
## &#039;&#039;&#039;FAQ&#039;&#039;&#039;&lt;br /&gt;
### Do I have to install the whole Moodle? No, just use the formslib.php file and any other if needed.&lt;br /&gt;
### Do I need any tools? You can use any tools as you need. In the project we will work probably with Eclipse and phpEclipse, although it can be discussed.&lt;br /&gt;
### Can I strip down the formslib.php file so it doesn´t have any references to other Moodle files? Yes you can, although you should state somewhere the changes so I can see them.&lt;br /&gt;
### Does it need to work? Well, let´s just say that if it works, it gets more points. :)&lt;br /&gt;
### Where do I find the Moodle CVS? [http://moodle.cvs.sourceforge.net/moodle/moodle/ Here is the Moodle CVS]&lt;br /&gt;
### What aspects will be taken into account?&lt;br /&gt;
#### Well documented&lt;br /&gt;
#### Easy to understand&lt;br /&gt;
#### It should work&lt;br /&gt;
#### It should not have security breaches or if it has, they should to be documented&lt;br /&gt;
### What Coding Guidelines should I use?&lt;br /&gt;
#### Output HTML code should be [http://www.w3.org/TR/xhtml1/ XHTML 1.0 Strict] or [http://www.w3.org/TR/1999/REC-html401-19991224/ HTML 4.01 Strict]&lt;br /&gt;
#### Use 4 spaces for indentation (tabs are forbidden)&lt;br /&gt;
#### We suggest using [http://www.phpdoc.org/ PHP Doc] documentation format, the standard Moodle document format, although it is not required at this stage&lt;br /&gt;
#### We suggest using [https://docs.moodle.org/en/Coding Moodle Coding Guidelines], although it is not required at this stage&lt;br /&gt;
## &#039;&#039;&#039;Finally&#039;&#039;&#039;, you can either send me the files with two screenshots of them running (the first time called and second time called) or you can set it up in your webserver so I can see them running, plus a zip or tar.gz file with the files so I can download them. Please, &#039;&#039;&#039;do not&#039;&#039;&#039; include temporal files!&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Projects_for_new_developers&amp;diff=22090</id>
		<title>Projects for new developers</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Projects_for_new_developers&amp;diff=22090"/>
		<updated>2007-04-04T08:40:20Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page currently lists the projects available Moodle&#039;s participation in the [http://code.google.com/soc Google Summer of Code 2007].   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.&lt;br /&gt;
&lt;br /&gt;
Current status:  Applications to Google SOC are now over: we received 83 applications!   The mentors are currently considering and voting on these and Google will announce the final students on April 12th.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Google Summer of Code 2007 Projects==&lt;br /&gt;
&lt;br /&gt;
===Projects with Mentors===&lt;br /&gt;
&lt;br /&gt;
The following projects are in no particular order!&lt;br /&gt;
&lt;br /&gt;
====Developing new question types for the quiz====&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* Drag and drop versions of ordering and matching question types.&lt;br /&gt;
* Place a marker or draw a line on an image question types.&lt;br /&gt;
* Drag the missing words into the sentence/onto an image question type.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Tim Hunt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Enterprise-level improvements====&lt;br /&gt;
&lt;br /&gt;
Here are a few things you could do to help Moodle run in a heavy environment (either big Moodles or many multiple Moodles).&lt;br /&gt;
&lt;br /&gt;
* Adapt all the DB installation and upgrade scripts to run from the command line, so fully scripted installations are possible without using the web interface.&lt;br /&gt;
&lt;br /&gt;
* Develop a profiling system for developers to use when testing their code.  Aim to spot and fix performance bottlenecks in Moodle with good reports and suggestions about what developers could do.&lt;br /&gt;
&lt;br /&gt;
Mentor: Martin Langhoff or Penny Leach&lt;br /&gt;
&lt;br /&gt;
====Chat revamp====&lt;br /&gt;
&lt;br /&gt;
mod/chat needs a bit of an overhaul. Possible interesting approaches:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* Integrate Moodle with a Jabber backend, plus frontend glue. &lt;br /&gt;
** On the backend, we need to consider authentication, chatroom creation, and logging. &lt;br /&gt;
** On the frontend, ensuring that we can get Jabber clients started reliably on the end-user&#039;s machine, and  integrate a preexisting web-based Jabber client for Jabber-impaired users.&lt;br /&gt;
** Installation matter: a clear install HowTo for the Jabber + Moodle.&lt;br /&gt;
&lt;br /&gt;
Mentors: Martin Langhoff, [[User:Geoff Cant|Geoff Cant]] (ejabberd)&lt;br /&gt;
&lt;br /&gt;
Notes from Geoff (who&#039;s a keen Erlang hacker):&lt;br /&gt;
&lt;br /&gt;
:ejabberd (http://ejabberd.jabber.ru/) is the worlds most scalable jabber server (tested to 600k concurrent connections  :)  and written in Erlang so I&#039;m keen on it and able to hack on it.&lt;br /&gt;
&lt;br /&gt;
:ejabberd supports http bind (http://www.xmpp.org/extensions/xep-0124.html) which will allow the integration of a jabber client directly into moodle web pages. ejabberd also supports traditional GUI jabber clients.&lt;br /&gt;
&lt;br /&gt;
:We could hack ejabberd to authenticate against a moodle and probably create MUC/groupchats automatically based on moodle course information.&lt;br /&gt;
&lt;br /&gt;
:jwchat (http://jwchat.sourceforge.net) seems like it could provide the basis for a generic http jabber client for moodle. The chat revamp could be two projects - one PHP/HTML to integrate jwchat into moodle and an Erlang one to alter ejabberd to do SSO, auth, automatic roster creation and so on.&lt;br /&gt;
&lt;br /&gt;
====Messaging improvements====&lt;br /&gt;
&lt;br /&gt;
The Moodle messaging system in Moodle is a bit clunky and could use improvements to make it slicker and more efficient as a tool for messaging people within the Moodle environment.&lt;br /&gt;
&lt;br /&gt;
Functionality improvements:&lt;br /&gt;
* Add a messaging API class to the core of Moodle which all modules will start using for sending messages (currently they all format their own emails).&lt;br /&gt;
* Add output plugins to messaging so that users can choose exactly how to route their messages, especially when they aren&#039;t online at the time.  Initially the two plugins would be &amp;quot;browser&amp;quot; and &amp;quot;email&amp;quot;, but later there could be a jabber plugin, an IRC plugin etc)&lt;br /&gt;
&lt;br /&gt;
Gui improvements:&lt;br /&gt;
* Improve the main message GUI using AJAX (Moodle includes the YUI library so you&#039;d need to use that)&lt;br /&gt;
* Improve the messaging window to allow chats among three or more other people at once.&lt;br /&gt;
* GUI for the output plugins to allow users to set rules about each plugin independently, and also to select from incoming messages by type, by user or by moodle module.&lt;br /&gt;
* Improve the methods to search messages and find discussions from the past.&lt;br /&gt;
* Improve administrator auditing of message logs, including filtering etc.&lt;br /&gt;
&lt;br /&gt;
Mentors: Martin Dougiamas, Dan Poltawski (and others?)&lt;br /&gt;
&lt;br /&gt;
====Automated grading for Computer Programming Assignments====&lt;br /&gt;
&lt;br /&gt;
From Arkaitz Garro &amp;lt;arkaitz.garro@gmail.com&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
My name is Arkaitz Garro, and I&#039;m actually studing computer science&lt;br /&gt;
engineering at Basque Country University (Spain).&lt;br /&gt;
&lt;br /&gt;
As a part of my master thesis (graduating final work), I&#039;m developing a plugin&lt;br /&gt;
for Moodle that consists in automated grading system designed to process&lt;br /&gt;
computer programming assignments, bassed on actual Assignment plugin.&lt;br /&gt;
&lt;br /&gt;
Computer Programming students will submit their programming assignments&lt;br /&gt;
(developed in Java, C++, C# or other OOP language) to Moodle, and our plugin&lt;br /&gt;
will test that the output of these programs is correct (or not). Besides that,&lt;br /&gt;
our plugin will test security and performance issues before and during the&lt;br /&gt;
grading automation. &lt;br /&gt;
&lt;br /&gt;
From Xing Shi &amp;lt;paradiseHIT@gmail.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I also want to join this project, and I have developed a similar plugin (I call it &amp;quot;PA-Plugin&amp;quot;) one years ago. But it can only work for language C and C++, and only for one source file(such as main.c), not for a project. Till now it works very well on our department web. And I want to develop more functions for the plugin, such as add the java language, and make a more better architecture.&lt;br /&gt;
&lt;br /&gt;
Mainly, PA-Plugin realizes two functions: delivery of programming assignments by teachers and submission of programming assignments by students.&lt;br /&gt;
&lt;br /&gt;
To the teachers, PA-Plugin can set lots of parameters to the programming assignments, such as compiler type, grader type, max time and the max memory limitation, the resubmit times, the test data for the grader, and the grade standard data. Also the teacher can regrade all the programming assignments when one (or many) parameter is changed.&lt;br /&gt;
&lt;br /&gt;
To the students, the PA-Plugin will firstly detective the submitted file&#039;s type, size. If OK, then the server will compile the file to produce the bin-file, and the grader will execute the bin-file and grade the output, such as acm(Association for Computing Machinery).&lt;br /&gt;
&lt;br /&gt;
comment from [[User:Canizales|Jorge Cañizales]]:&lt;br /&gt;
&lt;br /&gt;
Well, I don&#039;t know if this is the place to put it, but we at Universidad de Las Palmas de Gran Canaria, and two other universities in Spain, have been using a system to do this for 7 years now. The software is called GAP, its author is Juan Carlos Rodríguez and it can be found [http://www.gedlc.ulpgc.es/~juanca/gap/index.html here]. The software right now isn&#039;t open source (possibly non free, either), and I don&#039;t know if Juan Carlos is willing to release the source to the OS community, but I think it&#039;s worth trying asking him.&lt;br /&gt;
&lt;br /&gt;
Its 7 years of actual use with hundreds of students each year have made it a very mature software, very student- and teacher-oriented. I remember it was already very comfortable when I used it as a student 5 and 6 years ago. When you submit your project (can be multiple files), the tool compiles it and reports to the student the errors and warnings found (because the compiler &amp;amp; libraries &amp;amp; O.S. used by the teacher have not necesarilly to match the ones used by the student, and may be stricter). Your submited files are accesible (the software presents them sintax-coloured) and you can resubmit them until the assignemet deadline. If I don&#039;t remember wrong, the system is also able to run your project through teacher-written unit tests, to help the task of the teacher. On grading, the teacher can add per-file comments the student can access when the grading is done.&lt;br /&gt;
&lt;br /&gt;
GAP&#039;s web page also says it is now able to handle group tasks. I&#039;ve not used this feature though.&lt;br /&gt;
&lt;br /&gt;
So I believe that if Juan Carlos is OK with donating his software to the OS community, this project could be very strong from the beginning. The student&#039;s project could consist on integrating GAP into Moodle&#039;s technology, or porting its features and &amp;quot;savoir-faire&amp;quot; if both technologies are incompatible enough.&lt;br /&gt;
&lt;br /&gt;
I&#039;m completely new to the developer community here, so don&#039;t know your feelings about this sort of things. What do you think of this?&lt;br /&gt;
&lt;br /&gt;
Mentor: Penny Leach&lt;br /&gt;
&lt;br /&gt;
==== User Management Improvements ====&lt;br /&gt;
&lt;br /&gt;
* Improve the User features in moodle to allow bulk-operations. &lt;br /&gt;
** Create an interface to do bulk operations on users (e.g. delete users, reset passwords etc) This could potentially use an AJAX implementation for multiple filtering/selection of required students for bulk operations.&lt;br /&gt;
** Overhall the CSV upload features to allow more flexibility (more options, features to auto-generate more fields such as usernames)&lt;br /&gt;
* Enrolment&lt;br /&gt;
** Specify time of manual enrollments ([http://tracker.moodle.org/browse/MDL-8877 MDL-8877])&lt;br /&gt;
* Notes&lt;br /&gt;
** Allow teachers to put notes for each student in every course, much requested feature ([http://tracker.moodle.org/browse/MDL-7077 MDL-7077])&lt;br /&gt;
Mentor: Yu Zhang&lt;br /&gt;
&lt;br /&gt;
==== Email interface to Moodle ====&lt;br /&gt;
&lt;br /&gt;
The idea is to let people reply naturally to email they receive from Moodle to change settings or add further comments into forums etc.   Moodle activities can then be accessed like a mailing list.&lt;br /&gt;
&lt;br /&gt;
* Add a setting so admins can specify if they want an email interface enabled.  Without it, none of the following is active and Moodle functions just as it does today.&lt;br /&gt;
* Improve the outgoing emails in Moodle to contain a unique and robust code in the headers and potentially also in the subject line (switchable by user setting) that encrypts information about the receiver, the activity instance and the specific data.  For example, all the information to securely identify a forum post.&lt;br /&gt;
* Write a PHP script designed to run from the commandline as part of an email filter, that accepts emails on standard input, parses them and then calls a function in the relevant module.  For example forum_incoming_email() in mod/forum/lib.php.&lt;br /&gt;
* Write function for forum module (at least) to parse the content of the email and add it as a post from the user.   Other modules can be worked on if there&#039;s time ... resources could be sent back as attachments, quizzes could send questions and accept multiple choice answers, the course could send back a listing of activities with further codes for each one, etc.&lt;br /&gt;
* Security is essential!&lt;br /&gt;
&lt;br /&gt;
Mentor: Martin Dougiamas&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Secure RSS feeds ====&lt;br /&gt;
&lt;br /&gt;
Currently RSS is less than useful because:&lt;br /&gt;
* Either we can&#039;t publish private information to the outside world because it&#039;s too sensitive.&lt;br /&gt;
* We open up sensitive information to the outside world&lt;br /&gt;
&lt;br /&gt;
We should add codes to make the RSS URLs practically impossible to guess, much the same way as Google Calendar does it.&lt;br /&gt;
&lt;br /&gt;
* Overhaul all the RSS feeds in Moodle to make use of a long hash-like string in the URL for identification (Forums, Data etc).&lt;br /&gt;
* Store these codes in a new field per-user and per-course.   &lt;br /&gt;
* Add GUIs to let the user recreate their code to something else should they suspect a breach.&lt;br /&gt;
* Add RSS to other areas of Moodle such as the participants &amp;quot;last logins&amp;quot; and the activity logs.&lt;br /&gt;
* Explore/research other methods of opening up RSS in a safe way to the outside world.&lt;br /&gt;
&lt;br /&gt;
Mentor: Petr Škoda&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== External RSS feeds into Blogs ====&lt;br /&gt;
&lt;br /&gt;
A lot of people already have their own blogs and don&#039;t want to use Moodle&#039;s blogs.  Fair enough!&lt;br /&gt;
&lt;br /&gt;
This project would add user settings allowing users to specify an external RSS feed to their own external blog.  Moodle will parse the feed and insert entries as internal blog entries for that user.   other features include:&lt;br /&gt;
&lt;br /&gt;
* Specifying tags that identify required posts in that feed (eg &amp;quot;school&amp;quot;).&lt;br /&gt;
* Specifying default access permissions and Moodle tags for those entries.&lt;br /&gt;
* Keeping links to the external entry, so that when you want to &amp;quot;comment&amp;quot; on the blog entry you are taken to that external blog system.&lt;br /&gt;
* Tools for admins to monitor information flow.&lt;br /&gt;
* Other things the community may ask for.&lt;br /&gt;
&lt;br /&gt;
Mentor: Martin Dougiamas&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Social Networking features ====&lt;br /&gt;
&lt;br /&gt;
Explore the possibilities of social networking features by expanding the user profile page:&lt;br /&gt;
&lt;br /&gt;
* add user tags that describe interests etc, as links to &amp;quot;interest pages&amp;quot;  eg constructivism&lt;br /&gt;
* interest pages that contain information about all the people who share that interest, as well as blog entries that use that tag, google searches, other info using standard Moodle blocks etc&lt;br /&gt;
* allow users to add other users as &amp;quot;friends&amp;quot;, which are displayed on their user profile pages&lt;br /&gt;
* think about controls to prevent abuse of these features in a school environment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mentor: Martin Dougiamas&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Roles interface improvements ====&lt;br /&gt;
&lt;br /&gt;
Improve the roles editing interface by making it more dynamic and flexible.  You can use the YUI library for ajax if you like, but there must be a good fall-back interface too.   Some ideas include:&lt;br /&gt;
&lt;br /&gt;
* Improve the order of the capabilities and implement better grouping.&lt;br /&gt;
* Make the groups of capabilities collapsible to make it easier to &amp;quot;zoom in&amp;quot; to a particular section.&lt;br /&gt;
* Add floating tooltip help when you hover over any given capability.&lt;br /&gt;
* Experiment with an (alternate) interface seeing the roles all side-by-side for easier comparison/editing.&lt;br /&gt;
* Implement a roles backup and restore system to allow site administrators to distribute useful roles in the moodle comunity (rather than having to describe the permissions setup)&lt;br /&gt;
* Analyse the problem carefully with feedback from the community for more ideas.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  Nicolas Connault&lt;br /&gt;
&lt;br /&gt;
====Moodle Voice====&lt;br /&gt;
&lt;br /&gt;
*Moodle Wiki page [[Development:Voice|Development:Voice]]&lt;br /&gt;
*[[Development:Voice_Project|Project Proposal]]&lt;br /&gt;
*Objective: Adapt Moodle interface to output the needed VoiceXML so you can navigate with your voice with a VoiceXML enabled browser, such as [http://www.opera.com/ Opera].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=153093&amp;amp;course=1 David Horat]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Projects without Mentors===&lt;br /&gt;
&lt;br /&gt;
====Integration with bibliographic systems such as Wikindx====&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Design and construct an integration with Wikindx (or other open-source bibliographic tools, if appropriate).&lt;br /&gt;
&lt;br /&gt;
Teachers should be able to easily refer to wikindx bibliography items throughout a Moodle course, and be able to:&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
** Possibly, allow some kind of direct searching of a wikindx database from within Moodle, so as to make it easier to refer to items&lt;br /&gt;
* Generate reading lists / bibliographies&lt;br /&gt;
* Allow export of the above into common machine-readable formats such as Bibtex or RIS. (Wikindx can perform this so again it&#039;s a question of hooking into, or expanding, wikindx functionality.)&lt;br /&gt;
&lt;br /&gt;
See also [[Development:Wikindx]] and [http://moodle.org/mod/forum/discuss.php?d=23022 this forum discussion] too&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Implement CATs in Moodle====&lt;br /&gt;
&lt;br /&gt;
[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&#039;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. &lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
# Make Moodle an even better teaching tool.&lt;br /&gt;
# Provide some good exemplars of how to do interesting things with database templates.&lt;br /&gt;
# Possibly highlight limitations in the database template system, that would require improvements to the database module code to overcome.&lt;br /&gt;
# One of the outcomes of this project could be some really good &#039;How to write a database template&#039; tutorial, which would be very valuable to the community.&lt;br /&gt;
&lt;br /&gt;
This is my (Tim Hunt&#039;s) idea, but I would not be interested in mentoring it. It would need to be someone who knows all about the database module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Blog Assignment Type ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What is it for?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blogs are inherently user owned and driven by definition, however teachers would like to have a way to use blogs as assignments in their courses, comment, grade, etc.&lt;br /&gt;
&lt;br /&gt;
A solution to this conundrum would be a new Assignment type that makes it possible for a student to easily submit the link one of their blogs to an assignment in a course, and have that blog entry privately graded and commented on by the instructor of that course. The blog entry itself remains public along with all of the student&#039;s other blogs. The tool would provide a time filter in the Assignment, so that the instructor could limit the blog entry posting dates that will be accepted (both to ensure &#039;fresh&#039; entries and to keep the list of entries the student chooses short for frequent student bloggers).&lt;br /&gt;
&lt;br /&gt;
I suggest a blog assignment type that functions as follows:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teacher:&#039;&#039;&#039;&lt;br /&gt;
Teacher creates a blog assignment, this puts a grade in the gradebook and provides an assignment link for students to see.&lt;br /&gt;
&lt;br /&gt;
The teacher can configure options to allow a blog entry posted in the last X days to be used for the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Students:&#039;&#039;&#039;&lt;br /&gt;
When students enter the assignment they see a drop down menu of all their current (blog entries posted in the last X days as chosen by the teacher) blog entries, and they choose one to satisfy the assignment.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assessment:&#039;&#039;&#039;&lt;br /&gt;
The teacher goes in to the Assignment, views the blogs that are linked from the assignment, leaves comments (the comments only show up to the student when they view the blog assignment), and gives a grade.&lt;br /&gt;
&lt;br /&gt;
The blog entries themselves stay on the student&#039;s blog, only the grades, links, and comments go in the assignment (optionally the assignment scrapes the student&#039;s blog and loads the full text in to store for backup and restore).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Google Summer of Code 2006 Projects==&lt;br /&gt;
#[[Student projects/Presets for Database module|Presets for Database module project notes]]&lt;br /&gt;
#[[Student projects/Integrated bug tracker|Integrated bug tracker project notes]]&lt;br /&gt;
#[[Student projects/AJAX course format|AJAX course format project notes]]&lt;br /&gt;
#[[Student projects/Admin page cleanup|Admin page cleanup project notes]]&lt;br /&gt;
#[[Student projects/Global search|Global search project notes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Projects==&lt;br /&gt;
&lt;br /&gt;
#[[Student projects/ical|Calendar export to iCal]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Project]]&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice_GsocFormslibExercise&amp;diff=22089</id>
		<title>Development:Voice GsocFormslibExercise</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice_GsocFormslibExercise&amp;diff=22089"/>
		<updated>2007-04-04T08:36:44Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Write a form using the [http://moodle.cvs.sourceforge.net/moodle/moodle/lib/formslib.php?view=markup Formslib class] and its  [[Development:lib/formslib.php|documentation]].&#039;&#039;&#039;&lt;br /&gt;
## &#039;&#039;&#039;Deadline&#039;&#039;&#039;: 8th of April, 2007&lt;br /&gt;
### Estimated time to finish: 4 hours&lt;br /&gt;
## There should be two files: example.php and example_form.php&lt;br /&gt;
### &#039;&#039;&#039;example.php&#039;&#039;&#039;: It should invoke the form the first time called. If the form is the caller, then just present the parameters and their values on screen (to test if it has worked).&lt;br /&gt;
### &#039;&#039;&#039;example_form.php&#039;&#039;&#039;: The form itself. It should be a class that extends &amp;quot;moodleform&amp;quot; from &amp;quot;formslib.php&amp;quot;. Note that this file should not be invoked from the browser.&lt;br /&gt;
## The form should have the next fields&lt;br /&gt;
### name: max 20 chars, obligatory&lt;br /&gt;
### password: max 20 chars, it should be presented with asterisks, obligatory&lt;br /&gt;
### email: max 20 chars, obligatory, preferably with validation&lt;br /&gt;
### comment: textfield, max 250 chars, optional&lt;br /&gt;
## You can use the next &#039;&#039;&#039;examples&#039;&#039;&#039; (and all you can find) from the Moodle CVS:&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password_form.php?view=markup&lt;br /&gt;
## &#039;&#039;&#039;FAQ&#039;&#039;&#039;&lt;br /&gt;
### Do I have to install the whole Moodle? No, just use the formslib.php file and any other if needed.&lt;br /&gt;
### Do I need any tools? You can use any tools as you need. In the project we will work probably with Eclipse and phpEclipse, although it can be discussed.&lt;br /&gt;
### Can I strip down the formslib.php file so it doesn´t have any references to other Moodle files? Yes you can, although you should state somewhere the changes so I can see them.&lt;br /&gt;
### Does it need to work? Well, let´s just say that if it works, it gets more points. :)&lt;br /&gt;
### Where do I find the Moodle CVS? [http://moodle.cvs.sourceforge.net/moodle/moodle/ Here is the Moodle CVS]&lt;br /&gt;
### What aspects will be taken into account?&lt;br /&gt;
#### Well documented&lt;br /&gt;
#### Easy to understand&lt;br /&gt;
#### It should work&lt;br /&gt;
#### It should not have security breaches or if it has, they should to be documented&lt;br /&gt;
## &#039;&#039;&#039;Finally&#039;&#039;&#039;, you can either send me the files with two screenshots of them running (the first time called and second time called) or you can set it up in your webserver so I can see them running, plus a zip or tar.gz file with the files so I can download them.&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice_GsocFormslibExercise&amp;diff=22060</id>
		<title>Development:Voice GsocFormslibExercise</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice_GsocFormslibExercise&amp;diff=22060"/>
		<updated>2007-04-03T11:14:58Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Write a form using the [http://moodle.cvs.sourceforge.net/moodle/moodle/lib/formslib.php?view=markup Formslib class] and its  [[Development:lib/formslib.php|documentation]].&#039;&#039;&#039;&lt;br /&gt;
## &#039;&#039;&#039;Deadline&#039;&#039;&#039;: 8th of April, 2007&lt;br /&gt;
### Estimated time to finish: 4 hours&lt;br /&gt;
## There should be two files: example.php and example_form.php&lt;br /&gt;
### &#039;&#039;&#039;example.php&#039;&#039;&#039;: It should invoke the form the first time called. If the form is the caller, then just present the parameters and their values on screen (to test if it has worked).&lt;br /&gt;
### &#039;&#039;&#039;example_form.php&#039;&#039;&#039;: The form itself. It should be a class that extends &amp;quot;moodleform&amp;quot; from &amp;quot;formslib.php&amp;quot;. Note that this file should not be invoked from the browser.&lt;br /&gt;
## The form should have the next fields&lt;br /&gt;
### name: max 20 chars, obligatory&lt;br /&gt;
### password: max 20 chars, it should be presented with asterisks, obligatory&lt;br /&gt;
### email: max 20 chars, obligatory, preferably with validation&lt;br /&gt;
### comment: textfield, max 250 chars, optional&lt;br /&gt;
## You can use the next &#039;&#039;&#039;examples&#039;&#039;&#039; (and all you can find) from the Moodle CVS:&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password_form.php?view=markup&lt;br /&gt;
## &#039;&#039;&#039;FAQ&#039;&#039;&#039;&lt;br /&gt;
### Do I have to install the whole Moodle? No, just use the formslib.php file and any other if needed.&lt;br /&gt;
### Do I need any tools? You can use any tools as you need. In the project we will work probably with Eclipse and phpEclipse, although it can be discussed.&lt;br /&gt;
### Can I strip down the formslib.php file so it doesn´t have any references to other Moodle files? Yes you can, although you should state somewhere the changes so I can see them.&lt;br /&gt;
### Does it need to work? Well, let´s just say that if it works, it gets more points. :)&lt;br /&gt;
### Where do I find the Moodle CVS? [http://moodle.cvs.sourceforge.net/moodle/moodle/ Here is the Moodle CVS]&lt;br /&gt;
### What aspects will be taken into account?&lt;br /&gt;
#### It should be well documented&lt;br /&gt;
#### It should work&lt;br /&gt;
#### It should not have security breaches or if it has, they should to be documented&lt;br /&gt;
## &#039;&#039;&#039;Finally&#039;&#039;&#039;, you can either send me the files with two screenshots of them running (the first time called and second time called) or you can set it up in your webserver so I can see them running, plus a zip or tar.gz file with the files so I can download them.&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice_GsocFormslibExercise&amp;diff=22047</id>
		<title>Development:Voice GsocFormslibExercise</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice_GsocFormslibExercise&amp;diff=22047"/>
		<updated>2007-04-02T10:45:28Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Write a form using the [http://moodle.cvs.sourceforge.net/moodle/moodle/lib/formslib.php?view=markup Formslib class] and its  [[Development:lib/formslib.php|documentation]].&#039;&#039;&#039;&lt;br /&gt;
## &#039;&#039;&#039;Deadline&#039;&#039;&#039;: 8th of April, 2007&lt;br /&gt;
### Estimated time to finish: 4 hours&lt;br /&gt;
## There should be two files: example.php and example_form.php&lt;br /&gt;
### &#039;&#039;&#039;example.php&#039;&#039;&#039;: It should invoke the form the first time called. If the form is the caller, then just present the parameters and their values on screen (to test if it has worked).&lt;br /&gt;
### &#039;&#039;&#039;example_form.php&#039;&#039;&#039;: The form itself. It should be a class that extends &amp;quot;moodleform&amp;quot; from &amp;quot;formslib.php&amp;quot;. Note that this file should not be invoked from the browser.&lt;br /&gt;
## The form should have the next fields&lt;br /&gt;
### name: max 20 chars, obligatory&lt;br /&gt;
### password: max 20 chars, it should be presented with asterisks, obligatory&lt;br /&gt;
### email: max 20 chars, obligatory, preferably with validation&lt;br /&gt;
### comment: textfield, max 250 chars, optional&lt;br /&gt;
## You can use the next &#039;&#039;&#039;examples&#039;&#039;&#039; (and all you can find) from the Moodle CVS:&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password_form.php?view=markup&lt;br /&gt;
## &#039;&#039;&#039;FAQ&#039;&#039;&#039;&lt;br /&gt;
### Do I have to install the whole Moodle? No, just use the formslib.php file and any other if needed.&lt;br /&gt;
### Do I need any tools? You can use any tools as you need. In the project we will work probably with Eclipse and phpEclipse, although it can be discussed.&lt;br /&gt;
### Can I strip down the formslib.php file so it doesn´t have any references to other Moodle files? Yes you can, although you should state somewhere the changes so I can see them.&lt;br /&gt;
### Does it need to work? Well, let´s just say that if it works, it gets more points. :)&lt;br /&gt;
### Where do I find the Moodle CVS? [http://moodle.cvs.sourceforge.net/moodle/moodle/ Here is the Moodle CVS]&lt;br /&gt;
## &#039;&#039;&#039;Finally&#039;&#039;&#039;, you can either send me the files with two screenshots of them running (the first time called and second time called) or you can set it up in your webserver so I can see them running, plus a zip or tar.gz file with the files so I can download them.&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice_GsocFormslibExercise&amp;diff=22046</id>
		<title>Development:Voice GsocFormslibExercise</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice_GsocFormslibExercise&amp;diff=22046"/>
		<updated>2007-04-02T10:38:49Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Write a form using the [http://moodle.cvs.sourceforge.net/moodle/moodle/lib/formslib.php?view=markup Formslib class] and its  [[Development:lib/formslib.php|documentation]].&#039;&#039;&#039;&lt;br /&gt;
## &#039;&#039;&#039;Deadline&#039;&#039;&#039;: 8th of April, 2007&lt;br /&gt;
## There should be two files: example.php and example_form.php&lt;br /&gt;
### &#039;&#039;&#039;example.php&#039;&#039;&#039;: It should invoke the form the first time called. If the form is the caller, then just present the parameters and their values on screen (to test if it has worked).&lt;br /&gt;
### &#039;&#039;&#039;example_form.php&#039;&#039;&#039;: The form itself. It should be a class that extends &amp;quot;moodleform&amp;quot; from &amp;quot;formslib.php&amp;quot;. Note that this file should not be invoked from the browser.&lt;br /&gt;
## The form should have the next fields&lt;br /&gt;
### name: max 20 chars, obligatory&lt;br /&gt;
### password: max 20 chars, it should be presented with asterisks, obligatory&lt;br /&gt;
### email: max 20 chars, obligatory, preferably with validation&lt;br /&gt;
### comment: textfield, max 250 chars, optional&lt;br /&gt;
## You can use the next &#039;&#039;&#039;examples&#039;&#039;&#039; (and all you can find) from the Moodle CVS:&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password_form.php?view=markup&lt;br /&gt;
## &#039;&#039;&#039;FAQ&#039;&#039;&#039;&lt;br /&gt;
### Do I have to install the whole Moodle? No, just use the formslib.php file and any other if needed.&lt;br /&gt;
### Do I need any tools? You can use any tools as you need. In the project we will work probably with Eclipse and phpEclipse, although it can be discussed.&lt;br /&gt;
### Can I strip down the formslib.php file so it doesn´t have any references to other Moodle files? Yes you can, although you should state somewhere the changes so I can see them.&lt;br /&gt;
### Does it need to work? Well, let´s just say that if it works, it gets more points. :)&lt;br /&gt;
### Where do I find the Moodle CVS? [http://moodle.cvs.sourceforge.net/moodle/moodle/ Here is the Moodle CVS]&lt;br /&gt;
## &#039;&#039;&#039;Finally&#039;&#039;&#039;, you can either send me the files with two screenshots of them running (the first time called and second time called) or you can set it up in your webserver so I can see them running, plus a zip or tar.gz file with the files so I can download them.&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice_GsocFormslibExercise&amp;diff=22045</id>
		<title>Development:Voice GsocFormslibExercise</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice_GsocFormslibExercise&amp;diff=22045"/>
		<updated>2007-04-02T10:38:23Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Write a form using the [http://moodle.cvs.sourceforge.net/moodle/moodle/lib/formslib.php?view=markup Formslib class] and its  [[Development:lib/formslib.php|documentation]].&#039;&#039;&#039;&lt;br /&gt;
## &#039;&#039;&#039;Deadline&#039;&#039;&#039;: 8th of April, 2007&lt;br /&gt;
## There should be two files: example.php and example_form.php&lt;br /&gt;
### &#039;&#039;&#039;example.php&#039;&#039;&#039;: It should invoke the form the first time called. If the form is the caller, then just present the parameters and their values on screen (to test if it has worked).&lt;br /&gt;
### &#039;&#039;&#039;example_form.php&#039;&#039;&#039;: The form itself. It should be a class that extends &amp;quot;moodleform&amp;quot; from &amp;quot;formslib.php&amp;quot;. Note that this file should not be invoked from the browser.&lt;br /&gt;
## The form should have the next fields&lt;br /&gt;
### name: max 20 chars, obligatory&lt;br /&gt;
### password: max 20 chars, it should be presented with asterisks, obligatory&lt;br /&gt;
### email: max 20 chars, obligatory, preferably with validation&lt;br /&gt;
### comment: textfield, max 250 chars, optional&lt;br /&gt;
## You can use the next &#039;&#039;&#039;examples&#039;&#039;&#039; (and all you can find) from the Moodle CVS:&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password_form.php?view=markup&lt;br /&gt;
## &#039;&#039;&#039;FAQ&#039;&#039;&#039;&lt;br /&gt;
### Do I have to install the whole Moodle? No, just use the formslib.php file and any other if needed.&lt;br /&gt;
### Do I need any tools? You can use any tools as you need. In the project we will work probably with Eclipse and phpEclipse, although it can be discussed.&lt;br /&gt;
### Can I strip down the formslib.php file so it doesn´t have any references to other Moodle files? Yes you can, although you should state somewhere the changes so I can see them.&lt;br /&gt;
### Does it need to work? Well, let´s just say that if it works, it gets more points. :)&lt;br /&gt;
### Where do I find the Moodle CVS? [http://moodle.cvs.sourceforge.net/moodle/moodle/ Here is the Moodle CVS]&lt;br /&gt;
## &#039;&#039;&#039;At the end&#039;&#039;&#039;, you can either send me the files with two screenshots of them running (the first time called and second time called) or you can set it up in your webserver so I can see them running, plus a zip or tar.gz file with the files so I can download them.&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice_GsocFormslibExercise&amp;diff=22044</id>
		<title>Development:Voice GsocFormslibExercise</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice_GsocFormslibExercise&amp;diff=22044"/>
		<updated>2007-04-02T10:35:18Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Write a form using the [http://moodle.cvs.sourceforge.net/moodle/moodle/lib/formslib.php?view=markup Formslib class] and its  [[Development:lib/formslib.php|documentation]].&#039;&#039;&#039;&lt;br /&gt;
## &#039;&#039;&#039;Deadline&#039;&#039;&#039;: 8th of April, 2007&lt;br /&gt;
## There should be two files: example.php and example_form.php&lt;br /&gt;
### &#039;&#039;&#039;example.php&#039;&#039;&#039;: It should invoke the form the first time called. If the form is the caller, then just present the parameters and their values on screen (to test if it has worked).&lt;br /&gt;
### &#039;&#039;&#039;example_form.php&#039;&#039;&#039;: The form itself. It should be a class that extends &amp;quot;moodleform&amp;quot; from &amp;quot;formslib.php&amp;quot;. Note that this file should not be invoked from the browser.&lt;br /&gt;
## The form should have the next fields&lt;br /&gt;
### name: max 20 chars, obligatory&lt;br /&gt;
### password: max 20 chars, it should be presented with asterisks, obligatory&lt;br /&gt;
### email: max 20 chars, obligatory, preferably with validation&lt;br /&gt;
### comment: textfield, max 250 chars, optional&lt;br /&gt;
## You can use the next &#039;&#039;&#039;examples&#039;&#039;&#039; (and all you can find) from the Moodle CVS:&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password_form.php?view=markup&lt;br /&gt;
## &#039;&#039;&#039;FAQ&#039;&#039;&#039;&lt;br /&gt;
### Do I have to install the whole Moodle? No, just use the formslib.php file and any other if needed.&lt;br /&gt;
### Do I need any tools? You can use any tools as you need. In the project we will work probably with Eclipse and phpEclipse, although it can be discussed.&lt;br /&gt;
### Can I strip down the formslib.php file so it doesn´t have any references to other Moodle files? Yes you can, although you should state somewhere the changes so I can see them.&lt;br /&gt;
### Do it needs to work? Well, let´s just say that if it works, it gets more points. :)&lt;br /&gt;
### Where do I find the Moodle CVS? [http://moodle.cvs.sourceforge.net/moodle/moodle/ Here is the Moodle CVS]&lt;br /&gt;
## &#039;&#039;&#039;At the end&#039;&#039;&#039;, you can either send me the files with two screenshots of them running (the first time called and second time called) or you can set it up in your webserver so I can see them running, plus a zip or tar.gz file with the files so I can download them.&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice_GsocFormslibExercise&amp;diff=22043</id>
		<title>Development:Voice GsocFormslibExercise</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice_GsocFormslibExercise&amp;diff=22043"/>
		<updated>2007-04-02T10:35:05Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Write a form using the [http://moodle.cvs.sourceforge.net/moodle/moodle/lib/formslib.php?view=markup Formslib class] and its  [[Development:lib/formslib.php|documentation]].&#039;&#039;&#039;&lt;br /&gt;
## &#039;&#039;&#039;Deadline&#039;&#039;&#039;: 8th April 2007&lt;br /&gt;
## There should be two files: example.php and example_form.php&lt;br /&gt;
### &#039;&#039;&#039;example.php&#039;&#039;&#039;: It should invoke the form the first time called. If the form is the caller, then just present the parameters and their values on screen (to test if it has worked).&lt;br /&gt;
### &#039;&#039;&#039;example_form.php&#039;&#039;&#039;: The form itself. It should be a class that extends &amp;quot;moodleform&amp;quot; from &amp;quot;formslib.php&amp;quot;. Note that this file should not be invoked from the browser.&lt;br /&gt;
## The form should have the next fields&lt;br /&gt;
### name: max 20 chars, obligatory&lt;br /&gt;
### password: max 20 chars, it should be presented with asterisks, obligatory&lt;br /&gt;
### email: max 20 chars, obligatory, preferably with validation&lt;br /&gt;
### comment: textfield, max 250 chars, optional&lt;br /&gt;
## You can use the next &#039;&#039;&#039;examples&#039;&#039;&#039; (and all you can find) from the Moodle CVS:&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password_form.php?view=markup&lt;br /&gt;
## &#039;&#039;&#039;FAQ&#039;&#039;&#039;&lt;br /&gt;
### Do I have to install the whole Moodle? No, just use the formslib.php file and any other if needed.&lt;br /&gt;
### Do I need any tools? You can use any tools as you need. In the project we will work probably with Eclipse and phpEclipse, although it can be discussed.&lt;br /&gt;
### Can I strip down the formslib.php file so it doesn´t have any references to other Moodle files? Yes you can, although you should state somewhere the changes so I can see them.&lt;br /&gt;
### Do it needs to work? Well, let´s just say that if it works, it gets more points. :)&lt;br /&gt;
### Where do I find the Moodle CVS? [http://moodle.cvs.sourceforge.net/moodle/moodle/ Here is the Moodle CVS]&lt;br /&gt;
## &#039;&#039;&#039;At the end&#039;&#039;&#039;, you can either send me the files with two screenshots of them running (the first time called and second time called) or you can set it up in your webserver so I can see them running, plus a zip or tar.gz file with the files so I can download them.&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice_GsocFormslibExercise&amp;diff=22042</id>
		<title>Development:Voice GsocFormslibExercise</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice_GsocFormslibExercise&amp;diff=22042"/>
		<updated>2007-04-02T10:11:48Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Write a form using the [http://moodle.cvs.sourceforge.net/moodle/moodle/lib/formslib.php?view=markup Formslib class] and its  [[Development:lib/formslib.php|documentation]].&#039;&#039;&#039;&lt;br /&gt;
## &#039;&#039;&#039;Date limit&#039;&#039;&#039;: 8th April 2007&lt;br /&gt;
## There should be two files: example.php and example_form.php&lt;br /&gt;
### &#039;&#039;&#039;example.php&#039;&#039;&#039;: It should invoke the form the first time called. If the form is the caller, then just present the parameters and their values on screen (to test if it has worked).&lt;br /&gt;
### &#039;&#039;&#039;example_form.php&#039;&#039;&#039;: The form itself. It should be a class that extends &amp;quot;moodleform&amp;quot; from &amp;quot;formslib.php&amp;quot;. Note that this file should not be invoked from the browser.&lt;br /&gt;
## The form should have the next fields&lt;br /&gt;
### name: max 20 chars, obligatory&lt;br /&gt;
### password: max 20 chars, it should be presented with asterisks, obligatory&lt;br /&gt;
### email: max 20 chars, obligatory, preferably with validation&lt;br /&gt;
### comment: textfield, max 250 chars, optional&lt;br /&gt;
## You can use the next &#039;&#039;&#039;examples&#039;&#039;&#039; (and all you can find) from the Moodle CVS:&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password_form.php?view=markup&lt;br /&gt;
## &#039;&#039;&#039;FAQ&#039;&#039;&#039;&lt;br /&gt;
### Do I have to install the whole Moodle? No, just use the formslib.php file and any other if needed.&lt;br /&gt;
### Do I need any tools? You can use any tools as you need. In the project we will work probably with Eclipse and phpEclipse, although it can be discussed.&lt;br /&gt;
### Can I strip down the formslib.php file so it doesn´t have any references to other Moodle files? Yes you can, although you should state somewhere the changes so I can see them.&lt;br /&gt;
### Do it needs to work? Well, let´s just say that if it works, it gets more points. :)&lt;br /&gt;
### Where do I find the Moodle CVS? [http://moodle.cvs.sourceforge.net/moodle/moodle/ Here is the Moodle CVS]&lt;br /&gt;
## &#039;&#039;&#039;At the end&#039;&#039;&#039;, you can either send me the files with two screenshots of them running (the first time called and second time called) or you can set it up in your webserver so I can see them running, plus a zip or tar.gz file with the files so I can download them.&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice/GsocFormslibExercise&amp;diff=22036</id>
		<title>Development:Voice/GsocFormslibExercise</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice/GsocFormslibExercise&amp;diff=22036"/>
		<updated>2007-04-02T08:23:02Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Write a form using the [http://moodle.cvs.sourceforge.net/moodle/moodle/lib/formslib.php?view=markup Formslib class] and its  [[Development:lib/formslib.php|documentation]].&#039;&#039;&#039;&lt;br /&gt;
## &#039;&#039;&#039;Date limit&#039;&#039;&#039;: 8th April 2007&lt;br /&gt;
## There should be two files: example.php and example_form.php&lt;br /&gt;
### &#039;&#039;&#039;example.php&#039;&#039;&#039;: It should invoke the form the first time called. If the form is the caller, then just present the parameters and their values on screen (to test if it has worked).&lt;br /&gt;
### &#039;&#039;&#039;example_form.php&#039;&#039;&#039;: The form itself. It should be a class that extends &amp;quot;moodleform&amp;quot; from &amp;quot;formslib.php&amp;quot;. Note that this file should not be invoked from the browser.&lt;br /&gt;
## The form should have the next fields&lt;br /&gt;
### name: max 20 chars, obligatory&lt;br /&gt;
### password: max 20 chars, it should be presented with asterisks, obligatory&lt;br /&gt;
### email: max 20 chars, obligatory, preferably with validation&lt;br /&gt;
### comment: textfield, max 250 chars, optional&lt;br /&gt;
## You can use the next &#039;&#039;&#039;examples&#039;&#039;&#039; (and all you can find) from the Moodle CVS:&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password_form.php?view=markup&lt;br /&gt;
## &#039;&#039;&#039;FAQ&#039;&#039;&#039;&lt;br /&gt;
### Do I have to install the whole Moodle? No, just use the formslib.php file and any other if needed.&lt;br /&gt;
### Do I need any tools? You can use any tools as you need. In the project we will work probably with Eclipse and phpEclipse, although it can be discussed.&lt;br /&gt;
### Can I strip down the formslib.php file so it doesn´t have any references to other Moodle files? Yes you can, although you should state somewhere the changes so I can see them.&lt;br /&gt;
### Do it needs to work? Well, let´s just say that if it works, it gets more points. :)&lt;br /&gt;
### Where do I find the Moodle CVS? [http://moodle.cvs.sourceforge.net/moodle/moodle/ Here is the Moodle CVS]&lt;br /&gt;
## &#039;&#039;&#039;At the end&#039;&#039;&#039;, you can either send me the files with two screenshots of them running (the first time called and second time called) or you can set it up in your webserver so I can see them running, plus a zip or tar.gz file with the files so I can download them.&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice/GsocFormslibExercise&amp;diff=22035</id>
		<title>Development:Voice/GsocFormslibExercise</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice/GsocFormslibExercise&amp;diff=22035"/>
		<updated>2007-04-02T08:21:46Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Write a form using the [http://moodle.cvs.sourceforge.net/moodle/moodle/lib/formslib.php?view=markup Formslib class] and its  [[Development:lib/formslib.php|documentation]].&#039;&#039;&#039;&lt;br /&gt;
## &#039;&#039;&#039;Date limit&#039;&#039;&#039;: 8th April 2007&lt;br /&gt;
## There should be two files: example.php and example_form.php&lt;br /&gt;
### &#039;&#039;&#039;example.php&#039;&#039;&#039;: It should invoke the form the first time called. If the form is the caller, then just present the parameters and their values on screen (to test if it has worked).&lt;br /&gt;
### &#039;&#039;&#039;example_form.php&#039;&#039;&#039;: The form itself. It should be a class that extends &amp;quot;moodleform&amp;quot; from &amp;quot;formslib.php&amp;quot;. Note that this file should not be invoked from the browser.&lt;br /&gt;
## The form should have the next fields&lt;br /&gt;
### name: max 20 chars, obligatory&lt;br /&gt;
### password: max 20 chars, it should be presented with asterisks, obligatory&lt;br /&gt;
### comment: textfield, max 250 chars, optional&lt;br /&gt;
## You can use the next &#039;&#039;&#039;examples&#039;&#039;&#039; (and all you can find) from the Moodle CVS:&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password_form.php?view=markup&lt;br /&gt;
## &#039;&#039;&#039;FAQ&#039;&#039;&#039;&lt;br /&gt;
### Do I have to install the whole Moodle? No, just use the formslib.php file and any other if needed.&lt;br /&gt;
### Do I need any tools? You can use any tools as you need. In the project we will work probably with Eclipse and phpEclipse, although it can be discussed.&lt;br /&gt;
### Can I strip down the formslib.php file so it doesn´t have any references to other Moodle files? Yes you can, although you should state somewhere the changes so I can see them.&lt;br /&gt;
### Do it needs to work? Well, let´s just say that if it works, it gets more points. :)&lt;br /&gt;
### Where do I find the Moodle CVS? [http://moodle.cvs.sourceforge.net/moodle/moodle/ Here is the Moodle CVS]&lt;br /&gt;
## &#039;&#039;&#039;At the end&#039;&#039;&#039;, you can either send me the files with two screenshots of them running (the first time called and second time called) or you can set it up in your webserver so I can see them running, plus a zip or tar.gz file with the files so I can download them.&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice/GsocFormslibExercise&amp;diff=22034</id>
		<title>Development:Voice/GsocFormslibExercise</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice/GsocFormslibExercise&amp;diff=22034"/>
		<updated>2007-04-02T08:20:23Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;# &#039;&#039;&#039;Write a form using the [http://moodle.cvs.sourceforge.net/moodle/moodle/lib/formslib.php?view=markup Formslib class] and its  [[Development:lib/formslib.php|documentation]].&#039;&#039;&#039;&lt;br /&gt;
## &#039;&#039;&#039;Date limit&#039;&#039;&#039;: 8th April 2007&lt;br /&gt;
## There should be two files: example.php and example_form.php&lt;br /&gt;
### &#039;&#039;&#039;example.php&#039;&#039;&#039;: It should invoke the form the first time called. If the form is the caller, then just present the parameters and their values on screen (to test if it has worked).&lt;br /&gt;
### &#039;&#039;&#039;example_form.php&#039;&#039;&#039;: The form itself. It should be a class that extends &amp;quot;moodleform&amp;quot; from &amp;quot;formslib.php&amp;quot;. Note that this file should not be invoked from the browser.&lt;br /&gt;
## The form should have the next fields&lt;br /&gt;
### name: max 20 chars, obligatory&lt;br /&gt;
### password: max 20 chars, it should be presented with asterisks, obligatory&lt;br /&gt;
### comment: textfield, max 250 chars, optional&lt;br /&gt;
## You can use the next &#039;&#039;&#039;examples&#039;&#039;&#039; (and all you can find) from the Moodle CVS:&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/signup_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/change_password_form.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password.php?view=markup&lt;br /&gt;
### http://moodle.cvs.sourceforge.net/moodle/moodle/login/forgot_password_form.php?view=markup&lt;br /&gt;
## &#039;&#039;&#039;FAQ&#039;&#039;&#039;&lt;br /&gt;
### Do I have to install the whole Moodle? No, just use the formslib.php file and any other if needed.&lt;br /&gt;
### Do I need any tools? You can use any tools as you need. In the project we will work probably with Eclipse and phpEclipse, although it can be discussed.&lt;br /&gt;
### Can I strip down the formslib.php file so it doesn´t have any references to other Moodle files? Yes you can, although you should state somewhere the changes so I can see them.&lt;br /&gt;
### Do it needs to work? Well, let´s just say that if it works, it gets more points. :)&lt;br /&gt;
### Where do I find the Moodle CVS? [http://moodle.cvs.sourceforge.net/moodle/moodle/ Here is the Moodle CVS]&lt;br /&gt;
## &#039;&#039;&#039;At the end&#039;&#039;&#039;, you can either send me the files with two screenshots of them running (the first time called and second time called) or you can set it up in your webserver so I can see them running, plus a zip or tar.gz file with the files so I can download them.&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice/VoiceXML&amp;diff=22031</id>
		<title>Development:Voice/VoiceXML</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice/VoiceXML&amp;diff=22031"/>
		<updated>2007-04-02T07:58:42Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
== VoiceXML Technology ==&lt;br /&gt;
* [http://www.voicexml.org/ VoiceXML.org]&lt;br /&gt;
* [http://www.w3.org/Voice/ W3C Voice Standards]&lt;br /&gt;
* [http://www.w3.org/TR/voicexml20/ W3C VoiceXML Version 2.0]&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
* [[Development:Voice VoiceXML Examples|VoiceXML Examples]]&lt;br /&gt;
* [http://www.youtube.com/watch?v=FSp4RJ8U3Ts Voice Web Form example video]&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice/Moodle&amp;diff=22030</id>
		<title>Development:Voice/Moodle</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice/Moodle&amp;diff=22030"/>
		<updated>2007-04-02T07:58:30Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
== Moodle General ==&lt;br /&gt;
* [http://moodle.org/ Moodle]&lt;br /&gt;
* [http://moodle.com/ Moodle Services]&lt;br /&gt;
* [https://docs.moodle.org/ Moodle Documentation]&lt;br /&gt;
&lt;br /&gt;
== Moodle Google Summer of Code ==&lt;br /&gt;
* [http://code.google.com/soc/ Google Summer of Code]&lt;br /&gt;
* [https://docs.moodle.org/en/Student_projects Student projects]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=65046#p298033 Google Summer of Code 2007 discussion]&lt;br /&gt;
&lt;br /&gt;
== Developing Moodle ==&lt;br /&gt;
* [https://docs.moodle.org/en/Developer_documentation Developer Documentation]&lt;br /&gt;
* [https://docs.moodle.org/en/Coding Moodle Coding Guidelines]&lt;br /&gt;
* [https://docs.moodle.org/en/CVS_%28developer%29 CVS for Moodle Developers]&lt;br /&gt;
* [https://docs.moodle.org/en/Setting_up_Eclipse_for_Moodle_development Setting up Eclipse for Moodle Development]&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice/Project&amp;diff=22029</id>
		<title>Development:Voice/Project</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice/Project&amp;diff=22029"/>
		<updated>2007-04-02T07:58:00Z</updated>

		<summary type="html">&lt;p&gt;David.horat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
== Objective ==&lt;br /&gt;
Adapt Moodle interface to output the needed VoiceXML so you can navigate with your voice with a VoiceXML enabled browser, such as Opera.&lt;br /&gt;
&lt;br /&gt;
== Benefits ==&lt;br /&gt;
Moodle is a free software e-learning platform which is designed to help educators create online courses with rich multimedia content. Making Moodle voice enabled will help disabled people, specially blind and motor disabled, to interact with this great e-Learning tool. Not only that, but also this gives another input interface which can be used to interact faster with the application.&lt;br /&gt;
&lt;br /&gt;
== Timeplan ==&lt;br /&gt;
* Analysis (2 weeks : May 28th - June 10th)&lt;br /&gt;
** Study W3C VoiceXML 2.0&lt;br /&gt;
** Extract requirements: study Moodle output and code to choose what to make voice enabled&lt;br /&gt;
** Begin project webpage, documentation and logs&lt;br /&gt;
* Design (1 weeks : June 11 th - June 17th)&lt;br /&gt;
** Make an Architectural Design&lt;br /&gt;
** Make an Implementation Proposal&lt;br /&gt;
* Implementation (8 weeks : June 18th - August 5th)&lt;br /&gt;
** Milestone X (each 2 weeks) &lt;br /&gt;
* Documentation (2 weeks : August 20th - August 31th)&lt;br /&gt;
** Developer documentation&lt;br /&gt;
** Moodle administrator documentation&lt;br /&gt;
** Future roadmap and design plans&lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
Due to the large Moodle code, the scope of what to make voice enabled will be decided in the Analysis phase, although it will be at least all navigational stuff, such as course selection, profile configuration and resource selection.&lt;br /&gt;
&lt;br /&gt;
== State of the Art of VoiceXML ==&lt;br /&gt;
VoiceXML is a well known technology that has been used and supported by IVR several years. Now it has finally come to our desktop. Currently, this technology is only supported by [http://dev.opera.com/articles/voice/ Opera] in the standard browsers field, but since it is a [http://www.w3.org/TR/voicexml20/ 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 [http://wiki.mozilla.org/Firefox:2.0_Accessibility Firefox] and [http://www.qsos.org/sheets/webbrowser/konqueror/konqueror-3.5.5.html Konqueror]. Some examples of this technology can be found at: &lt;br /&gt;
* http://dev.opera.com/articles/view/add-voice-interactivity-to-your-site/&lt;br /&gt;
* http://dev.opera.com/articles/view/temporary-x-v-by-example/&lt;br /&gt;
* http://dev.opera.com/articles/view/xhtml-voice-in-action/&lt;br /&gt;
&lt;br /&gt;
== Architecture Description ==&lt;br /&gt;
# We have the option of using [http://moodle.org/mod/forum/discuss.php?d=31895 Customized Scripts] so we will [https://docs.moodle.org/en/Developer_Overview_of_MFM_Code not interfere with normal Moodle development]. On the other hand, we can directly merge it in the current CVS.&lt;br /&gt;
# Our code will detect whether the user browser is VoiceXML enabled or not and send the corresponding code&lt;br /&gt;
# In the &amp;quot;future roadmap&amp;quot; it will be included how to embed the code in Moodle core (in case it isnt) and make a Moodle configuration option to activate voice features. (It can be done in the project if we have enough time)&lt;br /&gt;
&lt;br /&gt;
== Related Work ==&lt;br /&gt;
* [https://docs.moodle.org/en/Moodle_for_Mobiles Moodle for Mobiles] [http://moodle.cvs.sourceforge.net/moodle/contrib/patches/mobile/ CVS]&lt;br /&gt;
** Outputs [http://www.w3.org/TR/1998/NOTE-compactHTML-19980209/ Compact HTML], uses [http://moodle.org/mod/forum/discuss.php?d=31895 Customized Scripts]&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice_VoiceXML&amp;diff=21986</id>
		<title>Development:Voice VoiceXML</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice_VoiceXML&amp;diff=21986"/>
		<updated>2007-03-30T20:01:36Z</updated>

		<summary type="html">&lt;p&gt;David.horat: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
== VoiceXML Technology ==&lt;br /&gt;
* [http://www.voicexml.org/ VoiceXML.org]&lt;br /&gt;
* [http://www.w3.org/Voice/ W3C Voice Standards]&lt;br /&gt;
* [http://www.w3.org/TR/voicexml20/ W3C VoiceXML Version 2.0]&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
* [[Development:Voice VoiceXML Examples|VoiceXML Examples]]&lt;br /&gt;
* [http://www.youtube.com/watch?v=FSp4RJ8U3Ts Voice Web Form example video]&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/24/en/index.php?title=Development:Voice_VoiceXML&amp;diff=21983</id>
		<title>Development:Voice VoiceXML</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/24/en/index.php?title=Development:Voice_VoiceXML&amp;diff=21983"/>
		<updated>2007-03-30T19:34:27Z</updated>

		<summary type="html">&lt;p&gt;David.horat: /* VoiceXML Technology */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Voice}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
== VoiceXML Technology ==&lt;br /&gt;
* [http://www.voicexml.org/ VoiceXML.org]&lt;br /&gt;
* [http://www.w3.org/Voice/ W3C Voice Standards]&lt;br /&gt;
* [http://www.w3.org/TR/voicexml20/ W3C VoiceXML Version 2.0]&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
* [[Development:Voice VoiceXML Examples|VoiceXML Examples]]&lt;br /&gt;
* [http://www.youtube.com/watch?v=FSp4RJ8U3Ts Voice Web Form example]&lt;/div&gt;</summary>
		<author><name>David.horat</name></author>
	</entry>
</feed>