<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.moodle.org/test/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Chuang</id>
	<title>MoodleDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.moodle.org/test/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Chuang"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/Special:Contributions/Chuang"/>
	<updated>2026-08-09T14:06:35Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Capabilities/moodle/grade:manageoutcomes&amp;diff=48236</id>
		<title>Capabilities/moodle/grade:manageoutcomes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Capabilities/moodle/grade:manageoutcomes&amp;diff=48236"/>
		<updated>2008-12-17T00:33:55Z</updated>

		<summary type="html">&lt;p&gt;Chuang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Moodle 1.9}}* This allows a user to manage [[Outcomes]]. For example, when you login as a teacher you should be able to see a link called &amp;quot;Outcome&amp;quot; in the Course Administration block and be able to &amp;quot;manage &amp;quot;Outcome&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Category:Capabilities|Grade]]&lt;br /&gt;
[[Category:Grades]]&lt;br /&gt;
&lt;br /&gt;
[[eu:Capabilities/moodle/grade:manageoutcomes]]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Capabilities/&amp;diff=46015</id>
		<title>Capabilities/</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Capabilities/&amp;diff=46015"/>
		<updated>2008-10-31T16:24:20Z</updated>

		<summary type="html">&lt;p&gt;Chuang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Capabilities you don&#039;t want students to have should be Not set, not Prevent.&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Capabilities/&amp;diff=46014</id>
		<title>Capabilities/</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Capabilities/&amp;diff=46014"/>
		<updated>2008-10-31T16:21:28Z</updated>

		<summary type="html">&lt;p&gt;Chuang: New page: Capabilities you don&amp;#039;t want students to have should be Not set, not Prevent.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Capabilities you don&#039;t want students to have should be Not set, not Prevent.&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Adding/editing_a_forum&amp;diff=44784</id>
		<title>Adding/editing a forum</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Adding/editing_a_forum&amp;diff=44784"/>
		<updated>2008-10-03T23:17:20Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* Can a student post to this forum? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Forums}}&lt;br /&gt;
There are 4 sections in a forum&#039;s settings: &amp;quot;General&amp;quot;, &amp;quot;Grade&amp;quot;, &amp;quot;Post threshold for blocking&amp;quot;, and &amp;quot;Common module settings&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
[[Image:Adding a forum.png|thumb|center|Adding a forum, showing General and Grade sections]]To add a forum:&lt;br /&gt;
#As an editing teacher for a course, click &amp;quot;Turn Editing On&amp;quot;, and go to the topic or week section in which you want to create the forum.&lt;br /&gt;
#From the dropdown menu labeled &amp;quot;Add an activity&amp;quot;, select &amp;quot;Forum&amp;quot;.  This will take you to the forum settings page titled &amp;quot;Adding a new forum&amp;quot; page.  &lt;br /&gt;
&lt;br /&gt;
In an existing forum, use the &amp;quot;Update this forum&amp;quot; button to see the forum settings page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
===Forum name===&lt;br /&gt;
&lt;br /&gt;
A short name of the forum (e.g. &amp;quot;Favourite colour&amp;quot;), which will be displayed on the course homepage.&lt;br /&gt;
&lt;br /&gt;
===Forum type===&lt;br /&gt;
&lt;br /&gt;
There are four forum types to choose from:&lt;br /&gt;
*A single simple discussion - A single topic discussion developed on one page, which is useful for short focussed discussions&lt;br /&gt;
*Standard forum for general use - An open forum where anyone can start a new topic at any time; this is the best general-purpose forum&lt;br /&gt;
*Each person posts one discussion - Each person can post exactly one new discussion topic (everyone can reply to them though); this is useful when you want each student to start a discussion about, say, their reflections on the week&#039;s topic, and everyone else responds to these&lt;br /&gt;
*Q and A Forum - Instead of initiating discussions Teachers (only) pose a question in the initial post of a discussion. Students may reply with an answer, but they will not see the replies of other Students to the question in that discussion until they have themselves replied to the same discussion.&lt;br /&gt;
&lt;br /&gt;
A [[News forum]] is a special type of forum that is automatically created with a new course. &lt;br /&gt;
&lt;br /&gt;
===Forum introduction===&lt;br /&gt;
&lt;br /&gt;
Place the description of the forum here.  It has the standard Moodle [[HTML editor]] toolbar to assist the teacher.&lt;br /&gt;
&lt;br /&gt;
*Tip:  It is a good practice to include precise instructions for students regarding the subject of the forum and the rating and grading criteria that might be used in this forum (see below).&lt;br /&gt;
&lt;br /&gt;
===Force everyone to be subscribed?===&lt;br /&gt;
&lt;br /&gt;
When a person is subscribed to a forum it means that they will be sent email copies of every post in that forum.  This will over ride some [[Edit profile|student settings in their profile]]. By default, posts are recorded about 30 minutes after the post was first written.  Depending upon the email settings of each forum member, they maybe sent an email immediately after the 30 minute edit window is closed, or in a batch at a time fixed by the site administrator.&lt;br /&gt;
&lt;br /&gt;
People can usually choose whether or not they want to be subscribed to each forum. However, the teacher can choose to force subscription on a particular forum then all course users will be subscribed automatically, even those that enrol at a later time. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the teacher selects the option &amp;quot;Yes, initially&amp;quot; then all current and future course users will be subscribed initially but they can unsubscribe themselves at any time. If the teacher chooses &amp;quot;Yes, forever&amp;quot; then the forum members will not be able to unsubscribe themselves. &lt;br /&gt;
====Subscription Tips====&lt;br /&gt;
* Forcing everyone to subscribe is especially useful in the [[News forum]] and in forums towards the beginning of the course (before everyone has worked out that they can subscribe to these emails themselves).&lt;br /&gt;
* Changing the setting from &amp;quot;Yes, initially&amp;quot; to &amp;quot;No&amp;quot; will not unsubscribe existing users, it will only affect those who enrol in the course in the future. Similarly changing &amp;quot;Yes, initially&amp;quot; will not subscribe existing course users but only those enrolling later.&lt;br /&gt;
* From Moodle 1.6 onwards there is an &amp;quot;Subscriptions not allowed&amp;quot; setting which prevents Students from subscribing to a Forum. Teachers may choose to subscribe to a forum if they wish.&lt;br /&gt;
&lt;br /&gt;
===Read tracking for this forum?===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Read tracking&amp;quot; for a forum allows users to track read and unread messages in the forum. &lt;br /&gt;
&lt;br /&gt;
There are three options for this setting:&lt;br /&gt;
* Optional (default) - students can turn tracking on or off for the forum at their discretion &lt;br /&gt;
* On - tracking is always on in this forum for all members&lt;br /&gt;
* Off - tracking is always off in this forum for all members&lt;br /&gt;
&lt;br /&gt;
===Maximum attachment size===&lt;br /&gt;
The maximum file size that may be attached to a forum post will first be determined by the Moodle site settings.  The teacher may want a smaller size limit for the forum.  Server file capacity, student downloading speeds and discouraging images in a document centered discussion are a few reasons to limit file size.&lt;br /&gt;
&lt;br /&gt;
==Grade==&lt;br /&gt;
Forum posts can be rated using a [[Scales|scale]] (pre existing number or word scales). By default, only teachers can rate forum posts.  The [[Override permissions|role override]] feature can allow students to rate each others’ posts (see [[Forum permissions]]). This is a useful tool for giving students participation grades. Any ratings given in the forum are recorded in the [[Gradebook|gradebook]].&lt;br /&gt;
&lt;br /&gt;
===Aggregate type===&lt;br /&gt;
{{Moodle 1.9}}In Moodle 1.9 onwards, you can set an aggregate type, in other words, decide how all the ratings given to posts in a forum are combined to form the final grade (for each post and for the whole forum activity).  Some scales do not lend themselves to certain types of aggregates.&lt;br /&gt;
&lt;br /&gt;
There are five options:&lt;br /&gt;
====Average of ratings==== &lt;br /&gt;
Average of ratings (default) is the mean of all the ratings given to posts in that forum. This is especially useful with peer grading when there are a lot of ratings being made.&lt;br /&gt;
&lt;br /&gt;
====Count of ratings==== &lt;br /&gt;
The counts the number of rated posts which becomes the final grade. This is useful when the number of posts is important. Note that the total can not exceed the maximum grade allowed for the forum. A count may be used if the teacher simply wants to acknowledge that a reply was given in the case students being required to make a certain number of posts in the discussion. Note: Count of ratings does not work for the &amp;quot;Separate or Connected Ways of Knowing&amp;quot; scale or custom scales due to the limitation imposed by the max grade.&lt;br /&gt;
&lt;br /&gt;
====Maximum rating====&lt;br /&gt;
The highest rating is returned as the final grade. This method is useful for emphasising the best work from participants, allowing them to post one high-quality post as well as a number of more casual responses to others.&lt;br /&gt;
&lt;br /&gt;
====Minimum rating==== &lt;br /&gt;
The smallest rating is returned as the final grade. This method promotes a culture of high quality for all posts.&lt;br /&gt;
&lt;br /&gt;
====Sum of ratings====&lt;br /&gt;
All the ratings for a particular user are added together. Note that the total is not allowed to exceed the maximum grade for the forum. Note: Sum of ratings does not work for the &amp;quot;Separate or Connected Ways of Knowing&amp;quot; scale or custom scales due to the limitation imposed by the max grade.&lt;br /&gt;
&lt;br /&gt;
===Grades===&lt;br /&gt;
This is a pulldown menu which sets the [[Scales|scale]] used in [[Grades|grading]] a forum post.  See &amp;quot;Aggregate type&amp;quot; above for options on how multiple, rated posts of a student are entered as a single grade in the gradebook.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Restrict ratings to posts with dates in this range===&lt;br /&gt;
The teacher can allow only posts within a certain date range to be rated. This is useful if the teacher wants to keep students focused on the most recent content and maintain a specific pace within the forum or course.&lt;br /&gt;
&lt;br /&gt;
==Post threshold for blocking==&lt;br /&gt;
&lt;br /&gt;
===Post threshold for warning===&lt;br /&gt;
&lt;br /&gt;
Students (only) will be blocked from posting after a specified number of posts in a given period - this option is for setting the number of posts a Student may make before receiving a warning. Set to 0 to disable warnings.&lt;br /&gt;
&lt;br /&gt;
===Post threshold for blocking===&lt;br /&gt;
&lt;br /&gt;
This option is for setting the number of posts a Student may make in the period defined below. Set to 0 to disable blocking. If blocking is disabled, warnings will automatically be disabled.&lt;br /&gt;
&lt;br /&gt;
===Time period for blocking===&lt;br /&gt;
&lt;br /&gt;
Earlier  version of Moodle had an this option.  See  &amp;quot;Restrict ratings to posts with dates in this range&amp;quot; above.&lt;br /&gt;
&lt;br /&gt;
==Common module settings==&lt;br /&gt;
&lt;br /&gt;
===Group mode===&lt;br /&gt;
&lt;br /&gt;
The [[Groups|group]] mode setting has three options:&lt;br /&gt;
&lt;br /&gt;
# No groups&lt;br /&gt;
# Separate groups - each group can only see their own group, others are invisible&lt;br /&gt;
# Visible groups - each group works in their own group, but can also see other groups&lt;br /&gt;
&lt;br /&gt;
If the group mode is set to separate or visible groups:&lt;br /&gt;
[[Image:Forum set to separate groups.png|thumb|Adding a new discussion topic to a forum set to separate groups]]&lt;br /&gt;
* Teachers are given the option of adding a new discussion topic for all participants or for a selected group. If a teacher adds a new discussion topic for a selected group, then only group members can reply to it.&lt;br /&gt;
* Students can only start discussions for their own group.&lt;br /&gt;
* Students can only reply to discussions started by other group members or teachers.&lt;br /&gt;
&lt;br /&gt;
Teachers, and other users with the capability [[Capabilities/moodle/site:accessallgroups|moodle/site:accessallgroups]] set to allow, can view and post in all forum discussions, regardless of the group mode setting.&lt;br /&gt;
&lt;br /&gt;
Note: Single simple discussions cannot be set to separate groups (as this feature is not implemented). Instead, a standard forum should be used, with the teacher copying and pasting the same discussion topic for each separate group. If required, a permissions override may be set to prevent students from starting new discussions.&lt;br /&gt;
&lt;br /&gt;
===Visible to students===&lt;br /&gt;
&lt;br /&gt;
You can hide the activity from students by selecting &amp;quot;Hide&amp;quot; here. It is useful if you wouldn&#039;t like to make the activity available immediately.&lt;br /&gt;
&lt;br /&gt;
==Pre-Moodle 1.7 settings==&lt;br /&gt;
&lt;br /&gt;
Note: From Moodle 1.7 onwards, forum permissions may be accessed via the Roles tab on the update/edit forum page and the override roles link.&lt;br /&gt;
&lt;br /&gt;
===Can a student post to this forum?===&lt;br /&gt;
&lt;br /&gt;
This option allows you to restrict students from posting new content in this forum. There are three options to choose from:&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Discussions and replies are allowed&#039;&#039;&#039; - This option leaves students unrestricted, which is the case for most forums. Thus, you choose to allow them to start new discussion topics (threads), and also to post replies within those threads.&lt;br /&gt;
#&#039;&#039;&#039;No discussions, but replies are allowed&#039;&#039;&#039; - This option should be chosen if only teachers are to be allowed to start new discussions. Students will still be allowed to reply within those threads (for example within the news forum on the site home page). &lt;br /&gt;
#&#039;&#039;&#039;No discussions, no replies&#039;&#039;&#039; - Choosing this option bars students from starting new discussion topics and replying within those threads. This is useful for the News forum when you only want teachers to post new items that appear on the course main page.&lt;br /&gt;
&lt;br /&gt;
===Use ratings===&lt;br /&gt;
 &lt;br /&gt;
If you decide to rate posts on the forum, you will have to define settings of the three following aspects: &lt;br /&gt;
&lt;br /&gt;
*Users - If you want everybody to rate posts, choose &#039;Everyone can rate posts&#039;. Otherwise, pick &#039;Only teachers can rate posts&#039;. &lt;br /&gt;
*View - If you want to keep the grades known only to the individual students graded, you should choose the option &#039;Students can only see their own ratings&#039;. If there is no such a need, opt for &#039;Students can see everyone&#039;s ratings&#039;.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Forum permissions]]&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=65162 No discussions, no replies?] forum discussion&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=86487 Forum Ratings - Some Students Cannot Be Rated] forum discussion&lt;br /&gt;
&lt;br /&gt;
[[fr:Ajouter/modifier un forum]]&lt;br /&gt;
[[ja:フォーラムの追加/編集]]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Quickmail_block&amp;diff=43060</id>
		<title>Quickmail block</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Quickmail_block&amp;diff=43060"/>
		<updated>2008-09-02T21:36:09Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* History */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;quickmail&#039;&#039;&#039; block adds a link to a tool that has a checkbox list of all students in the course, and a mail composition text area. You can check the students you like, and email those and only those. This enhances the existing communications systems of messaging (one user) and subcribed forums (all subscribers) by allowing teachers to select a specific subset of students. It was developed by Michael Penney&#039;s team at Humboldt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
Download Quickmail with the provided link in the [[Quickmail_block#Links | Links section]].  After unzipping the file, you will find the quickmail directory in block_quickmail_1.5/blocks/.  Copy this quickmail directory to your Moodle&#039;s blocks directory.  Then visit Moodle&#039;s admin screen, clik in Notifications so that Quickmail can install itself.  After that, you can add Quickmail to any course.&lt;br /&gt;
&lt;br /&gt;
==Block Display==&lt;br /&gt;
[[Image:Quickmail-en-blockdisplay-screenshot.jpg|right]]&lt;br /&gt;
The image to the right shows how Quickmail will appear when added to a course.  The three links are described as follows:&lt;br /&gt;
*&#039;&#039;&#039;Compose:&#039;&#039;&#039; takes you to Quickmail&#039;s email composition page.&lt;br /&gt;
*&#039;&#039;&#039;History:&#039;&#039;&#039; takes you to a history of all your emails sent by Quickmail in the current course.&lt;br /&gt;
*&#039;&#039;&#039;Settings:&#039;&#039;&#039; takes you to Quickmail&#039;s configuration screen; the same configuration screen as the block&#039;s edit button when course editing is turned on.  This link only appears for course teachers and administrators.&lt;br /&gt;
&lt;br /&gt;
==Block Settings==&lt;br /&gt;
Quickmail has two settings:&lt;br /&gt;
*&#039;&#039;&#039;Allow Students to use Quickmail:&#039;&#039;&#039; if &#039;&#039;Yes&#039;&#039; then Students will be able to see Quickmail in the course and use it to send emails.  If &#039;&#039;No&#039;&#039; then Quickmail will be hidden to the Students. &lt;br /&gt;
NOTE: Quickmail displays &#039;&#039;&#039;all email addresses&#039;&#039;&#039; for &#039;&#039;&#039;all moodle users&#039;&#039;&#039; in &#039;&#039;&#039;any course&#039;&#039;&#039;.  Quickmail overrides the user profile setting of &amp;quot;Hide my Email address from everyone&amp;quot;. &lt;br /&gt;
*&#039;&#039;&#039;Group mode:&#039;&#039;&#039; set the [[Groups#Group_modes | group mode]] of Quickmail.  This setting is disabled if [[Force_group_mode | Force group mode]] is turned &#039;&#039;On&#039;&#039; in the course.&lt;br /&gt;
&lt;br /&gt;
In Moodle 1.7 or later, the &#039;&#039;Allow Students to use Quickmail&#039;&#039; setting has been removed.  To allow students (or any other role) to use Quickmail, just override the Quickmail block capability called [[Capabilities/block/quickmail:cansend | block/quickmail:cansend]].  For more information about role management, please review the [[Manage_roles | Manage roles]] page.&lt;br /&gt;
&lt;br /&gt;
==Compose==&lt;br /&gt;
When composing an email, the following fields must be set:&lt;br /&gt;
*&#039;&#039;&#039;To:&#039;&#039;&#039; this area contains a series of check boxes, one for each course user.  Each user who has their check box &#039;&#039;checked&#039;&#039;, will be emailed.  Also, there is a handy button that can &#039;&#039;Check All&#039;&#039; or &#039;&#039;Uncheck All&#039;&#039; users.  If a Group mode has been set in Quickmail&#039;s settings or if Force group mode is turned on, then the display of the users and their check boxes changes.  Here is how the different modes affect the display:&lt;br /&gt;
**&#039;&#039;&#039;Visible groups:&#039;&#039;&#039; users and their check boxes are grouped together by their groups and each group has a &#039;&#039;Check All&#039;&#039; and an &#039;&#039;Uncheck All&#039;&#039; button.&lt;br /&gt;
**&#039;&#039;&#039;Separate groups:&#039;&#039;&#039; only users belonging to your group are displayed.  Teachers always see the &#039;&#039;Visisible groups&#039;&#039; display because s/he never belongs to a group.&lt;br /&gt;
**&#039;&#039;&#039;Similarities between both modes:&#039;&#039;&#039; each group&#039;s name and picture are printed.  Also, all users not belonging to a group are added at the bottom.&lt;br /&gt;
*&#039;&#039;&#039;Subject:&#039;&#039;&#039; whatever is written here will appear as the email&#039;s subject.&lt;br /&gt;
*&#039;&#039;&#039;Message:&#039;&#039;&#039; this area is used to compose the email message or body.  You can use the [[HTML_editor | HTML editor]] for this section if you have it turned on in your user profile.  Otherwise, you can select from one of Moodle&#039;s [[Formatting_options | formats]].&lt;br /&gt;
*&#039;&#039;&#039;Attachment:&#039;&#039;&#039; this is the only optional field and it behaves differently for Students and for Teachers.&lt;br /&gt;
**Students can select a file from their hard drive to attach to the email.  This file is only temporarily stored on the server and it deleted after the email has been sent.&lt;br /&gt;
**Teachers use the standard course files interface.  These files are stored in the course files and are never removed by Quickmail.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
This page displays a table with information regarding sent emails.  The columns are as follows:&lt;br /&gt;
*&#039;&#039;&#039;Date:&#039;&#039;&#039; the day and time of when the email was sent.&lt;br /&gt;
*&#039;&#039;&#039;Subject:&#039;&#039;&#039; the subject of the email.&lt;br /&gt;
*&#039;&#039;&#039;Attachment:&#039;&#039;&#039; name of the attachment sent along with the email.&lt;br /&gt;
*&#039;&#039;&#039;Action:&#039;&#039;&#039; contains action buttons.  The button that looks like a magnifying glass takes you back to the &#039;&#039;Compose email&#039;&#039; page, but pre-fills the form with the original values from the old email.  This is handy for resending an email to a particular user or for sending similar emails.  The other image is in a shape of an &#039;&#039;X&#039;&#039; and it deletes a single sent email.&lt;br /&gt;
All columns are collapsible and sortable.  If you have more than ten emails in the history, then a paging mechanism is displayed for paging through all the sent emails.&lt;br /&gt;
&lt;br /&gt;
Also, there is a &#039;&#039;&#039;Clear History&#039;&#039;&#039; button on the right in the header of the page.  Clicking on this button brings you to a confirmation page prompting you to delete all entries in your history.  Choosing &#039;&#039;yes&#039;&#039; will clear your history and choosing &#039;&#039;no&#039;&#039; will leave the history unchanged.  If you have no emails in your history, then the button is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;By the way&#039;&#039;&#039; there is an modified version of Quickmail which has a more straight-forward Graphical User Interface (GUI) and is easier to use for large classes. This block is known as &#039;&#039;&#039;&amp;quot;quickmail for large classes&amp;quot;&#039;&#039;&#039; or &#039;&#039;&#039;&amp;quot;quickmail v2.&amp;quot;&#039;&#039;&#039; This mod was implemented by the team at San Francisco State University and is currently maintained by Wen Hao Chuang. This enhanced version of Quickmail could be downloaded from http://moodle.org/mod/data/view.php?d=13&amp;amp;rid=764&lt;br /&gt;
&lt;br /&gt;
==Credits==&lt;br /&gt;
*Original developer: Mark Nielsen (currently co-maintained by Wen Hao Chuang)&lt;br /&gt;
*Project Manager: Michael Penney&lt;br /&gt;
*Postgres7 contribution: Rubens Ribeiro&lt;br /&gt;
*Language Translations:&lt;br /&gt;
**Japanese: Mitsuhiro Yoshida&lt;br /&gt;
**Spanish: Rubens Ribeiro&lt;br /&gt;
**French: Yves Dufour&lt;br /&gt;
**German: Andy Tagliani&lt;br /&gt;
**Slovak: Miroslav Fikar&lt;br /&gt;
**Hungarian: Császár-Cs. Péter&lt;br /&gt;
**Hebrew: Miki Alliel&lt;br /&gt;
**Italian: Lorenzo Nicora&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://moodle.org/mod/data/view.php?d=13&amp;amp;rid=92 Quickmail in modules and plugins]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contributed code]]&lt;br /&gt;
&lt;br /&gt;
[[ja:クイックメールブロック]]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Quickmail_block&amp;diff=43059</id>
		<title>Quickmail block</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Quickmail_block&amp;diff=43059"/>
		<updated>2008-09-02T21:35:39Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* History */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;quickmail&#039;&#039;&#039; block adds a link to a tool that has a checkbox list of all students in the course, and a mail composition text area. You can check the students you like, and email those and only those. This enhances the existing communications systems of messaging (one user) and subcribed forums (all subscribers) by allowing teachers to select a specific subset of students. It was developed by Michael Penney&#039;s team at Humboldt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
Download Quickmail with the provided link in the [[Quickmail_block#Links | Links section]].  After unzipping the file, you will find the quickmail directory in block_quickmail_1.5/blocks/.  Copy this quickmail directory to your Moodle&#039;s blocks directory.  Then visit Moodle&#039;s admin screen, clik in Notifications so that Quickmail can install itself.  After that, you can add Quickmail to any course.&lt;br /&gt;
&lt;br /&gt;
==Block Display==&lt;br /&gt;
[[Image:Quickmail-en-blockdisplay-screenshot.jpg|right]]&lt;br /&gt;
The image to the right shows how Quickmail will appear when added to a course.  The three links are described as follows:&lt;br /&gt;
*&#039;&#039;&#039;Compose:&#039;&#039;&#039; takes you to Quickmail&#039;s email composition page.&lt;br /&gt;
*&#039;&#039;&#039;History:&#039;&#039;&#039; takes you to a history of all your emails sent by Quickmail in the current course.&lt;br /&gt;
*&#039;&#039;&#039;Settings:&#039;&#039;&#039; takes you to Quickmail&#039;s configuration screen; the same configuration screen as the block&#039;s edit button when course editing is turned on.  This link only appears for course teachers and administrators.&lt;br /&gt;
&lt;br /&gt;
==Block Settings==&lt;br /&gt;
Quickmail has two settings:&lt;br /&gt;
*&#039;&#039;&#039;Allow Students to use Quickmail:&#039;&#039;&#039; if &#039;&#039;Yes&#039;&#039; then Students will be able to see Quickmail in the course and use it to send emails.  If &#039;&#039;No&#039;&#039; then Quickmail will be hidden to the Students. &lt;br /&gt;
NOTE: Quickmail displays &#039;&#039;&#039;all email addresses&#039;&#039;&#039; for &#039;&#039;&#039;all moodle users&#039;&#039;&#039; in &#039;&#039;&#039;any course&#039;&#039;&#039;.  Quickmail overrides the user profile setting of &amp;quot;Hide my Email address from everyone&amp;quot;. &lt;br /&gt;
*&#039;&#039;&#039;Group mode:&#039;&#039;&#039; set the [[Groups#Group_modes | group mode]] of Quickmail.  This setting is disabled if [[Force_group_mode | Force group mode]] is turned &#039;&#039;On&#039;&#039; in the course.&lt;br /&gt;
&lt;br /&gt;
In Moodle 1.7 or later, the &#039;&#039;Allow Students to use Quickmail&#039;&#039; setting has been removed.  To allow students (or any other role) to use Quickmail, just override the Quickmail block capability called [[Capabilities/block/quickmail:cansend | block/quickmail:cansend]].  For more information about role management, please review the [[Manage_roles | Manage roles]] page.&lt;br /&gt;
&lt;br /&gt;
==Compose==&lt;br /&gt;
When composing an email, the following fields must be set:&lt;br /&gt;
*&#039;&#039;&#039;To:&#039;&#039;&#039; this area contains a series of check boxes, one for each course user.  Each user who has their check box &#039;&#039;checked&#039;&#039;, will be emailed.  Also, there is a handy button that can &#039;&#039;Check All&#039;&#039; or &#039;&#039;Uncheck All&#039;&#039; users.  If a Group mode has been set in Quickmail&#039;s settings or if Force group mode is turned on, then the display of the users and their check boxes changes.  Here is how the different modes affect the display:&lt;br /&gt;
**&#039;&#039;&#039;Visible groups:&#039;&#039;&#039; users and their check boxes are grouped together by their groups and each group has a &#039;&#039;Check All&#039;&#039; and an &#039;&#039;Uncheck All&#039;&#039; button.&lt;br /&gt;
**&#039;&#039;&#039;Separate groups:&#039;&#039;&#039; only users belonging to your group are displayed.  Teachers always see the &#039;&#039;Visisible groups&#039;&#039; display because s/he never belongs to a group.&lt;br /&gt;
**&#039;&#039;&#039;Similarities between both modes:&#039;&#039;&#039; each group&#039;s name and picture are printed.  Also, all users not belonging to a group are added at the bottom.&lt;br /&gt;
*&#039;&#039;&#039;Subject:&#039;&#039;&#039; whatever is written here will appear as the email&#039;s subject.&lt;br /&gt;
*&#039;&#039;&#039;Message:&#039;&#039;&#039; this area is used to compose the email message or body.  You can use the [[HTML_editor | HTML editor]] for this section if you have it turned on in your user profile.  Otherwise, you can select from one of Moodle&#039;s [[Formatting_options | formats]].&lt;br /&gt;
*&#039;&#039;&#039;Attachment:&#039;&#039;&#039; this is the only optional field and it behaves differently for Students and for Teachers.&lt;br /&gt;
**Students can select a file from their hard drive to attach to the email.  This file is only temporarily stored on the server and it deleted after the email has been sent.&lt;br /&gt;
**Teachers use the standard course files interface.  These files are stored in the course files and are never removed by Quickmail.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
This page displays a table with information regarding sent emails.  The columns are as follows:&lt;br /&gt;
*&#039;&#039;&#039;Date:&#039;&#039;&#039; the day and time of when the email was sent.&lt;br /&gt;
*&#039;&#039;&#039;Subject:&#039;&#039;&#039; the subject of the email.&lt;br /&gt;
*&#039;&#039;&#039;Attachment:&#039;&#039;&#039; name of the attachment sent along with the email.&lt;br /&gt;
*&#039;&#039;&#039;Action:&#039;&#039;&#039; contains action buttons.  The button that looks like a magnifying glass takes you back to the &#039;&#039;Compose email&#039;&#039; page, but pre-fills the form with the original values from the old email.  This is handy for resending an email to a particular user or for sending similar emails.  The other image is in a shape of an &#039;&#039;X&#039;&#039; and it deletes a single sent email.&lt;br /&gt;
All columns are collapsible and sortable.  If you have more than ten emails in the history, then a paging mechanism is displayed for paging through all the sent emails.&lt;br /&gt;
&lt;br /&gt;
Also, there is a &#039;&#039;&#039;Clear History&#039;&#039;&#039; button on the right in the header of the page.  Clicking on this button brings you to a confirmation page prompting you to delete all entries in your history.  Choosing &#039;&#039;yes&#039;&#039; will clear your history and choosing &#039;&#039;no&#039;&#039; will leave the history unchanged.  If you have no emails in your history, then the button is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;By the way&#039;&#039;&#039; there is an modified version of Quickmail which has a more straight-forward Graphical User Interface (GUI) and is easier to use for large classes. This block is known as &#039;&#039;&#039;&amp;quot;quickmail for large classes&amp;quot;&#039;&#039;&#039; or &#039;&#039;&#039;&amp;quot;quickmail v2.&amp;quot;&#039;&#039;&#039; This mod was implemented by the team at San Francisco State University and is currently maintained by [[Wen Hao Chuang]]. This enhanced version of Quickmail could be downloaded from http://moodle.org/mod/data/view.php?d=13&amp;amp;rid=764&lt;br /&gt;
&lt;br /&gt;
==Credits==&lt;br /&gt;
*Original developer: Mark Nielsen (currently co-maintained by Wen Hao Chuang)&lt;br /&gt;
*Project Manager: Michael Penney&lt;br /&gt;
*Postgres7 contribution: Rubens Ribeiro&lt;br /&gt;
*Language Translations:&lt;br /&gt;
**Japanese: Mitsuhiro Yoshida&lt;br /&gt;
**Spanish: Rubens Ribeiro&lt;br /&gt;
**French: Yves Dufour&lt;br /&gt;
**German: Andy Tagliani&lt;br /&gt;
**Slovak: Miroslav Fikar&lt;br /&gt;
**Hungarian: Császár-Cs. Péter&lt;br /&gt;
**Hebrew: Miki Alliel&lt;br /&gt;
**Italian: Lorenzo Nicora&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://moodle.org/mod/data/view.php?d=13&amp;amp;rid=92 Quickmail in modules and plugins]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contributed code]]&lt;br /&gt;
&lt;br /&gt;
[[ja:クイックメールブロック]]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Quickmail_block&amp;diff=43058</id>
		<title>Quickmail block</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Quickmail_block&amp;diff=43058"/>
		<updated>2008-09-02T21:34:57Z</updated>

		<summary type="html">&lt;p&gt;Chuang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;quickmail&#039;&#039;&#039; block adds a link to a tool that has a checkbox list of all students in the course, and a mail composition text area. You can check the students you like, and email those and only those. This enhances the existing communications systems of messaging (one user) and subcribed forums (all subscribers) by allowing teachers to select a specific subset of students. It was developed by Michael Penney&#039;s team at Humboldt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
Download Quickmail with the provided link in the [[Quickmail_block#Links | Links section]].  After unzipping the file, you will find the quickmail directory in block_quickmail_1.5/blocks/.  Copy this quickmail directory to your Moodle&#039;s blocks directory.  Then visit Moodle&#039;s admin screen, clik in Notifications so that Quickmail can install itself.  After that, you can add Quickmail to any course.&lt;br /&gt;
&lt;br /&gt;
==Block Display==&lt;br /&gt;
[[Image:Quickmail-en-blockdisplay-screenshot.jpg|right]]&lt;br /&gt;
The image to the right shows how Quickmail will appear when added to a course.  The three links are described as follows:&lt;br /&gt;
*&#039;&#039;&#039;Compose:&#039;&#039;&#039; takes you to Quickmail&#039;s email composition page.&lt;br /&gt;
*&#039;&#039;&#039;History:&#039;&#039;&#039; takes you to a history of all your emails sent by Quickmail in the current course.&lt;br /&gt;
*&#039;&#039;&#039;Settings:&#039;&#039;&#039; takes you to Quickmail&#039;s configuration screen; the same configuration screen as the block&#039;s edit button when course editing is turned on.  This link only appears for course teachers and administrators.&lt;br /&gt;
&lt;br /&gt;
==Block Settings==&lt;br /&gt;
Quickmail has two settings:&lt;br /&gt;
*&#039;&#039;&#039;Allow Students to use Quickmail:&#039;&#039;&#039; if &#039;&#039;Yes&#039;&#039; then Students will be able to see Quickmail in the course and use it to send emails.  If &#039;&#039;No&#039;&#039; then Quickmail will be hidden to the Students. &lt;br /&gt;
NOTE: Quickmail displays &#039;&#039;&#039;all email addresses&#039;&#039;&#039; for &#039;&#039;&#039;all moodle users&#039;&#039;&#039; in &#039;&#039;&#039;any course&#039;&#039;&#039;.  Quickmail overrides the user profile setting of &amp;quot;Hide my Email address from everyone&amp;quot;. &lt;br /&gt;
*&#039;&#039;&#039;Group mode:&#039;&#039;&#039; set the [[Groups#Group_modes | group mode]] of Quickmail.  This setting is disabled if [[Force_group_mode | Force group mode]] is turned &#039;&#039;On&#039;&#039; in the course.&lt;br /&gt;
&lt;br /&gt;
In Moodle 1.7 or later, the &#039;&#039;Allow Students to use Quickmail&#039;&#039; setting has been removed.  To allow students (or any other role) to use Quickmail, just override the Quickmail block capability called [[Capabilities/block/quickmail:cansend | block/quickmail:cansend]].  For more information about role management, please review the [[Manage_roles | Manage roles]] page.&lt;br /&gt;
&lt;br /&gt;
==Compose==&lt;br /&gt;
When composing an email, the following fields must be set:&lt;br /&gt;
*&#039;&#039;&#039;To:&#039;&#039;&#039; this area contains a series of check boxes, one for each course user.  Each user who has their check box &#039;&#039;checked&#039;&#039;, will be emailed.  Also, there is a handy button that can &#039;&#039;Check All&#039;&#039; or &#039;&#039;Uncheck All&#039;&#039; users.  If a Group mode has been set in Quickmail&#039;s settings or if Force group mode is turned on, then the display of the users and their check boxes changes.  Here is how the different modes affect the display:&lt;br /&gt;
**&#039;&#039;&#039;Visible groups:&#039;&#039;&#039; users and their check boxes are grouped together by their groups and each group has a &#039;&#039;Check All&#039;&#039; and an &#039;&#039;Uncheck All&#039;&#039; button.&lt;br /&gt;
**&#039;&#039;&#039;Separate groups:&#039;&#039;&#039; only users belonging to your group are displayed.  Teachers always see the &#039;&#039;Visisible groups&#039;&#039; display because s/he never belongs to a group.&lt;br /&gt;
**&#039;&#039;&#039;Similarities between both modes:&#039;&#039;&#039; each group&#039;s name and picture are printed.  Also, all users not belonging to a group are added at the bottom.&lt;br /&gt;
*&#039;&#039;&#039;Subject:&#039;&#039;&#039; whatever is written here will appear as the email&#039;s subject.&lt;br /&gt;
*&#039;&#039;&#039;Message:&#039;&#039;&#039; this area is used to compose the email message or body.  You can use the [[HTML_editor | HTML editor]] for this section if you have it turned on in your user profile.  Otherwise, you can select from one of Moodle&#039;s [[Formatting_options | formats]].&lt;br /&gt;
*&#039;&#039;&#039;Attachment:&#039;&#039;&#039; this is the only optional field and it behaves differently for Students and for Teachers.&lt;br /&gt;
**Students can select a file from their hard drive to attach to the email.  This file is only temporarily stored on the server and it deleted after the email has been sent.&lt;br /&gt;
**Teachers use the standard course files interface.  These files are stored in the course files and are never removed by Quickmail.&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
This page displays a table with information regarding sent emails.  The columns are as follows:&lt;br /&gt;
*&#039;&#039;&#039;Date:&#039;&#039;&#039; the day and time of when the email was sent.&lt;br /&gt;
*&#039;&#039;&#039;Subject:&#039;&#039;&#039; the subject of the email.&lt;br /&gt;
*&#039;&#039;&#039;Attachment:&#039;&#039;&#039; name of the attachment sent along with the email.&lt;br /&gt;
*&#039;&#039;&#039;Action:&#039;&#039;&#039; contains action buttons.  The button that looks like a magnifying glass takes you back to the &#039;&#039;Compose email&#039;&#039; page, but pre-fills the form with the original values from the old email.  This is handy for resending an email to a particular user or for sending similar emails.  The other image is in a shape of an &#039;&#039;X&#039;&#039; and it deletes a single sent email.&lt;br /&gt;
All columns are collapsible and sortable.  If you have more than ten emails in the history, then a paging mechanism is displayed for paging through all the sent emails.&lt;br /&gt;
&lt;br /&gt;
Also, there is a &#039;&#039;&#039;Clear History&#039;&#039;&#039; button on the right in the header of the page.  Clicking on this button brings you to a confirmation page prompting you to delete all entries in your history.  Choosing &#039;&#039;yes&#039;&#039; will clear your history and choosing &#039;&#039;no&#039;&#039; will leave the history unchanged.  If you have no emails in your history, then the button is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;By the way&#039;&#039;&#039; there is an modified version of Quickmail which has a more straight-forward Graphical User Interface (GUI) and is easier to use for large classes. This block is known as &#039;&#039;&#039;&amp;quot;quickmail for large classes&amp;quot;&#039;&#039;&#039; or &#039;&#039;&#039;&amp;quot;quickmail v2.&amp;quot;&#039;&#039;&#039; This mod was implemented by the team at San Francisco State University and is currently maintained by [Wen Hao Chuang]. This enhanced version of Quickmail could be downloaded from http://moodle.org/mod/data/view.php?d=13&amp;amp;rid=764&lt;br /&gt;
&lt;br /&gt;
==Credits==&lt;br /&gt;
*Original developer: Mark Nielsen (currently co-maintained by Wen Hao Chuang)&lt;br /&gt;
*Project Manager: Michael Penney&lt;br /&gt;
*Postgres7 contribution: Rubens Ribeiro&lt;br /&gt;
*Language Translations:&lt;br /&gt;
**Japanese: Mitsuhiro Yoshida&lt;br /&gt;
**Spanish: Rubens Ribeiro&lt;br /&gt;
**French: Yves Dufour&lt;br /&gt;
**German: Andy Tagliani&lt;br /&gt;
**Slovak: Miroslav Fikar&lt;br /&gt;
**Hungarian: Császár-Cs. Péter&lt;br /&gt;
**Hebrew: Miki Alliel&lt;br /&gt;
**Italian: Lorenzo Nicora&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://moodle.org/mod/data/view.php?d=13&amp;amp;rid=92 Quickmail in modules and plugins]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contributed code]]&lt;br /&gt;
&lt;br /&gt;
[[ja:クイックメールブロック]]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=FERPA&amp;diff=41038</id>
		<title>FERPA</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=FERPA&amp;diff=41038"/>
		<updated>2008-07-31T16:28:26Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* What can I do to make my Moodle install compliant with FERPA? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;quot;The Family Educational Rights and Privacy Act (FERPA) (20 U.S.C. § 1232g; 34 CFR Part 99) is a Federal law that protects the privacy of student education records. The law applies to all schools that receive funds under an applicable program of the U.S. Department of Education.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FERPA gives parents certain rights with respect to their children&#039;s education records. These rights transfer to the student when he or she reaches the age of 18 or attends a school beyond the high school level. Students to whom the rights have transferred are &amp;quot;eligible students.&amp;quot; [http://www.ed.gov/policy/gen/guid/fpco/ferpa/index.html 1]&lt;br /&gt;
&lt;br /&gt;
Moodle is used in many different contexts.  This will affect how you may implement roles and access for your Moodle instance.  Some institutions will have very strict requirements.  Others may face challenges of multiple contexts for the same instance, such as some public spaces and some instructional spaces that require restricted access.&lt;br /&gt;
&lt;br /&gt;
In general, &#039;&#039;&#039;directory information&#039;&#039;&#039; is considered public.  Examples of common items that may be considered &amp;quot;directory&amp;quot; information include: the student&#039;s name, address, photograph, telephone number, e-mail address, date and place of birth, major field of study, academic load, participation in officially recognized activities and sports, weight and height of members of athletic teams, dates of attendance, degrees, honors, and awards received, class year in school, and most previous educational agency or institution attended.&lt;br /&gt;
&lt;br /&gt;
Directory information is defined by the institution and this definition is made public knowledge.  For example, some institutions include e-mail addresses as directory information, and some do not.  The student is allowed to OPT OUT by submitting a written request to the registrar&#039;s office (or other appropriate office, depending on the organization of the school).  Students who file such a request should not have any of their information published in event programs (such as &amp;quot;meet the athletes&amp;quot; booklets distributed at sporting events) or directories.  The student usually must renew this request every semester.&lt;br /&gt;
&lt;br /&gt;
Student&#039;s &#039;&#039;&#039;educational records&#039;&#039;&#039; are protected. &amp;quot;Student educational records&amp;quot; are generally defined as any personally identifiable records about a student or former student, and made, received or maintained by someone acting on behalf of the institution. Common items falling under this category include: student test scores and grades; submissions for assignments, class discussions or recorded comments, or any other materials produced by students in which the student can be identified; and listings of courses in which the student is enrolled.  Some of these things are disclosed within the class, to the instructor and course participants, under &amp;quot;need to know&amp;quot;.  They are not, however, disclosed to individuals outside the class (other instructors, other students, guests).  In fact,  [http://elearnmag.org/subpage.cfm?section=articles&amp;amp;article=28-1 inviting an on-line guest lecturer] and adding them to the course, even temporarily, could cause a privacy violation.  &lt;br /&gt;
	&lt;br /&gt;
These items clearly relate to the way Moodle is typically used to facilitate learning.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Here are a list of identified problems and possible solutions: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;OPT OUT of profile info&#039;&#039;&#039;:  there is no way for us to check &amp;quot;hide profile&amp;quot; for an individual student.  Could we somehow add a field (that is accessible for those folks using batch enrolling techniques, from uploadusers to LDAP) that would selectively disable profile information for an individual student? Or, wouldn&#039;t it be even better to allow the STUDENT to check this box? I am checking on what roles should not have access to this information.   &#039;&#039;&#039;(Solution: Admin &amp;gt; Users &amp;gt; Permissions &amp;gt; User policies &amp;gt; hiddenuserfields will hide them for all normal users)&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;OPT OUT of name display in online users block&#039;&#039;&#039;: The on-line users block, while encouraging community, allows the display of any user on the system.  If you click on the users name, you may be denied access to the profile (depends on roles settings), but the name is clearly visible.  If a student opted out of directory information, then the online users block should also not display the name.  &#039;&#039;&#039;(Solution:  Moodle 2.0 will have a pseudonym feature so that each user can pick an alias for themselves.  Only people with the right capability will see the real name).&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;OPT OUT of other courses being revealed in profile&#039;&#039;&#039;: While the profile is likely accessible only by the student, the instructor, and other students in the class, it seems problematic from a privacy standpoint, to have all the courses that student is enrolled in to be displayed.  Even an instructor probably doesn&#039;t &amp;quot;need to know&amp;quot; what other moodle courses a student is enrolled in.  If they DO need to know this, they will likely have another method to access the information!  Could we have a switch in the profile that the student can control to hide this information selectively? &#039;&#039;&#039;(Solution: Moodle 2.0 will have a capability to control this.  It&#039;s easy to hack in user/view.php in the meantime, or take a look at MDL-13835 to see if you can implement or vote for it.)&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Student submissions&#039;&#039;&#039; or &#039;&#039;&#039;sensitive instructor documents&#039;&#039;&#039; might be accessed by users who know the URL; some debate is in progress about whether or not preliminary test results were flawed owing to the possibility of loading subsequent attempts from the cache rather than the server.  We do know that files uploaded into the course area can&#039;t be selectively marked &amp;quot;public&amp;quot; or &amp;quot;private&amp;quot;.  Work on the file repository code, due in Moodle 2.0, may solve this problem.  At least in Moodle 1.6.3, I tested this.  As a student, I could access a graded document returned to a student through a private forum if I knew the URL.  I could do this if I was enrolled in the course.  If I cleared the cache between different attempts, I found that I could not do this if I was not logged in at all or if I were logged in as a student but not enrolled in the class.  So we need to get some more definitive data on what is actually happening, and be vigilant about taking cache into consideration. &#039;&#039;&#039;(Moodle 2.0 has a new [[Development:File API|File API]] which will solve this once and for all.)&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Gradebook single student view&#039;&#039;&#039;:  If a student comes to your office and wants to talk about grades, the gradebook view requires some clicking to get to the single student view.  It is possible to view other student&#039;s grades as the instructor struggles to get to the right screen.  Would it be possible to trigger &amp;quot;full class view&amp;quot; or &amp;quot;single student view&amp;quot; earlier in the process?  &#039;&#039;&#039;(Solution: use a bookmark to the User report in Moodle 1.9)&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Assignment and Quiz single student view&#039;&#039;&#039;:  A similar situation exists with assignments and quizzes.  If a students asks me if I have one of their assigments or quiz results, I click on the assignment or quiz and the list shows the results for every student in my class.  I don&#039;t think I know of a good way to show the results for a single student, especially if that student&#039;s submission has not been graded yet.   &#039;&#039;&#039;(Solution:  Ask the student to look away, or swivel the monitor.  Otherwise we need a ne report that makes you type in their name.  Perhaps  &amp;quot;Lookup grade for [      ]&amp;quot; on the main page?)&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Notes (Introduced in Moodle 1.9)&#039;&#039;&#039;: A new feature in Moodle 1.9 allows notes at the site, course, and personal level.  You can disable this feature by setting moodle/notes:manage to prohibit for the teacher role.  This feature can be useful, but should be used within school policy with respect to need to know and student privacy expectations.&lt;br /&gt;
&lt;br /&gt;
==What can I do to make my Moodle install compliant with FERPA?==&lt;br /&gt;
&lt;br /&gt;
First off, every institution interprets FERPA a little bit differently. Find out what your institution classifies as &#039;&#039;&#039;directory information&#039;&#039;&#039;, and what its &#039;&#039;&#039;disclosure policy&#039;&#039;&#039; is. It may or may not include email address. Most solutions will not be solely Moodle solutions. Usually an institution looks carefully at its practice, and decides how Moodle will fit into this practice in a FERPA-compliant way. &lt;br /&gt;
&lt;br /&gt;
Moodle is designed to allow great interactivity and sharing between users, but this conflicts with strict interpretations of FERPA. If you use 1.8 or higher, you&#039;re in luck, because you can edit all user permissions by restricting what screen views each global role can access.&lt;br /&gt;
&lt;br /&gt;
Here are some things you can do when configuring Moodle:&lt;br /&gt;
&lt;br /&gt;
# When installing, make sure your moodledata directory is placed outside of the public_html directory. &lt;br /&gt;
# Disable email-based self-registration. Moodle offers several other ways of authenticating users. This way you can be sure that everyone accessing your site is a member of your institution. &lt;br /&gt;
# Require loginforprofiles.&lt;br /&gt;
# Do not use &#039;&#039;&#039;opentogoogle&#039;&#039;&#039;.&lt;br /&gt;
# Hide the &#039;&#039;&#039;guest login button&#039;&#039;&#039;. In 1.8+, find this option in &#039;&#039;&#039;Admin block &amp;gt; Users &amp;gt; Authentication&#039;&#039;&#039;.&lt;br /&gt;
# Configure the Front Page so that courses list is not visible for unauthenticated users.&lt;br /&gt;
# Configure the Courses block so that it will not display a link to All Courses. This way even authenticated users cannot view a list of all courses on the installation.&lt;br /&gt;
# If you allow guest access, &#039;&#039;&#039;edit the guest permissions to prevent view of profiles and participants lists&#039;&#039;&#039;.&lt;br /&gt;
# Prevent student users from viewing the profiles of others (even if the two students are in a course together, the profile shows the list of courses a student is in, and thereby discloses non-directory information). &lt;br /&gt;
# Decide which blocks your institution wants to use, and edit the permissions for your global roles to prevent users from accessing user profiles or enrollment information through those blocks (or disable blocks you are not comfortable allowing instructors to place in a course). &lt;br /&gt;
# Think carefully about the ramifications of allowing instructors to assign other instructors to courses, or about assigning non-faculty members as instructors of courses.&lt;br /&gt;
# Consider searching for courses with no enrollment keys and correcting this deficiency.  Also consider editing the language strings to prevent a hint from being shown should a student type in an incorrect enrollment key for a course.&lt;br /&gt;
&lt;br /&gt;
Most faculty will have signed a FERPA form agreeing not to disclose non-directory information.  Here are some things your faculty should know:&lt;br /&gt;
&lt;br /&gt;
# Files in the files directory in the admin block are accessible to any user enrolled in the course. Non-directory information should not be stored there.&lt;br /&gt;
# There are screens which show grades for a list of student users--students should not ever view these screens, even casually, for instance, when they come into an instructor&#039;s office to discuss something. Most instructors also use student information systems, and understand this practice.&lt;br /&gt;
&lt;br /&gt;
Many institutions run into trouble when a single Moodle installation is used for instructional spaces and non-instructional spaces (such as conference work areas, presentation spaces, and social networking spaces). It is really difficult to have a Moodle installation be both FERPA-compliant and fully functional for users focused on non-instructional collaboration. Consider running a second installation of Moodle with more relaxed access for applications like this.&lt;br /&gt;
&lt;br /&gt;
==What do I do about students who request holds on directory information?==&lt;br /&gt;
&lt;br /&gt;
Talk with your registrar and administrators to determine the best way to protect students with holds on their information. This will depend on your institution&#039;s interpretation of FERPA, and the setup of your Moodle installation.&lt;br /&gt;
&lt;br /&gt;
Faculty should be aware of your institution&#039;s policy regarding students with holds on their directory information, and have received instruction about how to properly manage that information in conformance with your institution&#039;s practices. The enrollment list for a course shows a list of all user accounts in the Moodle install. If your institution allows faculty to enroll their own students, faculty will see this list, which will include any students with holds on their information. If your institution interprets FERPA strictly, and you can&#039;t make other administrative adjustments for students who have FERPA holds, you may want to restrict this activity solely to those with admin accounts.&lt;br /&gt;
&lt;br /&gt;
==Full FERPA Hold==&lt;br /&gt;
&lt;br /&gt;
In the event of a full FERPA hold, a student&#039;s data may only be released to parties with a specific need-to-know. This does not include students in the class or instructors not actually teaching the student. We have identified several key places where FERPA data is currently visible:&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Participants List&#039;&#039;&#039;: Providing a list of participants to the public violates FERPA in a broad sense; technically, though, even showing students with a full FERPA hold to others enrolled in the class violates FERPA.&lt;br /&gt;
#&#039;&#039;&#039;Profile View&#039;&#039;&#039;: A full FERPA hold should completely disable profile viewing. This means both user/view.php and modules which display user full names such as blog/index.php and forum/user.php.&lt;br /&gt;
#&#039;&#039;&#039;Assign Roles&#039;&#039;&#039;: Currently the Assign Roles function provides a full list of all users in the system. Those with a FERPA hold should not appear on this list as Instructors not teaching them do not have a need to know that they exist.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=77059 Moodle and FERPA] forum discussion&lt;br /&gt;
*[1] [http://www.ed.gov/policy/gen/guid/fpco/ferpa/index.html Family Education Rights and Privacy Act] (FERPA) U. S. Dept. of Education&lt;br /&gt;
*[http://www.nacada.ksu.edu/Resources/FERPA-Overview.htm &amp;quot;FERPA: Basic Guidelines for Faculty and Staff&amp;quot;] National Academic Advising Association&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=90682 Notes Feature in 1.9] forum discussion&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=FERPA&amp;diff=41037</id>
		<title>FERPA</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=FERPA&amp;diff=41037"/>
		<updated>2008-07-31T16:27:08Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* What can I do to make my Moodle install compliant with FERPA? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;quot;The Family Educational Rights and Privacy Act (FERPA) (20 U.S.C. § 1232g; 34 CFR Part 99) is a Federal law that protects the privacy of student education records. The law applies to all schools that receive funds under an applicable program of the U.S. Department of Education.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FERPA gives parents certain rights with respect to their children&#039;s education records. These rights transfer to the student when he or she reaches the age of 18 or attends a school beyond the high school level. Students to whom the rights have transferred are &amp;quot;eligible students.&amp;quot; [http://www.ed.gov/policy/gen/guid/fpco/ferpa/index.html 1]&lt;br /&gt;
&lt;br /&gt;
Moodle is used in many different contexts.  This will affect how you may implement roles and access for your Moodle instance.  Some institutions will have very strict requirements.  Others may face challenges of multiple contexts for the same instance, such as some public spaces and some instructional spaces that require restricted access.&lt;br /&gt;
&lt;br /&gt;
In general, &#039;&#039;&#039;directory information&#039;&#039;&#039; is considered public.  Examples of common items that may be considered &amp;quot;directory&amp;quot; information include: the student&#039;s name, address, photograph, telephone number, e-mail address, date and place of birth, major field of study, academic load, participation in officially recognized activities and sports, weight and height of members of athletic teams, dates of attendance, degrees, honors, and awards received, class year in school, and most previous educational agency or institution attended.&lt;br /&gt;
&lt;br /&gt;
Directory information is defined by the institution and this definition is made public knowledge.  For example, some institutions include e-mail addresses as directory information, and some do not.  The student is allowed to OPT OUT by submitting a written request to the registrar&#039;s office (or other appropriate office, depending on the organization of the school).  Students who file such a request should not have any of their information published in event programs (such as &amp;quot;meet the athletes&amp;quot; booklets distributed at sporting events) or directories.  The student usually must renew this request every semester.&lt;br /&gt;
&lt;br /&gt;
Student&#039;s &#039;&#039;&#039;educational records&#039;&#039;&#039; are protected. &amp;quot;Student educational records&amp;quot; are generally defined as any personally identifiable records about a student or former student, and made, received or maintained by someone acting on behalf of the institution. Common items falling under this category include: student test scores and grades; submissions for assignments, class discussions or recorded comments, or any other materials produced by students in which the student can be identified; and listings of courses in which the student is enrolled.  Some of these things are disclosed within the class, to the instructor and course participants, under &amp;quot;need to know&amp;quot;.  They are not, however, disclosed to individuals outside the class (other instructors, other students, guests).  In fact,  [http://elearnmag.org/subpage.cfm?section=articles&amp;amp;article=28-1 inviting an on-line guest lecturer] and adding them to the course, even temporarily, could cause a privacy violation.  &lt;br /&gt;
	&lt;br /&gt;
These items clearly relate to the way Moodle is typically used to facilitate learning.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Here are a list of identified problems and possible solutions: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;OPT OUT of profile info&#039;&#039;&#039;:  there is no way for us to check &amp;quot;hide profile&amp;quot; for an individual student.  Could we somehow add a field (that is accessible for those folks using batch enrolling techniques, from uploadusers to LDAP) that would selectively disable profile information for an individual student? Or, wouldn&#039;t it be even better to allow the STUDENT to check this box? I am checking on what roles should not have access to this information.   &#039;&#039;&#039;(Solution: Admin &amp;gt; Users &amp;gt; Permissions &amp;gt; User policies &amp;gt; hiddenuserfields will hide them for all normal users)&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;OPT OUT of name display in online users block&#039;&#039;&#039;: The on-line users block, while encouraging community, allows the display of any user on the system.  If you click on the users name, you may be denied access to the profile (depends on roles settings), but the name is clearly visible.  If a student opted out of directory information, then the online users block should also not display the name.  &#039;&#039;&#039;(Solution:  Moodle 2.0 will have a pseudonym feature so that each user can pick an alias for themselves.  Only people with the right capability will see the real name).&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;OPT OUT of other courses being revealed in profile&#039;&#039;&#039;: While the profile is likely accessible only by the student, the instructor, and other students in the class, it seems problematic from a privacy standpoint, to have all the courses that student is enrolled in to be displayed.  Even an instructor probably doesn&#039;t &amp;quot;need to know&amp;quot; what other moodle courses a student is enrolled in.  If they DO need to know this, they will likely have another method to access the information!  Could we have a switch in the profile that the student can control to hide this information selectively? &#039;&#039;&#039;(Solution: Moodle 2.0 will have a capability to control this.  It&#039;s easy to hack in user/view.php in the meantime, or take a look at MDL-13835 to see if you can implement or vote for it.)&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Student submissions&#039;&#039;&#039; or &#039;&#039;&#039;sensitive instructor documents&#039;&#039;&#039; might be accessed by users who know the URL; some debate is in progress about whether or not preliminary test results were flawed owing to the possibility of loading subsequent attempts from the cache rather than the server.  We do know that files uploaded into the course area can&#039;t be selectively marked &amp;quot;public&amp;quot; or &amp;quot;private&amp;quot;.  Work on the file repository code, due in Moodle 2.0, may solve this problem.  At least in Moodle 1.6.3, I tested this.  As a student, I could access a graded document returned to a student through a private forum if I knew the URL.  I could do this if I was enrolled in the course.  If I cleared the cache between different attempts, I found that I could not do this if I was not logged in at all or if I were logged in as a student but not enrolled in the class.  So we need to get some more definitive data on what is actually happening, and be vigilant about taking cache into consideration. &#039;&#039;&#039;(Moodle 2.0 has a new [[Development:File API|File API]] which will solve this once and for all.)&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Gradebook single student view&#039;&#039;&#039;:  If a student comes to your office and wants to talk about grades, the gradebook view requires some clicking to get to the single student view.  It is possible to view other student&#039;s grades as the instructor struggles to get to the right screen.  Would it be possible to trigger &amp;quot;full class view&amp;quot; or &amp;quot;single student view&amp;quot; earlier in the process?  &#039;&#039;&#039;(Solution: use a bookmark to the User report in Moodle 1.9)&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Assignment and Quiz single student view&#039;&#039;&#039;:  A similar situation exists with assignments and quizzes.  If a students asks me if I have one of their assigments or quiz results, I click on the assignment or quiz and the list shows the results for every student in my class.  I don&#039;t think I know of a good way to show the results for a single student, especially if that student&#039;s submission has not been graded yet.   &#039;&#039;&#039;(Solution:  Ask the student to look away, or swivel the monitor.  Otherwise we need a ne report that makes you type in their name.  Perhaps  &amp;quot;Lookup grade for [      ]&amp;quot; on the main page?)&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Notes (Introduced in Moodle 1.9)&#039;&#039;&#039;: A new feature in Moodle 1.9 allows notes at the site, course, and personal level.  You can disable this feature by setting moodle/notes:manage to prohibit for the teacher role.  This feature can be useful, but should be used within school policy with respect to need to know and student privacy expectations.&lt;br /&gt;
&lt;br /&gt;
==What can I do to make my Moodle install compliant with FERPA?==&lt;br /&gt;
&lt;br /&gt;
First off, every institution interprets FERPA a little bit differently. Find out what your institution classifies as &#039;&#039;&#039;directory information&#039;&#039;&#039;, and what its &#039;&#039;&#039;disclosure policy&#039;&#039;&#039; is. It may or may not include email address. Most solutions will not be solely Moodle solutions. Usually an institution looks carefully at its practice, and decides how Moodle will fit into this practice in a FERPA-compliant way. &lt;br /&gt;
&lt;br /&gt;
Moodle is designed to allow great interactivity and sharing between users, but this conflicts with strict interpretations of FERPA. If you use 1.8 or higher, you&#039;re in luck, because you can edit all user permissions by restricting what screen views each global role can access.&lt;br /&gt;
&lt;br /&gt;
Here are some things you can do when configuring Moodle:&lt;br /&gt;
&lt;br /&gt;
# When installing, make sure your moodledata directory is placed outside of the public_html directory. &lt;br /&gt;
# Disable email-based self-registration. Moodle offers several other ways of authenticating users. This way you can be sure that everyone accessing your site is a member of your institution. &lt;br /&gt;
# Require loginforprofiles.&lt;br /&gt;
# Do not use &#039;&#039;&#039;opentogoogle&#039;&#039;&#039;.&lt;br /&gt;
# Hide the &#039;&#039;&#039;guest login button&#039;&#039;&#039;. In 1.8+, find this option in &#039;&#039;&#039;Admin block &amp;gt; Users &amp;gt; Authentication&#039;&#039;&#039;.&lt;br /&gt;
# Configure the Front Page so that courses list is not visible for unauthenticated users.&lt;br /&gt;
# Configure the Courses block so that it will not display a link to All Courses. This way even authenticated users cannot view a list of all courses on the installation.&lt;br /&gt;
# If you allow guest access, edit the guest permissions to prevent view of profiles and participants lists.&lt;br /&gt;
# Prevent student users from viewing the profiles of others (even if the two students are in a course together, the profile shows the list of courses a student is in, and thereby discloses non-directory information). &lt;br /&gt;
# Decide which blocks your institution wants to use, and edit the permissions for your global roles to prevent users from accessing user profiles or enrollment information through those blocks (or disable blocks you are not comfortable allowing instructors to place in a course). &lt;br /&gt;
# Think carefully about the ramifications of allowing instructors to assign other instructors to courses, or about assigning non-faculty members as instructors of courses.&lt;br /&gt;
# Consider searching for courses with no enrollment keys and correcting this deficiency.  Also consider editing the language strings to prevent a hint from being shown should a student type in an incorrect enrollment key for a course.&lt;br /&gt;
&lt;br /&gt;
Most faculty will have signed a FERPA form agreeing not to disclose non-directory information.  Here are some things your faculty should know:&lt;br /&gt;
&lt;br /&gt;
# Files in the files directory in the admin block are accessible to any user enrolled in the course. Non-directory information should not be stored there.&lt;br /&gt;
# There are screens which show grades for a list of student users--students should not ever view these screens, even casually, for instance, when they come into an instructor&#039;s office to discuss something. Most instructors also use student information systems, and understand this practice.&lt;br /&gt;
&lt;br /&gt;
Many institutions run into trouble when a single Moodle installation is used for instructional spaces and non-instructional spaces (such as conference work areas, presentation spaces, and social networking spaces). It is really difficult to have a Moodle installation be both FERPA-compliant and fully functional for users focused on non-instructional collaboration. Consider running a second installation of Moodle with more relaxed access for applications like this.&lt;br /&gt;
&lt;br /&gt;
==What do I do about students who request holds on directory information?==&lt;br /&gt;
&lt;br /&gt;
Talk with your registrar and administrators to determine the best way to protect students with holds on their information. This will depend on your institution&#039;s interpretation of FERPA, and the setup of your Moodle installation.&lt;br /&gt;
&lt;br /&gt;
Faculty should be aware of your institution&#039;s policy regarding students with holds on their directory information, and have received instruction about how to properly manage that information in conformance with your institution&#039;s practices. The enrollment list for a course shows a list of all user accounts in the Moodle install. If your institution allows faculty to enroll their own students, faculty will see this list, which will include any students with holds on their information. If your institution interprets FERPA strictly, and you can&#039;t make other administrative adjustments for students who have FERPA holds, you may want to restrict this activity solely to those with admin accounts.&lt;br /&gt;
&lt;br /&gt;
==Full FERPA Hold==&lt;br /&gt;
&lt;br /&gt;
In the event of a full FERPA hold, a student&#039;s data may only be released to parties with a specific need-to-know. This does not include students in the class or instructors not actually teaching the student. We have identified several key places where FERPA data is currently visible:&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Participants List&#039;&#039;&#039;: Providing a list of participants to the public violates FERPA in a broad sense; technically, though, even showing students with a full FERPA hold to others enrolled in the class violates FERPA.&lt;br /&gt;
#&#039;&#039;&#039;Profile View&#039;&#039;&#039;: A full FERPA hold should completely disable profile viewing. This means both user/view.php and modules which display user full names such as blog/index.php and forum/user.php.&lt;br /&gt;
#&#039;&#039;&#039;Assign Roles&#039;&#039;&#039;: Currently the Assign Roles function provides a full list of all users in the system. Those with a FERPA hold should not appear on this list as Instructors not teaching them do not have a need to know that they exist.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=77059 Moodle and FERPA] forum discussion&lt;br /&gt;
*[1] [http://www.ed.gov/policy/gen/guid/fpco/ferpa/index.html Family Education Rights and Privacy Act] (FERPA) U. S. Dept. of Education&lt;br /&gt;
*[http://www.nacada.ksu.edu/Resources/FERPA-Overview.htm &amp;quot;FERPA: Basic Guidelines for Faculty and Staff&amp;quot;] National Academic Advising Association&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=90682 Notes Feature in 1.9] forum discussion&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=FERPA&amp;diff=41036</id>
		<title>FERPA</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=FERPA&amp;diff=41036"/>
		<updated>2008-07-31T16:25:54Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* What can I do to make my Moodle install compliant with FERPA? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;quot;The Family Educational Rights and Privacy Act (FERPA) (20 U.S.C. § 1232g; 34 CFR Part 99) is a Federal law that protects the privacy of student education records. The law applies to all schools that receive funds under an applicable program of the U.S. Department of Education.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FERPA gives parents certain rights with respect to their children&#039;s education records. These rights transfer to the student when he or she reaches the age of 18 or attends a school beyond the high school level. Students to whom the rights have transferred are &amp;quot;eligible students.&amp;quot; [http://www.ed.gov/policy/gen/guid/fpco/ferpa/index.html 1]&lt;br /&gt;
&lt;br /&gt;
Moodle is used in many different contexts.  This will affect how you may implement roles and access for your Moodle instance.  Some institutions will have very strict requirements.  Others may face challenges of multiple contexts for the same instance, such as some public spaces and some instructional spaces that require restricted access.&lt;br /&gt;
&lt;br /&gt;
In general, &#039;&#039;&#039;directory information&#039;&#039;&#039; is considered public.  Examples of common items that may be considered &amp;quot;directory&amp;quot; information include: the student&#039;s name, address, photograph, telephone number, e-mail address, date and place of birth, major field of study, academic load, participation in officially recognized activities and sports, weight and height of members of athletic teams, dates of attendance, degrees, honors, and awards received, class year in school, and most previous educational agency or institution attended.&lt;br /&gt;
&lt;br /&gt;
Directory information is defined by the institution and this definition is made public knowledge.  For example, some institutions include e-mail addresses as directory information, and some do not.  The student is allowed to OPT OUT by submitting a written request to the registrar&#039;s office (or other appropriate office, depending on the organization of the school).  Students who file such a request should not have any of their information published in event programs (such as &amp;quot;meet the athletes&amp;quot; booklets distributed at sporting events) or directories.  The student usually must renew this request every semester.&lt;br /&gt;
&lt;br /&gt;
Student&#039;s &#039;&#039;&#039;educational records&#039;&#039;&#039; are protected. &amp;quot;Student educational records&amp;quot; are generally defined as any personally identifiable records about a student or former student, and made, received or maintained by someone acting on behalf of the institution. Common items falling under this category include: student test scores and grades; submissions for assignments, class discussions or recorded comments, or any other materials produced by students in which the student can be identified; and listings of courses in which the student is enrolled.  Some of these things are disclosed within the class, to the instructor and course participants, under &amp;quot;need to know&amp;quot;.  They are not, however, disclosed to individuals outside the class (other instructors, other students, guests).  In fact,  [http://elearnmag.org/subpage.cfm?section=articles&amp;amp;article=28-1 inviting an on-line guest lecturer] and adding them to the course, even temporarily, could cause a privacy violation.  &lt;br /&gt;
	&lt;br /&gt;
These items clearly relate to the way Moodle is typically used to facilitate learning.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Here are a list of identified problems and possible solutions: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;OPT OUT of profile info&#039;&#039;&#039;:  there is no way for us to check &amp;quot;hide profile&amp;quot; for an individual student.  Could we somehow add a field (that is accessible for those folks using batch enrolling techniques, from uploadusers to LDAP) that would selectively disable profile information for an individual student? Or, wouldn&#039;t it be even better to allow the STUDENT to check this box? I am checking on what roles should not have access to this information.   &#039;&#039;&#039;(Solution: Admin &amp;gt; Users &amp;gt; Permissions &amp;gt; User policies &amp;gt; hiddenuserfields will hide them for all normal users)&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;OPT OUT of name display in online users block&#039;&#039;&#039;: The on-line users block, while encouraging community, allows the display of any user on the system.  If you click on the users name, you may be denied access to the profile (depends on roles settings), but the name is clearly visible.  If a student opted out of directory information, then the online users block should also not display the name.  &#039;&#039;&#039;(Solution:  Moodle 2.0 will have a pseudonym feature so that each user can pick an alias for themselves.  Only people with the right capability will see the real name).&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;OPT OUT of other courses being revealed in profile&#039;&#039;&#039;: While the profile is likely accessible only by the student, the instructor, and other students in the class, it seems problematic from a privacy standpoint, to have all the courses that student is enrolled in to be displayed.  Even an instructor probably doesn&#039;t &amp;quot;need to know&amp;quot; what other moodle courses a student is enrolled in.  If they DO need to know this, they will likely have another method to access the information!  Could we have a switch in the profile that the student can control to hide this information selectively? &#039;&#039;&#039;(Solution: Moodle 2.0 will have a capability to control this.  It&#039;s easy to hack in user/view.php in the meantime, or take a look at MDL-13835 to see if you can implement or vote for it.)&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Student submissions&#039;&#039;&#039; or &#039;&#039;&#039;sensitive instructor documents&#039;&#039;&#039; might be accessed by users who know the URL; some debate is in progress about whether or not preliminary test results were flawed owing to the possibility of loading subsequent attempts from the cache rather than the server.  We do know that files uploaded into the course area can&#039;t be selectively marked &amp;quot;public&amp;quot; or &amp;quot;private&amp;quot;.  Work on the file repository code, due in Moodle 2.0, may solve this problem.  At least in Moodle 1.6.3, I tested this.  As a student, I could access a graded document returned to a student through a private forum if I knew the URL.  I could do this if I was enrolled in the course.  If I cleared the cache between different attempts, I found that I could not do this if I was not logged in at all or if I were logged in as a student but not enrolled in the class.  So we need to get some more definitive data on what is actually happening, and be vigilant about taking cache into consideration. &#039;&#039;&#039;(Moodle 2.0 has a new [[Development:File API|File API]] which will solve this once and for all.)&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Gradebook single student view&#039;&#039;&#039;:  If a student comes to your office and wants to talk about grades, the gradebook view requires some clicking to get to the single student view.  It is possible to view other student&#039;s grades as the instructor struggles to get to the right screen.  Would it be possible to trigger &amp;quot;full class view&amp;quot; or &amp;quot;single student view&amp;quot; earlier in the process?  &#039;&#039;&#039;(Solution: use a bookmark to the User report in Moodle 1.9)&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Assignment and Quiz single student view&#039;&#039;&#039;:  A similar situation exists with assignments and quizzes.  If a students asks me if I have one of their assigments or quiz results, I click on the assignment or quiz and the list shows the results for every student in my class.  I don&#039;t think I know of a good way to show the results for a single student, especially if that student&#039;s submission has not been graded yet.   &#039;&#039;&#039;(Solution:  Ask the student to look away, or swivel the monitor.  Otherwise we need a ne report that makes you type in their name.  Perhaps  &amp;quot;Lookup grade for [      ]&amp;quot; on the main page?)&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Notes (Introduced in Moodle 1.9)&#039;&#039;&#039;: A new feature in Moodle 1.9 allows notes at the site, course, and personal level.  You can disable this feature by setting moodle/notes:manage to prohibit for the teacher role.  This feature can be useful, but should be used within school policy with respect to need to know and student privacy expectations.&lt;br /&gt;
&lt;br /&gt;
==What can I do to make my Moodle install compliant with FERPA?==&lt;br /&gt;
&lt;br /&gt;
First off, every institution interprets FERPA a little bit differently. Find out what your institution classifies as &#039;&#039;&#039;directory information&#039;&#039;&#039;, and what its &#039;&#039;&#039;disclosure policy&#039;&#039;&#039; is. It may or may not include email address. Most solutions will not be solely Moodle solutions. Usually an institution looks carefully at its practice, and decides how Moodle will fit into this practice in a FERPA-compliant way. &lt;br /&gt;
&lt;br /&gt;
Moodle is designed to allow great interactivity and sharing between users, but this conflicts with strict interpretations of FERPA. If you use 1.8 or higher, you&#039;re in luck, because you can edit all user permissions by restricting what screen views each global role can access.&lt;br /&gt;
&lt;br /&gt;
Here are some things you can do when configuring Moodle:&lt;br /&gt;
&lt;br /&gt;
# When installing, make sure your moodledata directory is placed outside of the public_html directory. &lt;br /&gt;
# Disable email-based self-registration. Moodle offers several other ways of authenticating users. This way you can be sure that everyone accessing your site is a member of your institution. &lt;br /&gt;
# Require loginforprofiles.&lt;br /&gt;
# Do not use &#039;&#039;&#039;opentogoogle&#039;&#039;&#039;.&lt;br /&gt;
# Hide the guest login button. In 1.8+, find this option in Admin block &amp;gt; Users &amp;gt; Authentication.&lt;br /&gt;
# Configure the Front Page so that courses list is not visible for unauthenticated users.&lt;br /&gt;
# Configure the Courses block so that it will not display a link to All Courses. This way even authenticated users cannot view a list of all courses on the installation.&lt;br /&gt;
# If you allow guest access, edit the guest permissions to prevent view of profiles and participants lists.&lt;br /&gt;
# Prevent student users from viewing the profiles of others (even if the two students are in a course together, the profile shows the list of courses a student is in, and thereby discloses non-directory information). &lt;br /&gt;
# Decide which blocks your institution wants to use, and edit the permissions for your global roles to prevent users from accessing user profiles or enrollment information through those blocks (or disable blocks you are not comfortable allowing instructors to place in a course). &lt;br /&gt;
# Think carefully about the ramifications of allowing instructors to assign other instructors to courses, or about assigning non-faculty members as instructors of courses.&lt;br /&gt;
# Consider searching for courses with no enrollment keys and correcting this deficiency.  Also consider editing the language strings to prevent a hint from being shown should a student type in an incorrect enrollment key for a course.&lt;br /&gt;
&lt;br /&gt;
Most faculty will have signed a FERPA form agreeing not to disclose non-directory information.  Here are some things your faculty should know:&lt;br /&gt;
&lt;br /&gt;
# Files in the files directory in the admin block are accessible to any user enrolled in the course. Non-directory information should not be stored there.&lt;br /&gt;
# There are screens which show grades for a list of student users--students should not ever view these screens, even casually, for instance, when they come into an instructor&#039;s office to discuss something. Most instructors also use student information systems, and understand this practice.&lt;br /&gt;
&lt;br /&gt;
Many institutions run into trouble when a single Moodle installation is used for instructional spaces and non-instructional spaces (such as conference work areas, presentation spaces, and social networking spaces). It is really difficult to have a Moodle installation be both FERPA-compliant and fully functional for users focused on non-instructional collaboration. Consider running a second installation of Moodle with more relaxed access for applications like this.&lt;br /&gt;
&lt;br /&gt;
==What do I do about students who request holds on directory information?==&lt;br /&gt;
&lt;br /&gt;
Talk with your registrar and administrators to determine the best way to protect students with holds on their information. This will depend on your institution&#039;s interpretation of FERPA, and the setup of your Moodle installation.&lt;br /&gt;
&lt;br /&gt;
Faculty should be aware of your institution&#039;s policy regarding students with holds on their directory information, and have received instruction about how to properly manage that information in conformance with your institution&#039;s practices. The enrollment list for a course shows a list of all user accounts in the Moodle install. If your institution allows faculty to enroll their own students, faculty will see this list, which will include any students with holds on their information. If your institution interprets FERPA strictly, and you can&#039;t make other administrative adjustments for students who have FERPA holds, you may want to restrict this activity solely to those with admin accounts.&lt;br /&gt;
&lt;br /&gt;
==Full FERPA Hold==&lt;br /&gt;
&lt;br /&gt;
In the event of a full FERPA hold, a student&#039;s data may only be released to parties with a specific need-to-know. This does not include students in the class or instructors not actually teaching the student. We have identified several key places where FERPA data is currently visible:&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Participants List&#039;&#039;&#039;: Providing a list of participants to the public violates FERPA in a broad sense; technically, though, even showing students with a full FERPA hold to others enrolled in the class violates FERPA.&lt;br /&gt;
#&#039;&#039;&#039;Profile View&#039;&#039;&#039;: A full FERPA hold should completely disable profile viewing. This means both user/view.php and modules which display user full names such as blog/index.php and forum/user.php.&lt;br /&gt;
#&#039;&#039;&#039;Assign Roles&#039;&#039;&#039;: Currently the Assign Roles function provides a full list of all users in the system. Those with a FERPA hold should not appear on this list as Instructors not teaching them do not have a need to know that they exist.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=77059 Moodle and FERPA] forum discussion&lt;br /&gt;
*[1] [http://www.ed.gov/policy/gen/guid/fpco/ferpa/index.html Family Education Rights and Privacy Act] (FERPA) U. S. Dept. of Education&lt;br /&gt;
*[http://www.nacada.ksu.edu/Resources/FERPA-Overview.htm &amp;quot;FERPA: Basic Guidelines for Faculty and Staff&amp;quot;] National Academic Advising Association&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=90682 Notes Feature in 1.9] forum discussion&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=FERPA&amp;diff=41035</id>
		<title>FERPA</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=FERPA&amp;diff=41035"/>
		<updated>2008-07-31T16:24:07Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* What can I do to make my Moodle install compliant with FERPA? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;quot;The Family Educational Rights and Privacy Act (FERPA) (20 U.S.C. § 1232g; 34 CFR Part 99) is a Federal law that protects the privacy of student education records. The law applies to all schools that receive funds under an applicable program of the U.S. Department of Education.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FERPA gives parents certain rights with respect to their children&#039;s education records. These rights transfer to the student when he or she reaches the age of 18 or attends a school beyond the high school level. Students to whom the rights have transferred are &amp;quot;eligible students.&amp;quot; [http://www.ed.gov/policy/gen/guid/fpco/ferpa/index.html 1]&lt;br /&gt;
&lt;br /&gt;
Moodle is used in many different contexts.  This will affect how you may implement roles and access for your Moodle instance.  Some institutions will have very strict requirements.  Others may face challenges of multiple contexts for the same instance, such as some public spaces and some instructional spaces that require restricted access.&lt;br /&gt;
&lt;br /&gt;
In general, &#039;&#039;&#039;directory information&#039;&#039;&#039; is considered public.  Examples of common items that may be considered &amp;quot;directory&amp;quot; information include: the student&#039;s name, address, photograph, telephone number, e-mail address, date and place of birth, major field of study, academic load, participation in officially recognized activities and sports, weight and height of members of athletic teams, dates of attendance, degrees, honors, and awards received, class year in school, and most previous educational agency or institution attended.&lt;br /&gt;
&lt;br /&gt;
Directory information is defined by the institution and this definition is made public knowledge.  For example, some institutions include e-mail addresses as directory information, and some do not.  The student is allowed to OPT OUT by submitting a written request to the registrar&#039;s office (or other appropriate office, depending on the organization of the school).  Students who file such a request should not have any of their information published in event programs (such as &amp;quot;meet the athletes&amp;quot; booklets distributed at sporting events) or directories.  The student usually must renew this request every semester.&lt;br /&gt;
&lt;br /&gt;
Student&#039;s &#039;&#039;&#039;educational records&#039;&#039;&#039; are protected. &amp;quot;Student educational records&amp;quot; are generally defined as any personally identifiable records about a student or former student, and made, received or maintained by someone acting on behalf of the institution. Common items falling under this category include: student test scores and grades; submissions for assignments, class discussions or recorded comments, or any other materials produced by students in which the student can be identified; and listings of courses in which the student is enrolled.  Some of these things are disclosed within the class, to the instructor and course participants, under &amp;quot;need to know&amp;quot;.  They are not, however, disclosed to individuals outside the class (other instructors, other students, guests).  In fact,  [http://elearnmag.org/subpage.cfm?section=articles&amp;amp;article=28-1 inviting an on-line guest lecturer] and adding them to the course, even temporarily, could cause a privacy violation.  &lt;br /&gt;
	&lt;br /&gt;
These items clearly relate to the way Moodle is typically used to facilitate learning.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Here are a list of identified problems and possible solutions: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;OPT OUT of profile info&#039;&#039;&#039;:  there is no way for us to check &amp;quot;hide profile&amp;quot; for an individual student.  Could we somehow add a field (that is accessible for those folks using batch enrolling techniques, from uploadusers to LDAP) that would selectively disable profile information for an individual student? Or, wouldn&#039;t it be even better to allow the STUDENT to check this box? I am checking on what roles should not have access to this information.   &#039;&#039;&#039;(Solution: Admin &amp;gt; Users &amp;gt; Permissions &amp;gt; User policies &amp;gt; hiddenuserfields will hide them for all normal users)&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;OPT OUT of name display in online users block&#039;&#039;&#039;: The on-line users block, while encouraging community, allows the display of any user on the system.  If you click on the users name, you may be denied access to the profile (depends on roles settings), but the name is clearly visible.  If a student opted out of directory information, then the online users block should also not display the name.  &#039;&#039;&#039;(Solution:  Moodle 2.0 will have a pseudonym feature so that each user can pick an alias for themselves.  Only people with the right capability will see the real name).&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;OPT OUT of other courses being revealed in profile&#039;&#039;&#039;: While the profile is likely accessible only by the student, the instructor, and other students in the class, it seems problematic from a privacy standpoint, to have all the courses that student is enrolled in to be displayed.  Even an instructor probably doesn&#039;t &amp;quot;need to know&amp;quot; what other moodle courses a student is enrolled in.  If they DO need to know this, they will likely have another method to access the information!  Could we have a switch in the profile that the student can control to hide this information selectively? &#039;&#039;&#039;(Solution: Moodle 2.0 will have a capability to control this.  It&#039;s easy to hack in user/view.php in the meantime, or take a look at MDL-13835 to see if you can implement or vote for it.)&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Student submissions&#039;&#039;&#039; or &#039;&#039;&#039;sensitive instructor documents&#039;&#039;&#039; might be accessed by users who know the URL; some debate is in progress about whether or not preliminary test results were flawed owing to the possibility of loading subsequent attempts from the cache rather than the server.  We do know that files uploaded into the course area can&#039;t be selectively marked &amp;quot;public&amp;quot; or &amp;quot;private&amp;quot;.  Work on the file repository code, due in Moodle 2.0, may solve this problem.  At least in Moodle 1.6.3, I tested this.  As a student, I could access a graded document returned to a student through a private forum if I knew the URL.  I could do this if I was enrolled in the course.  If I cleared the cache between different attempts, I found that I could not do this if I was not logged in at all or if I were logged in as a student but not enrolled in the class.  So we need to get some more definitive data on what is actually happening, and be vigilant about taking cache into consideration. &#039;&#039;&#039;(Moodle 2.0 has a new [[Development:File API|File API]] which will solve this once and for all.)&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Gradebook single student view&#039;&#039;&#039;:  If a student comes to your office and wants to talk about grades, the gradebook view requires some clicking to get to the single student view.  It is possible to view other student&#039;s grades as the instructor struggles to get to the right screen.  Would it be possible to trigger &amp;quot;full class view&amp;quot; or &amp;quot;single student view&amp;quot; earlier in the process?  &#039;&#039;&#039;(Solution: use a bookmark to the User report in Moodle 1.9)&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Assignment and Quiz single student view&#039;&#039;&#039;:  A similar situation exists with assignments and quizzes.  If a students asks me if I have one of their assigments or quiz results, I click on the assignment or quiz and the list shows the results for every student in my class.  I don&#039;t think I know of a good way to show the results for a single student, especially if that student&#039;s submission has not been graded yet.   &#039;&#039;&#039;(Solution:  Ask the student to look away, or swivel the monitor.  Otherwise we need a ne report that makes you type in their name.  Perhaps  &amp;quot;Lookup grade for [      ]&amp;quot; on the main page?)&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Notes (Introduced in Moodle 1.9)&#039;&#039;&#039;: A new feature in Moodle 1.9 allows notes at the site, course, and personal level.  You can disable this feature by setting moodle/notes:manage to prohibit for the teacher role.  This feature can be useful, but should be used within school policy with respect to need to know and student privacy expectations.&lt;br /&gt;
&lt;br /&gt;
==What can I do to make my Moodle install compliant with FERPA?==&lt;br /&gt;
&lt;br /&gt;
First off, every institution interprets FERPA a little bit differently. Find out what your institution classifies as &#039;&#039;&#039;directory information&#039;&#039;&#039;, and what its &#039;&#039;&#039;disclosure policy&#039;&#039;&#039; is. It may or may not include email address. Most solutions will not be solely Moodle solutions. Usually an institution looks carefully at its practice, and decides how Moodle will fit into this practice in a FERPA-compliant way. &lt;br /&gt;
&lt;br /&gt;
Moodle is designed to allow great interactivity and sharing between users, but this conflicts with strict interpretations of FERPA. If you use 1.8 or higher, you&#039;re in luck, because you can edit all user permissions by restricting what screen views each global role can access.&lt;br /&gt;
&lt;br /&gt;
Here are some things you can do when configuring Moodle:&lt;br /&gt;
&lt;br /&gt;
# When installing, make sure your moodledata directory is placed outside of the public_html directory. &lt;br /&gt;
# Disable email-based self-registration. Moodle offers several other ways of authenticating users. This way you can be sure that everyone accessing your site is a member of your institution. &lt;br /&gt;
# Require loginforprofiles.&lt;br /&gt;
# Do not use opentogoogle.&lt;br /&gt;
# Hide the guest login button. In 1.8+, find this option in Admin block &amp;gt; Users &amp;gt; Authentication.&lt;br /&gt;
# Configure the Front Page so that courses list is not visible for unauthenticated users.&lt;br /&gt;
# Configure the Courses block so that it will not display a link to All Courses. This way even authenticated users cannot view a list of all courses on the installation.&lt;br /&gt;
# If you allow guest access, edit the guest permissions to prevent view of profiles and participants lists.&lt;br /&gt;
# Prevent student users from viewing the profiles of others (even if the two students are in a course together, the profile shows the list of courses a student is in, and thereby discloses non-directory information). &lt;br /&gt;
# Decide which blocks your institution wants to use, and edit the permissions for your global roles to prevent users from accessing user profiles or enrollment information through those blocks (or disable blocks you are not comfortable allowing instructors to place in a course). &lt;br /&gt;
# Think carefully about the ramifications of allowing instructors to assign other instructors to courses, or about assigning non-faculty members as instructors of courses.&lt;br /&gt;
# Consider searching for courses with no enrollment keys and correcting this deficiency.  Also consider editing the language strings to prevent a hint from being shown should a student type in an incorrect enrollment key for a course.&lt;br /&gt;
&lt;br /&gt;
Most faculty will have signed a FERPA form agreeing not to disclose non-directory information.  Here are some things your faculty should know:&lt;br /&gt;
&lt;br /&gt;
# Files in the files directory in the admin block are accessible to any user enrolled in the course. Non-directory information should not be stored there.&lt;br /&gt;
# There are screens which show grades for a list of student users--students should not ever view these screens, even casually, for instance, when they come into an instructor&#039;s office to discuss something. Most instructors also use student information systems, and understand this practice.&lt;br /&gt;
&lt;br /&gt;
Many institutions run into trouble when a single Moodle installation is used for instructional spaces and non-instructional spaces (such as conference work areas, presentation spaces, and social networking spaces). It is really difficult to have a Moodle installation be both FERPA-compliant and fully functional for users focused on non-instructional collaboration. Consider running a second installation of Moodle with more relaxed access for applications like this.&lt;br /&gt;
&lt;br /&gt;
==What do I do about students who request holds on directory information?==&lt;br /&gt;
&lt;br /&gt;
Talk with your registrar and administrators to determine the best way to protect students with holds on their information. This will depend on your institution&#039;s interpretation of FERPA, and the setup of your Moodle installation.&lt;br /&gt;
&lt;br /&gt;
Faculty should be aware of your institution&#039;s policy regarding students with holds on their directory information, and have received instruction about how to properly manage that information in conformance with your institution&#039;s practices. The enrollment list for a course shows a list of all user accounts in the Moodle install. If your institution allows faculty to enroll their own students, faculty will see this list, which will include any students with holds on their information. If your institution interprets FERPA strictly, and you can&#039;t make other administrative adjustments for students who have FERPA holds, you may want to restrict this activity solely to those with admin accounts.&lt;br /&gt;
&lt;br /&gt;
==Full FERPA Hold==&lt;br /&gt;
&lt;br /&gt;
In the event of a full FERPA hold, a student&#039;s data may only be released to parties with a specific need-to-know. This does not include students in the class or instructors not actually teaching the student. We have identified several key places where FERPA data is currently visible:&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Participants List&#039;&#039;&#039;: Providing a list of participants to the public violates FERPA in a broad sense; technically, though, even showing students with a full FERPA hold to others enrolled in the class violates FERPA.&lt;br /&gt;
#&#039;&#039;&#039;Profile View&#039;&#039;&#039;: A full FERPA hold should completely disable profile viewing. This means both user/view.php and modules which display user full names such as blog/index.php and forum/user.php.&lt;br /&gt;
#&#039;&#039;&#039;Assign Roles&#039;&#039;&#039;: Currently the Assign Roles function provides a full list of all users in the system. Those with a FERPA hold should not appear on this list as Instructors not teaching them do not have a need to know that they exist.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=77059 Moodle and FERPA] forum discussion&lt;br /&gt;
*[1] [http://www.ed.gov/policy/gen/guid/fpco/ferpa/index.html Family Education Rights and Privacy Act] (FERPA) U. S. Dept. of Education&lt;br /&gt;
*[http://www.nacada.ksu.edu/Resources/FERPA-Overview.htm &amp;quot;FERPA: Basic Guidelines for Faculty and Staff&amp;quot;] National Academic Advising Association&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=90682 Notes Feature in 1.9] forum discussion&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=SF_Developer_HackFest&amp;diff=40964</id>
		<title>SF Developer HackFest</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=SF_Developer_HackFest&amp;diff=40964"/>
		<updated>2008-07-30T23:38:37Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* Wish list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Developer meetings]] &amp;gt; San Francisco 2008 Developer HackFest&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The HackFest was on Monday 9 June 2008 in San Francisco. We had around 50 participants. Thanks to [http://www.remote-learner.net/ Remote-Learner.net] for sponsoring this event.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
* Overview of development for Moodle 1.9 and Moodle 2.0 (Martin)&lt;br /&gt;
* Current [[Roadmap|Moodle 2.0 Roadmap]] run-through (Martin)&lt;br /&gt;
* Brainstorming session to vote on priorities (Martin and all)&lt;br /&gt;
&lt;br /&gt;
===Wish list===&lt;br /&gt;
&lt;br /&gt;
* file / repositories    12&lt;br /&gt;
* student info api    8  (eg banner, peoplesoft)&lt;br /&gt;
* user testing / usability  6&lt;br /&gt;
* performance/caching  6&lt;br /&gt;
* web services / standard API functions 5&lt;br /&gt;
* gradebook interface / ajax   5&lt;br /&gt;
* mobile/offline learning support  4&lt;br /&gt;
* FERPA   3&lt;br /&gt;
* group based enrollments / site-wide groups 3&lt;br /&gt;
* case studies on implementations   3&lt;br /&gt;
* better navigation for students (terms/my moodle)  2&lt;br /&gt;
* opensocial API/docs/forum   2&lt;br /&gt;
* statistics reports  2&lt;br /&gt;
* module api (classes, add tabs to user profile) 2&lt;br /&gt;
* section/course templates   1&lt;br /&gt;
* LDAP enrollment plugins 2 &lt;br /&gt;
* course formats / pagelib  1&lt;br /&gt;
* auomating backup/restore more  1 &lt;br /&gt;
* randomization in quiz essays   1 &lt;br /&gt;
* agents for automating tasks for teachers  2&lt;br /&gt;
* better handling of course instances   1 &lt;br /&gt;
* email / messaging   1 &lt;br /&gt;
* delete sections  1 &lt;br /&gt;
* more capabilities  (eg for course settings)  1&lt;br /&gt;
* new wiki   2&lt;br /&gt;
* more control over page layout in themes  1 &lt;br /&gt;
* chat speed / robustness   1 &lt;br /&gt;
* developer training  1&lt;br /&gt;
* gradebook improvements (eg calculated outcomes, easier extra credit)   3&lt;br /&gt;
* module quality review   2&lt;br /&gt;
* eportfolio / outcomes   1&lt;br /&gt;
* early warning systems   1 &lt;br /&gt;
* progress tracking / competencies 2&lt;br /&gt;
* more collaborative tools   2&lt;br /&gt;
* file sharing 2&lt;br /&gt;
* offline gradebook   1&lt;br /&gt;
* video handling 1 &lt;br /&gt;
* whiteboard / conferencing  2&lt;br /&gt;
* moodle networking polishing   1&lt;br /&gt;
* forum improvements (compiling, usability)  1&lt;br /&gt;
* roles user interface improvements  1&lt;br /&gt;
* conditional activities  1 &lt;br /&gt;
* assign activities to users   1&lt;br /&gt;
&lt;br /&gt;
==Round table discussion: Options for getting Moodle to communicate with external systems==&lt;br /&gt;
&lt;br /&gt;
Existing plugins include:&lt;br /&gt;
* Gradebook import / export plugins&lt;br /&gt;
* Auth plugins inc. single sign-on&lt;br /&gt;
* Enrollment plugins&lt;br /&gt;
* Backup / restore&lt;br /&gt;
* Question bank&lt;br /&gt;
* Glossary import / export&lt;br /&gt;
* Database import / export&lt;br /&gt;
* Upload users&lt;br /&gt;
&lt;br /&gt;
Martin L advises avoiding using LDAP unless absolutely necessary. With large systems e.g. Banner, export then import using an enrolment plugin. Use an intermediate database table for enrolment info so as not to be completely dependent upon the student information system. Consider error handling.&lt;br /&gt;
&lt;br /&gt;
Tim H talked about the gradebook export function in XML format for pushing gradebook data into external systems. Martin D mentioned that there&#039;s also an option to publish data through a URL. The gradebook has an option to export only changed grades. Michael P said that any gradebook changes should appear immediately in the external system.&lt;br /&gt;
&lt;br /&gt;
Martin D explained that student info APIs are really complex, so all we can do in Moodle is build and document a toolset. &lt;br /&gt;
&lt;br /&gt;
Future options: [[Development:Web services API]]&lt;br /&gt;
&lt;br /&gt;
==Round table discussion: APIs==&lt;br /&gt;
&lt;br /&gt;
* [[Development:File API]]&lt;br /&gt;
* [[Development:Repository API]]&lt;br /&gt;
* [[Development:Portfolio API]]&lt;br /&gt;
&lt;br /&gt;
==Round table discussion: Further plug-ability and expandability==&lt;br /&gt;
&lt;br /&gt;
Michael P demonstrated flexpage format (see also Using Moodle [http://moodle.org/mod/forum/discuss.php?d=83817 New format- Flexible Page] forum discussion).&lt;br /&gt;
&lt;br /&gt;
Mark N then described his proposed format plugin changes (see [http://moodle.org/mod/forum/discuss.php?d=95882 Proposed format plugin changes] forum discussion).&lt;br /&gt;
&lt;br /&gt;
Tim H demonstrated the shared activities system, an abuse of the course format ;-) (see the modules and plugins database entry [http://moodle.org/mod/data/view.php?d=13&amp;amp;rid=1558 Shared activities system]).&lt;br /&gt;
&lt;br /&gt;
Martin concluded that we need a course formats spec for developing it.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=NTLM_authentication&amp;diff=40962</id>
		<title>NTLM authentication</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=NTLM_authentication&amp;diff=40962"/>
		<updated>2008-07-30T22:06:48Z</updated>

		<summary type="html">&lt;p&gt;Chuang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Moodle 1.9}}This document describes how to set up &#039;&#039;&#039;NTLM/Integrated Authentication&#039;&#039;&#039; in Moodle. &lt;br /&gt;
&lt;br /&gt;
This is integrated into Moodle 1.9 onwards.&lt;br /&gt;
&lt;br /&gt;
For earlier versions, it uses a modified version of LDAP Authentication.&lt;br /&gt;
The NTLM Authentication module is available in the Modules and Plugins database here:&lt;br /&gt;
http://moodle.org/mod/data/view.php?d=13&amp;amp;rid=314&lt;br /&gt;
&lt;br /&gt;
Note: When a particular note is specific to earlier versions of the NTLM plugin, this is noted by the &#039;&#039;&#039;(pre-1.9 only)&#039;&#039;&#039; string.&lt;br /&gt;
&lt;br /&gt;
==Assumptions==&lt;br /&gt;
&lt;br /&gt;
#You are running MS Active Directory for Authentication.&lt;br /&gt;
#The Server hosting your website is a member of the Active Directory Domain that your users are also members of.&lt;br /&gt;
#You are able to define people inside your Network (and authenticated to the Domain) from an IP range of computers.&lt;br /&gt;
#&#039;&#039;&#039;(pre-1.9 only)&#039;&#039;&#039; You have &amp;quot;some&amp;quot; basic knowledge of php and are able to configure the index.php with the range of internal IP addresses.&lt;br /&gt;
#You are familar with or have read the LDAP authentication documentation.&lt;br /&gt;
#The Active Directory domain credentials of your users are returned as &#039;&#039;&#039;DOMAINNAME\username&#039;&#039;&#039; from your authentication service. If you are using the Winbind service from the Samba project, this can be untrue, depending on your Winbind configuration settings.&lt;br /&gt;
&lt;br /&gt;
If you can not modify your settings to satisfy this last assumption, then you will need to remove or comment out the line that reads:&lt;br /&gt;
    $username = substr(strrchr($username, &#039;\\&#039;), 1); //strip domain info&lt;br /&gt;
and add the relevant lines of code to extract the username part from the domain user credentials and store it in $username.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::&#039;&#039;&#039;VERY IMPORTANT&#039;&#039;&#039;: In Moodle 1.9 and onwards, NTLM authentication depends on LDAP authentication. So before trying to configure NTLM, make sure you have [[LDAP_authentication|LDAP authentication]] properly setup and working.&lt;br /&gt;
&lt;br /&gt;
==Installation on 1.9==&lt;br /&gt;
&lt;br /&gt;
No installation needed. See the Auth/LDAP settings for the NTLM config options. You only have to&lt;br /&gt;
&lt;br /&gt;
*Set the IP/Subnet mask&lt;br /&gt;
*On IIS: turn on Integrated Authentication&lt;br /&gt;
*On Apache - use one of the 3 methods outlined below&lt;br /&gt;
&lt;br /&gt;
If you have used previous versions of NTLM in your Moodle database you will need to make two further changes. &lt;br /&gt;
&lt;br /&gt;
#The type of authentication held against each user now needs to be ldap, and ntlm will not be recognised and Moodle will fall through and try to use CAS. To edit the fields open up a sql query for your Moodle server and use the following query &amp;quot;update mdl_user set auth = &#039;ldap&#039; where auth = &#039;ntlm&#039; &amp;quot;&lt;br /&gt;
#If you had a previous .htaccess file in the auth/ntlm directory, you will need to move it to the auth/ldap directory. Regardless of whether it is in a .htaccess file of the httpd.conf, the &amp;lt;Files&amp;gt; line now needs to refer to ntlmsso_magic.php. If it is in the httpd.conf, the &amp;lt;Directory&amp;gt; will need to change too. This is covered later on for new installs, but is one of the fundamental changes that needs to be made for those upgrading.&lt;br /&gt;
&lt;br /&gt;
==Installation on 1.6/1.7==&lt;br /&gt;
#Copy the folder AUTH/NTLM into the AUTH folder of your moodle installation.&lt;br /&gt;
#Configure the IP/Subnet Mask in the Config screen.&lt;br /&gt;
[https://docs.moodle.org/en/NTLM_authentication#Configuring IP/Subnet Mask see below for more help]&lt;br /&gt;
If the IP/Subnet Mask does not give enough complexity for your network, Modify the auth/ntlm/index.php file - for instructions on doing this, view the comments in the file.&lt;br /&gt;
#Turn Integrated Authentication ON and Anonymous Authentication OFF for the moodle\auth\ntlm\oncampuslogin.php file. [https://docs.moodle.org/en/NTLM_authentication#How_to_Turn_Integrated_Authentication_on see below for more detailed instructions]&lt;br /&gt;
#Visit the admin page of your moodle installation - you should see notification that the NTLM_AUTH module has been installed.&lt;br /&gt;
#go to the configuration &amp;gt; variables page, find the dbsessions setting (in 1.8 on admin page server \ sessions page), and set it to &amp;quot;YES&amp;quot; then save the page.&lt;br /&gt;
#go to the Authentication admin page and select auth_ntlmtitle as your authentication method Note: - this doesn&#039;t display full text as I haven&#039;t created a language file for this module - you will also see auth_ntlmdescription instead of a proper description - you don&#039;t need to worry about this, as you will be the only one who ever sees this.&lt;br /&gt;
#Configure this page with your normal LDAP settings. NOTE: the Alternate Login URL at the bottom of this page (or on the main authentication page in 1.8 - and needs to be set manually to the oncampus url)has been set to the NTLM page. - if you wish uninstall this auth module, you must reset this variable on the new authentication type page. eg - if you wish to revert back to manual authentication, then change to manual, and then make sure you delete the alternate login url at the bottom of the page.&lt;br /&gt;
#(OPTIONAL) modify the offcampuslogin page to give errors when students try to prefix their usercode with your domain.&lt;br /&gt;
around line 216 find this code, uncomment all the lines and replace the letters &#039;DOM&#039; with your domain:&lt;br /&gt;
&lt;br /&gt;
    if (empty($errormsg)) {&lt;br /&gt;
        if (strstr(strtolower($frm-&amp;gt;username), &amp;quot;DOM\\&amp;quot;) &amp;lt;&amp;gt; false) { //NAD - DOM messages.&lt;br /&gt;
            $errormsg = get_string(&amp;quot;invalidlogin&amp;quot;) . &amp;quot; DOM\\ is not required!&amp;quot;;&lt;br /&gt;
        } else if (strpos($frm-&amp;gt;username, &amp;quot;@&amp;quot;) &amp;lt;&amp;gt; false) {&lt;br /&gt;
            $errormsg = get_string(&amp;quot;invalidlogin&amp;quot;) . &amp;quot; enter your username - not your e-mail address.&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            $errormsg = get_string(&amp;quot;invalidlogin&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
==Installation on 1.5==&lt;br /&gt;
&lt;br /&gt;
See the README in the auth/ntml package.&lt;br /&gt;
&lt;br /&gt;
==How to Turn Integrated Authentication on==&lt;br /&gt;
The File ntlmsso_magic.php (1.9 or above) or oncampuslogin.php (1.8 or below) MUST have NTLM/Integrated Authentication enabled at the server or the page will not work.&lt;br /&gt;
===IIS Configuration===&lt;br /&gt;
Open up IIS, and find the auth/ldap/ntlmsso_magic.php (1.9 or above) or auth/ntlm/oncampuslogin.php (1.8 or below) file, &lt;br /&gt;
#right click on the file, choose properties&lt;br /&gt;
#under the &amp;quot;file security&amp;quot; tab, click on the Authentication and Access control &amp;quot;edit&amp;quot; button&lt;br /&gt;
#untick &amp;quot;Enable Anonymous Access&amp;quot; and tick &amp;quot;Integrated Windows Authentication&amp;quot;&lt;br /&gt;
===APACHE Configuration===&lt;br /&gt;
There are currently 3 possible methods for this:&lt;br /&gt;
&lt;br /&gt;
====Using the NTLM part of Samba (Linux)====&lt;br /&gt;
&lt;br /&gt;
* Get the plugin here: http://samba.org/ftp/unpacked/lorikeet/mod_auth_ntlm_winbind/ and follow the instructions inside the README file. You&#039;ll need to install the Apache development packages in addition to the core C develpment packages.&lt;br /&gt;
* Once you have compiled it, put it inside Apache&#039;s modules subdirectory (this location depends on a number of factors, like compiling Apache yourself, using different Linux distributions packages, an so on), and load and enable the module in Apache&#039;s configuration. For example, if your Apache modules are under &amp;lt;code&amp;gt;/usr/lib/apache2/modules&amp;lt;/code&amp;gt;, you&#039;ll need something like this in your Apache configuration file (usually called &amp;lt;code&amp;gt;apache2.conf&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;http2.conf&amp;lt;/code&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;IfModule !mod_auth_ntlm_winbind.c&amp;gt;&lt;br /&gt;
       LoadModule auth_ntlm_winbind_module /usr/lib/apache2/modules/mod_auth_ntlm_winbind.so&lt;br /&gt;
   &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Install the Samba &amp;lt;code&amp;gt;winbind&amp;lt;/code&amp;gt; daemon package. This packages relies on Samba&#039;s configuration file to get some important settings (like the Windows domain name, uid and gid range mappings, and so on). In addition to that, you&#039;ll need to make your Linux/Unix machine part of the domain. Otherwise winbind won&#039;t be able to pull user and groups informationi from the domain controllers. You should read the Samba documentation to perform this step, but the most important part is having something like the following lines in your &amp;lt;code&amp;gt;smb.conf&amp;lt;/code&amp;gt; file (in addition to what you already have there):&lt;br /&gt;
&lt;br /&gt;
  workgroup = DOMAINNAME&lt;br /&gt;
  password server = *&lt;br /&gt;
  security = domain&lt;br /&gt;
  encrypt passwords = true&lt;br /&gt;
  idmap uid = 10000-20000&lt;br /&gt;
  idmap gid = 10000-20000&lt;br /&gt;
&lt;br /&gt;
: and executing the command (as root):&lt;br /&gt;
&lt;br /&gt;
  # net join DOMAINNAME -U Administrator&lt;br /&gt;
&lt;br /&gt;
: where &#039;&#039;&#039;DOMAINNAME&#039;&#039;&#039; is the NetBIOS windows domain name, and &#039;&#039;&#039;Administrator&#039;&#039;&#039; an account with enough privileges to add new machines to the domain.&amp;lt;br/&amp;gt; You&#039;ll need to type this account&#039;s password for the command to succeed.&lt;br /&gt;
&lt;br /&gt;
: Also, make sure you have disabled &amp;quot;Microsoft Network Server: digitally sign communications (always)&amp;quot; in your Domain Controllers Security Policy, unless you are using a version of Samba that can sign SMB packets.&lt;br /&gt;
&lt;br /&gt;
* Restart the &amp;lt;code&amp;gt;winbind&amp;lt;/code&amp;gt; service to apply the changes and test that it&#039;s running ok by executing:&lt;br /&gt;
&lt;br /&gt;
  $ wbinfo -u&lt;br /&gt;
&lt;br /&gt;
: You should get the full list of Windows domain users. If you use &#039;&#039;&#039;&amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt;&#039;&#039;&#039; instead, you&#039;ll get the domain groups list.&lt;br /&gt;
&lt;br /&gt;
* Check that your &amp;lt;code&amp;gt;winbind&amp;lt;/code&amp;gt; package installed the authentication helper command &amp;lt;code&amp;gt;ntlm_auth&amp;lt;/code&amp;gt;, as we&#039;ll need it later. We&#039;ll assume the helper is located at &amp;lt;code&amp;gt;/usr/bin/ntlm_auth&amp;lt;/code&amp;gt;. If yours is at a different location, make sure you adjust the path in the example below.&lt;br /&gt;
&lt;br /&gt;
* Add something like this to your Apache configuration file (usually called &amp;lt;code&amp;gt;apache2.conf&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;http2.conf&amp;lt;/code&amp;gt;). We&#039;ll assume that your Moodle &amp;lt;code&amp;gt;$CFG-&amp;gt;dirroot&amp;lt;/code&amp;gt; directory is located at &amp;lt;code&amp;gt;/var/www/moodle&amp;lt;/code&amp;gt; in the example:&lt;br /&gt;
: &#039;&#039;&#039;For 1.9 or above use&#039;&#039;&#039;:&lt;br /&gt;
    &amp;lt;Directory &amp;quot;/var/www/moodle/auth/ldap/&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Files ntlmsso_magic.php&amp;gt;&lt;br /&gt;
            NTLMAuth on&lt;br /&gt;
            AuthType NTLM&lt;br /&gt;
            AuthName &amp;quot;Moodle NTLM Authentication&amp;quot;&lt;br /&gt;
            NTLMAuthHelper &amp;quot;/usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp&amp;quot;&lt;br /&gt;
            NTLMBasicAuthoritative on&lt;br /&gt;
            require valid-user&lt;br /&gt;
        &amp;lt;/Files&amp;gt;&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
: &#039;&#039;&#039;For 1.8 or below use&#039;&#039;&#039;:&lt;br /&gt;
    &amp;lt;Directory &amp;quot;/var/www/moodle/auth/ntlm/&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Files oncampuslogin.php&amp;gt;&lt;br /&gt;
            NTLMAuth on&lt;br /&gt;
            AuthType NTLM&lt;br /&gt;
            AuthName &amp;quot;Moodle NTLM Authentication&amp;quot;&lt;br /&gt;
            NTLMAuthHelper &amp;quot;/usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp&amp;quot;&lt;br /&gt;
            NTLMBasicAuthoritative on&lt;br /&gt;
            require valid-user&lt;br /&gt;
        &amp;lt;/Files&amp;gt;&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
* Check the permissions of the Winbind pipe directory (Ubuntu places it under &amp;lt;code&amp;gt;/var/run/samba/winbindd_privileged&amp;lt;/code&amp;gt;, yours may be placed at a different location). Apache will need to be able to enter that directory, so we need to make sure it has the right permissions. So have a look at the permissions of that directory and note the name of the group assigned to it. The following example is from a Ubuntu 7.10 machine:&lt;br /&gt;
&lt;br /&gt;
  $ ls -ald /var/run/samba/winbindd_privileged&lt;br /&gt;
  drwxr-x--- 2 root winbindd_priv 60 2007-11-17 16:18 /var/run/samba/winbindd_privileged/&lt;br /&gt;
&lt;br /&gt;
:so we see the group is &amp;lt;code&amp;gt;winbindd_priv&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Instead of modifying the directory permissions (which could break other services that use winbind) we are goint to make the Apache user (&amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt; in our example, but could be &amp;lt;code&amp;gt;httpd&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;nobody&amp;lt;/code&amp;gt;, etc.) is part of the appropiate group. Execute the following as root:&lt;br /&gt;
&lt;br /&gt;
  # adduser www-data winbindd_priv&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;adduser&amp;lt;/code&amp;gt; is available in Debian and Ubuntu at least. If your distribution doesn&#039;t have &amp;lt;code&amp;gt;adduser&amp;lt;/code&amp;gt;, you can edit &amp;lt;code&amp;gt;/etc/group&amp;lt;/code&amp;gt; manually to achive the same effect.&lt;br /&gt;
&lt;br /&gt;
* Restart the Apache service to apply the changes. Have a look at Apache&#039;s error log to see that everything is ok.&lt;br /&gt;
&lt;br /&gt;
* Couple of gotchas - in Fedora Core, keep alive is turned OFF by default in the httpd.conf - see this bug for further info: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=188138&amp;lt;br /&amp;gt;&lt;br /&gt;
* Email Dan if you get this working - I&#039;m keen to hear how people go using the samba winbind option!&lt;br /&gt;
::-- Hi Dan! I made it work using Ubuntu 7.04. That&#039;s what I&#039;ve used to update the documentation. [[User:Iñaki Arenaza|Iñaki Arenaza]] 10:43, 30 September 2007 (CDT)&lt;br /&gt;
&lt;br /&gt;
====Using the NTLM Auth Module for Apache====&lt;br /&gt;
#get the Module from: http://modntlm.sourceforge.net/&lt;br /&gt;
#use something like this in your httpd.conf: http://moodle.org/mod/forum/discuss.php?d=45887#211074&lt;br /&gt;
&lt;br /&gt;
====Using the mod_auth_sspi Module for Apache 2 on Windows====&lt;br /&gt;
NOTE: This setup is currently being used in a live production environment, and is therefore suitable for such use provided it is correctly configured and tested.&lt;br /&gt;
&lt;br /&gt;
This is the recommended method for Apache 2 on Windows, however it will &#039;&#039;&#039;not&#039;&#039;&#039; work on Linux/UNIX systems.&lt;br /&gt;
It provides better stability and higher performance than other NTLM modules.&lt;br /&gt;
&lt;br /&gt;
* Download the mod_auth_sspi Module from: http://sourceforge.net/projects/mod-auth-sspi/. At the moment of writing this (2007.09.30), the current version is mod_auth_sspi 1.0.4, which has two different ZIP files to download:&lt;br /&gt;
&lt;br /&gt;
::* mod_auth_sspi-1.0.4-2.0.58.zip :   Use this file if you are using Apache 2.0.x.&lt;br /&gt;
::* mod_auth_sspi-1.0.4-2.2.2.zip :   Use this file if you are using Apache 2.2.x.&lt;br /&gt;
&lt;br /&gt;
* Unzip the right file and copy mod_auth_sspi.so (it&#039;s inside &#039;&#039;&#039;bin&#039;&#039;&#039; subdirectory) to your Apache modules directory.&lt;br /&gt;
* Edit your Apache 2 configuration file (httpd.conf) to load the module.&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;IfModule !mod_auth_sspi.c&amp;gt;&lt;br /&gt;
        LoadModule sspi_auth_module modules/mod_auth_sspi.so&lt;br /&gt;
    &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Choose one of the two methods below&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Method 1&#039;&#039;&#039;: This method is recommended for servers that will host a single Moodle instance. Configure NTLM from the main configuration file, add the following to httpd.conf (substitute &amp;quot;C:\moodle&amp;quot; with the path to your Moodle installation e.g. &amp;quot;C:\my-moodle&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:: &#039;&#039;&#039;For 1.9 or above use&#039;&#039;&#039;:&lt;br /&gt;
    &amp;lt;Directory &amp;quot;C:\moodle\auth\ldap&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Files ntlmsso_magic.php&amp;gt;&lt;br /&gt;
            AuthName &amp;quot;Moodle at My College&amp;quot;&lt;br /&gt;
            AuthType SSPI&lt;br /&gt;
            SSPIAuth On&lt;br /&gt;
            SSPIOfferBasic Off&lt;br /&gt;
            SSPIAuthoritative On&lt;br /&gt;
            SSPIDomain mycollege.ac.uk&lt;br /&gt;
            require valid-user&lt;br /&gt;
        &amp;lt;/Files&amp;gt;&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
:: &#039;&#039;&#039;For 1.8 or below use&#039;&#039;&#039;:&lt;br /&gt;
    &amp;lt;Directory &amp;quot;C:\moodle\auth\ntlm&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Files oncampuslogin.php&amp;gt;&lt;br /&gt;
            AuthName &amp;quot;Moodle at My College&amp;quot;&lt;br /&gt;
            AuthType SSPI&lt;br /&gt;
            SSPIAuth On&lt;br /&gt;
            SSPIOfferBasic Off&lt;br /&gt;
            SSPIAuthoritative On&lt;br /&gt;
            SSPIDomain mycollege.ac.uk&lt;br /&gt;
            require valid-user&lt;br /&gt;
        &amp;lt;/Files&amp;gt;&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Method 2&#039;&#039;&#039;: The alternative method is to use a .htaccess file&lt;br /&gt;
:This method is recommended for servers that will host multiple Moodle instances. It allows additional Moodle instances to be configured without restarting apache, and also makes the solution a little more portable. We need to add a directive to the main httpd.conf to allow configuration of authentication within .htaccess files.&lt;br /&gt;
    &amp;lt;Directory C:\moodle&amp;gt;&lt;br /&gt;
        AllowOverride AuthConfig&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:: &#039;&#039;&#039;For 1.9 or above&#039;&#039;&#039;:&lt;br /&gt;
:::Create a new text file named &#039;.htaccess&#039; in the directory &#039;C:\moodle\moodle\auth\ldap&#039; and add the following directives:&lt;br /&gt;
    &amp;lt;Files ntlmsso_magic.php&amp;gt;&lt;br /&gt;
        AuthName &amp;quot;Moodle at My College&amp;quot;&lt;br /&gt;
        AuthType SSPI&lt;br /&gt;
        SSPIAuth On&lt;br /&gt;
        SSPIOfferBasic Off&lt;br /&gt;
        SSPIAuthoritative On&lt;br /&gt;
        SSPIDomain mycollege.ac.uk&lt;br /&gt;
        require valid-user&lt;br /&gt;
    &amp;lt;/Files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:: &#039;&#039;&#039;For 1.8 or below&#039;&#039;&#039;:&lt;br /&gt;
:::Create a new text file named &#039;.htaccess&#039; in the directory &#039;C:\moodle\moodle\auth\ntlm&#039; and add the following directives:&lt;br /&gt;
    &amp;lt;Files oncampuslogin.php&amp;gt;&lt;br /&gt;
        AuthName &amp;quot;Moodle at My College&amp;quot;&lt;br /&gt;
        AuthType SSPI&lt;br /&gt;
        SSPIAuth On&lt;br /&gt;
        SSPIOfferBasic Off&lt;br /&gt;
        SSPIAuthoritative On&lt;br /&gt;
        SSPIDomain mycollege.ac.uk&lt;br /&gt;
        require valid-user&lt;br /&gt;
    &amp;lt;/Files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:This enables the Moodle folder to be moved to any apache webserver that is configured to allow authentication configuration through .htaccess&lt;br /&gt;
&lt;br /&gt;
For further help and discussion: http://moodle.org/mod/forum/discuss.php?d=56565&lt;br /&gt;
&lt;br /&gt;
==Configuring IP/Subnet Mask==&lt;br /&gt;
Subnet masks are based on binary patterns so need a bit of knowledge to understand. The best way to find out what IP/Subnet masks to use is to ask your Network Admin. &lt;br /&gt;
* &#039;&#039;&#039;(pre-1.9 only)&#039;&#039;&#039; Once you have configured your IP/Subnet masks, you can use the check_ip.php page to test if you have set these ranges up correctly.&lt;br /&gt;
* The new way of specifiying subnets is even easier/more flexible than before 1.9. Just type them one after the other, separated by commas. You can use several syntaxes:&lt;br /&gt;
** Type the network-number/prefix-length combination. E.g. 192.168.1.0/24&lt;br /&gt;
** Type the network &#039;prefix&#039;, ending in a period character. E.g. 192.168.1.&lt;br /&gt;
** Type the network address range (&#039;&#039;&#039;this only works for the last address octect&#039;&#039;&#039;). E.g. 192.168.1.1-254&lt;br /&gt;
:All the three examples refer to the same subnetwork. So assuming you need to specify the following subnetworks:&lt;br /&gt;
::* 10.1.0/255.255.0.0&lt;br /&gt;
::* 10.2.0.0/255.255.0.0&lt;br /&gt;
::* 172.16.0.0/255.255.0.0&lt;br /&gt;
::* 192.168.100.0/255.255.255.240&lt;br /&gt;
:You can type:&lt;br /&gt;
 10.1.0.0/16, 10.2.0.0/16, 172.16.0.0/16, 192.168.100.0/28&lt;br /&gt;
: or:&lt;br /&gt;
  10.1.0.0/16, 10.2.0.0/16, 172.16.0.0/16, 192.168.100.240-255&lt;br /&gt;
:or even:&lt;br /&gt;
  10.1., 10.2., 172.16., 192.168.100.0/28&lt;br /&gt;
:(the last one cannot be expressed as a network &#039;prefix&#039; as the netmask does not fall on an octect boundary).&lt;br /&gt;
&lt;br /&gt;
==Notes/Tips==&lt;br /&gt;
# &#039;&#039;&#039;(pre-1.9 only)&#039;&#039;&#039; When using IIS, dbsessions is required to be set to &amp;quot;YES&amp;quot; because when Integrated authentication is turned on for the oncampuslogin.php page, and dbsessions is set to &amp;quot;NO&amp;quot; then the server impersonates the user to write the session in the moodledata\sessions folder. The recommended fix is to set dbsessions to &amp;quot;YES&amp;quot; so that sessions are stored in the db. The non-recommended alternative method is to allow domain users write access to the sessions directory.&lt;br /&gt;
# &#039;&#039;&#039;(pre-1.9 only)&#039;&#039;&#039; If you forget to change the internal IP addresses in index.php to your own, you can just use the offcampuslogin url to login using your admin account. eg: http://yoursite.com/moodle/auth/ntlm/offcampuslogin.php&lt;br /&gt;
#If you are using Firefox, you will need to follow these steps:&lt;br /&gt;
:*Load Firefox and type about:config in the address box. The configuration settings page should be displayed.&lt;br /&gt;
:*In the Filter box, type the word &amp;quot;ntlm&amp;quot; to filter the NTLM strings. You should see three settings displayed.&lt;br /&gt;
:*Double-click on &amp;quot;network.automatic-ntlm-auth.trusted-uris&amp;quot;.&lt;br /&gt;
:*In the box, enter the full URL of your Moodle server. For example &amp;lt;pre&amp;gt;http://moodle.mydomain.com, (the comma is important)&amp;lt;/pre&amp;gt;&lt;br /&gt;
:*Close Firefox and restart.&lt;br /&gt;
&lt;br /&gt;
==Specific File information (pre-1.9 only)== &lt;br /&gt;
(mainly for developers)&lt;br /&gt;
#auth\ntlm\index.php&amp;lt;br /&amp;gt;This is the page used for the Alternate Login URL setting on the config page for the NTLM plugin.&amp;lt;br&amp;gt;The index.php file handles which login page to use based on the IP address of the user.&amp;lt;br&amp;gt;if inside your network, they should be directed to the oncampuslogin.php screen.&amp;lt;br&amp;gt;if outside your network, they should be directed to the offcampuslogin.php screen.&amp;lt;br&amp;gt;you will need to modify the if statements in this file to match the IP ranges inside your network.&lt;br /&gt;
#auth\ntlm\index_form.html&amp;lt;br /&amp;gt;this is a copy of the file login\index_form.php.&amp;lt;br /&amp;gt; The only change in this file from the standard one is that the form action=&amp;quot;index.php&amp;quot; is changed to form action=&amp;quot;offcampuslogin.php&amp;quot; this is because anyone who is displayed the form will be an offcampus user.&lt;br /&gt;
#auth\ntlm\offcampuslogin.php&amp;lt;br /&amp;gt;this is a copy of the file moodle\login\index.php with a couple of minor modifications.&amp;lt;br /&amp;gt;the modifications to this file involve the setting of a variable ($onoroffcampus = &amp;quot;offcampus&amp;quot;;) this is used by the auth plugin to define which page is being used for authentication. the other modification is for displaying extra error messages to the user. - with all the authentication methods we have students are constantly confused about how to enter their credentials if you use NTLM authentication elsewhere at your site you will be aware of the users having to enter the domain\username when authenticating. - this code block sits around line 215 in the file.&lt;br /&gt;
#auth\ntlm\oncampuslogin.php&amp;lt;br /&amp;gt;this is a copy of the file login\index.php&amp;lt;br /&amp;gt;This file has been modified to get the details of the authenticated user via NTLM.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[http://moodle.org/mod/forum/view.php?id=42 Using Moodle: User authentication] forum&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=45887 NTLM Authentication] forum discussion&lt;br /&gt;
*[http://moodle.org/mod/data/view.php?d=13&amp;amp;rid=314 Download the NTLM Authentication Module]&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=80104 Merging AD NTLM SSO into auth/ldap] forum discussion&lt;br /&gt;
&lt;br /&gt;
[[Category:Contributed code]]&lt;br /&gt;
[[Category:Authentication]]&lt;br /&gt;
&lt;br /&gt;
[[fr:Authentification NTLM]]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=RedHat_Linux_installation&amp;diff=40886</id>
		<title>RedHat Linux installation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=RedHat_Linux_installation&amp;diff=40886"/>
		<updated>2008-07-29T18:58:28Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* Try your new installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note : These instructions apply to RedHat version 8. They have also been found to work for RedHat 9.0 and for Fedora Core 1 and 2. &#039;&#039;&#039;Fedora Core 3 requires the php-gd package in addition to php.&#039;&#039;&#039; I see no reason why they should not work for later versions. In addition, later distributions of Fedora (after 7) contain a moodle yum package. Installation is as easy as &#039;&#039;&#039;yum install moodle&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Redhat installation considerations: There are many installation options available when installing Redhat. I assume that you are installing on a server and will have selected a Server type install. There is however no reason why this should not work on a desktop or Workstation installation.&lt;br /&gt;
&lt;br /&gt;
== Make sure you have installed the following packages ==&lt;br /&gt;
(You will need to select the option to customize the default set of packages on installation OR bring up the package manager by putting disk 1 back in the drive for an existing system):&lt;br /&gt;
&lt;br /&gt;
* X Windows System (not vital but easier)&lt;br /&gt;
* Gnome or KDE desktop environment (as above)&lt;br /&gt;
* Server Configuration Tools&lt;br /&gt;
* Web Server&lt;br /&gt;
** Click &amp;quot;Details&amp;quot; and make sure all PHP modules are ticked (except ODBC and PGSQL, they&#039;re not neccesary)&lt;br /&gt;
** make sure not to miss the MYSQL-PHP module (not installed by default)&lt;br /&gt;
* SQL Database&lt;br /&gt;
** Click &amp;quot;Details&amp;quot; and tick MySQL server box&lt;br /&gt;
* Also make sure you set up the firewall. You probably only need to enable HTTP (and perhaps FTP and SSH) access to your server machine, unless you know different.&lt;br /&gt;
&lt;br /&gt;
== Configure hostname and domain name==&lt;br /&gt;
&lt;br /&gt;
Type system-config-network to open the GUI editor.  Click on the DNS tab. In the &amp;quot;DNS Search Path&amp;quot; fill in your domain name for example myuniversity.edu. Now ensure the &amp;quot;Hostname&amp;quot; contains the computer name you will use and click activate to make changes&lt;br /&gt;
&lt;br /&gt;
== Download Moodle==&lt;br /&gt;
(I will install under /usr/moodle, data in /usr/moodle_data)&lt;br /&gt;
&lt;br /&gt;
* Download your favourite version of Moodle from moodle.org (.zip archive is easiest)&lt;br /&gt;
* as Root create folder under /usr and copy zip&lt;br /&gt;
** su&lt;br /&gt;
** mkdir /usr/moodle&lt;br /&gt;
** mkdir /usr/moodle_data&lt;br /&gt;
** cp moodle_111.zip /usr/moodle&lt;br /&gt;
* If you prefer you can install the CVS version directly for all the latest features. Instead of downloading and copying the zip file..&lt;br /&gt;
** cd /usr/moodle&lt;br /&gt;
** cvs -d:pserver:anonymous@uk.cvs.moodle.org:/cvsroot/moodle login&lt;br /&gt;
** cvs -z3 -d:pserver:anonymous@uk.cvs.moodle.org:/cvsroot/moodle co moodle&lt;br /&gt;
&lt;br /&gt;
== Unpack and set file permission etc ==&lt;br /&gt;
&lt;br /&gt;
* Still as root we unpack moodle and rename to something appropiate (I have multiple moodle installs, hence this setup). I will call this install mymoodle.&lt;br /&gt;
** cd /usr/moodle&lt;br /&gt;
** unzip moodle_xxx.zip&lt;br /&gt;
** mv moodle mymoodle&lt;br /&gt;
*** (optional step - I have more than one install under /usr/moodle)&lt;br /&gt;
** mkdir /usr/moodle_data/mymoodle&lt;br /&gt;
*** (same name as the moodle install above)&lt;br /&gt;
** chown -R apache:apache /usr/moodle&lt;br /&gt;
*** (! Giving Apache full rights to your Moodle programs is not secure. Check out the forums for recomendations on how to secure a production environment.)&lt;br /&gt;
** chown -R apache:apache /usr/moodle_data&lt;br /&gt;
&lt;br /&gt;
== Setup config.php ==&lt;br /&gt;
&lt;br /&gt;
* Still as root copy and edit the config file, you should know the host/domain name for your server&lt;br /&gt;
** cd /usr/moodle/mymoodle&lt;br /&gt;
** cp config-dist.php config.php&lt;br /&gt;
** vi config.php (or whatever your favourite editor is!)&lt;br /&gt;
* Your config.php settings should be something like...&lt;br /&gt;
** dbtype = &amp;quot;mysql&amp;quot;&lt;br /&gt;
** dbhost = &amp;quot;localhost&amp;quot;&lt;br /&gt;
** dbname = &amp;quot;mymoodle&amp;quot;&lt;br /&gt;
** dbuser = &amp;quot;moodleuser&amp;quot;&lt;br /&gt;
** dbpass = &amp;quot;moodlepass&amp;quot; (&amp;lt;-- better make this something of your own)&lt;br /&gt;
** prefix = &amp;quot;&amp;quot;&lt;br /&gt;
*** (keep the default &#039;mdl_&#039; prefix if you plan on sharing the database with other applications)&lt;br /&gt;
** wwwroot = &amp;quot;http://myhost.mydomain/mymoodle&amp;quot;&lt;br /&gt;
*** (If you only want to try moodle out and will not be accessing it from other machines you can use &amp;quot;http://localhost/mymoodle&amp;quot;)&lt;br /&gt;
** dirroot = &#039;/usr/moodle/mymoodle&#039;&lt;br /&gt;
** dataroot = &#039;/usr/moodle_data/mymoodle&#039;&lt;br /&gt;
* Save your changes and exit from the editor&lt;br /&gt;
&lt;br /&gt;
== Setup MySQL ==&lt;br /&gt;
&lt;br /&gt;
* First you need to get the MySQL daemon running, it is not running by default.&lt;br /&gt;
** On the Desktop find and launch &amp;quot;Services&amp;quot; (on KDE and Gnome it&#039;s under System Settings=&amp;gt;Server Settings=&amp;gt;Services, but you might have to hunt around).&lt;br /&gt;
** Tick the box for MySQL and (with it selected) press the Start icon - ensure it starts up&lt;br /&gt;
** Choose &amp;quot;Save Changes&amp;quot; from the menu, and exit the program.&lt;br /&gt;
* If you haven&#039;t yet, as root, change the MySQL root password&lt;br /&gt;
** mysqladmin -u root password mysqlpass (&amp;lt;-- should change this to something of your own)&lt;br /&gt;
* Next, set up the MySQL database (see http://moodle.org/doc/?file=install.html#database for more details)&lt;br /&gt;
* Launch MySQL as root&lt;br /&gt;
** mysql -u root -p&lt;br /&gt;
*** (at the password prompt, enter the password from above)&lt;br /&gt;
* At the &#039;&amp;gt;&#039; MySQL prompt, enter the following commands (MySQL commands are ended with a &#039;;&#039;)&lt;br /&gt;
** CREATE DATABASE mymoodle;&lt;br /&gt;
*** (the name &#039;mymoodle&#039; is the same name as the database from Step 4)&lt;br /&gt;
** GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON mymoodle.*&lt;br /&gt;
*** (as above, &#039;mymoodle&#039; is from Step 4)&lt;br /&gt;
** TO moodleuser@localhost IDENTIFIED BY &#039;moodlepass&#039;;&lt;br /&gt;
*** (&#039;moodleuser&#039; and &#039;moodlepass&#039; are from Step 4)&lt;br /&gt;
** flush privileges;&lt;br /&gt;
** quit&lt;br /&gt;
* (! Consider MySQL security - not covered here. If you run a firewall, you don&#039;t have too much to worry about.)&lt;br /&gt;
&lt;br /&gt;
== Setup Apache ==&lt;br /&gt;
&lt;br /&gt;
* Edit the Apache configuration file at /etc/httpd/conf/httpd.conf&lt;br /&gt;
* Right at the end of the file add the following lines: (once again &#039;mymoodle&#039; as from Step 3)&lt;br /&gt;
** &amp;lt;Directory &amp;quot;/usr/moodle/mymoodle&amp;quot;&amp;gt;&lt;br /&gt;
** DirectoryIndex index.php&lt;br /&gt;
** AcceptPathInfo on&lt;br /&gt;
** AllowOverride None&lt;br /&gt;
** Options None&lt;br /&gt;
** Order allow,deny&lt;br /&gt;
** Allow from all&lt;br /&gt;
** &amp;lt;/Directory&amp;gt;&lt;br /&gt;
** Alias /mymoodle &amp;quot;/usr/moodle/mymoodle&amp;quot;&lt;br /&gt;
* Don&#039;t insert a space in &amp;quot;allow,deny&amp;quot; (common mistake!)&lt;br /&gt;
* You might also want to run through the rest of the config file and make some other (obvious) changes - administrator email and suchlike. Not vital though.&lt;br /&gt;
* Run the Services application (same as for Mysql) - tick and start &amp;quot;httpd&amp;quot;, then save changes and exit.&lt;br /&gt;
&lt;br /&gt;
== Set up the cron job ==&lt;br /&gt;
&lt;br /&gt;
As root user edit the /etc/crontab file using vi (or another editor) OR you can add a line to the root user&#039;s &amp;quot;personal&amp;quot; crontab (don&#039;t do both!).&lt;br /&gt;
&lt;br /&gt;
* If you wish to place an entry in your root user&#039;s crontab use:&lt;br /&gt;
** crontab -e&lt;br /&gt;
** Add the following line:&lt;br /&gt;
*** */5 * * * * /usr/bin/wget -O /dev/null http://localhost/mymoodle/admin/cron.php&lt;br /&gt;
**** (change the URL as appropriate for your site)&lt;br /&gt;
---&lt;br /&gt;
* If you wish to add an entry in /etc/crontab:&lt;br /&gt;
* Open the /etc/crontab file in an editor (vi).&lt;br /&gt;
* Add the following line:&lt;br /&gt;
** */5 * * * * root /usr/bin/wget -O /dev/null http://localhost/mymoodle/admin/cron.php&lt;br /&gt;
*** (change the URL as appropriate for your site)&lt;br /&gt;
---&lt;br /&gt;
* In either case, don&#039;t forget to save the file and exit (in vi that is &amp;lt;Esc&amp;gt;, then &#039;:wq&#039;)&lt;br /&gt;
&lt;br /&gt;
== Try your new installation ==&lt;br /&gt;
&lt;br /&gt;
http://myhost.mydomain/mymoodle/admin&lt;br /&gt;
&lt;br /&gt;
or, if you are running the browser on the same machine&lt;br /&gt;
&lt;br /&gt;
http://localhost/mymoodle/admin&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
[[pl:Instalacja_w_RedHat]]&lt;br /&gt;
&lt;br /&gt;
== Reference ==&lt;br /&gt;
Please also see these discussion for GD:&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=RedHat_Linux_installation&amp;diff=40885</id>
		<title>RedHat Linux installation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=RedHat_Linux_installation&amp;diff=40885"/>
		<updated>2008-07-29T17:46:22Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* Unpack and set file permission etc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note : These instructions apply to RedHat version 8. They have also been found to work for RedHat 9.0 and for Fedora Core 1 and 2. &#039;&#039;&#039;Fedora Core 3 requires the php-gd package in addition to php.&#039;&#039;&#039; I see no reason why they should not work for later versions. In addition, later distributions of Fedora (after 7) contain a moodle yum package. Installation is as easy as &#039;&#039;&#039;yum install moodle&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Redhat installation considerations: There are many installation options available when installing Redhat. I assume that you are installing on a server and will have selected a Server type install. There is however no reason why this should not work on a desktop or Workstation installation.&lt;br /&gt;
&lt;br /&gt;
== Make sure you have installed the following packages ==&lt;br /&gt;
(You will need to select the option to customize the default set of packages on installation OR bring up the package manager by putting disk 1 back in the drive for an existing system):&lt;br /&gt;
&lt;br /&gt;
* X Windows System (not vital but easier)&lt;br /&gt;
* Gnome or KDE desktop environment (as above)&lt;br /&gt;
* Server Configuration Tools&lt;br /&gt;
* Web Server&lt;br /&gt;
** Click &amp;quot;Details&amp;quot; and make sure all PHP modules are ticked (except ODBC and PGSQL, they&#039;re not neccesary)&lt;br /&gt;
** make sure not to miss the MYSQL-PHP module (not installed by default)&lt;br /&gt;
* SQL Database&lt;br /&gt;
** Click &amp;quot;Details&amp;quot; and tick MySQL server box&lt;br /&gt;
* Also make sure you set up the firewall. You probably only need to enable HTTP (and perhaps FTP and SSH) access to your server machine, unless you know different.&lt;br /&gt;
&lt;br /&gt;
== Configure hostname and domain name==&lt;br /&gt;
&lt;br /&gt;
Type system-config-network to open the GUI editor.  Click on the DNS tab. In the &amp;quot;DNS Search Path&amp;quot; fill in your domain name for example myuniversity.edu. Now ensure the &amp;quot;Hostname&amp;quot; contains the computer name you will use and click activate to make changes&lt;br /&gt;
&lt;br /&gt;
== Download Moodle==&lt;br /&gt;
(I will install under /usr/moodle, data in /usr/moodle_data)&lt;br /&gt;
&lt;br /&gt;
* Download your favourite version of Moodle from moodle.org (.zip archive is easiest)&lt;br /&gt;
* as Root create folder under /usr and copy zip&lt;br /&gt;
** su&lt;br /&gt;
** mkdir /usr/moodle&lt;br /&gt;
** mkdir /usr/moodle_data&lt;br /&gt;
** cp moodle_111.zip /usr/moodle&lt;br /&gt;
* If you prefer you can install the CVS version directly for all the latest features. Instead of downloading and copying the zip file..&lt;br /&gt;
** cd /usr/moodle&lt;br /&gt;
** cvs -d:pserver:anonymous@uk.cvs.moodle.org:/cvsroot/moodle login&lt;br /&gt;
** cvs -z3 -d:pserver:anonymous@uk.cvs.moodle.org:/cvsroot/moodle co moodle&lt;br /&gt;
&lt;br /&gt;
== Unpack and set file permission etc ==&lt;br /&gt;
&lt;br /&gt;
* Still as root we unpack moodle and rename to something appropiate (I have multiple moodle installs, hence this setup). I will call this install mymoodle.&lt;br /&gt;
** cd /usr/moodle&lt;br /&gt;
** unzip moodle_xxx.zip&lt;br /&gt;
** mv moodle mymoodle&lt;br /&gt;
*** (optional step - I have more than one install under /usr/moodle)&lt;br /&gt;
** mkdir /usr/moodle_data/mymoodle&lt;br /&gt;
*** (same name as the moodle install above)&lt;br /&gt;
** chown -R apache:apache /usr/moodle&lt;br /&gt;
*** (! Giving Apache full rights to your Moodle programs is not secure. Check out the forums for recomendations on how to secure a production environment.)&lt;br /&gt;
** chown -R apache:apache /usr/moodle_data&lt;br /&gt;
&lt;br /&gt;
== Setup config.php ==&lt;br /&gt;
&lt;br /&gt;
* Still as root copy and edit the config file, you should know the host/domain name for your server&lt;br /&gt;
** cd /usr/moodle/mymoodle&lt;br /&gt;
** cp config-dist.php config.php&lt;br /&gt;
** vi config.php (or whatever your favourite editor is!)&lt;br /&gt;
* Your config.php settings should be something like...&lt;br /&gt;
** dbtype = &amp;quot;mysql&amp;quot;&lt;br /&gt;
** dbhost = &amp;quot;localhost&amp;quot;&lt;br /&gt;
** dbname = &amp;quot;mymoodle&amp;quot;&lt;br /&gt;
** dbuser = &amp;quot;moodleuser&amp;quot;&lt;br /&gt;
** dbpass = &amp;quot;moodlepass&amp;quot; (&amp;lt;-- better make this something of your own)&lt;br /&gt;
** prefix = &amp;quot;&amp;quot;&lt;br /&gt;
*** (keep the default &#039;mdl_&#039; prefix if you plan on sharing the database with other applications)&lt;br /&gt;
** wwwroot = &amp;quot;http://myhost.mydomain/mymoodle&amp;quot;&lt;br /&gt;
*** (If you only want to try moodle out and will not be accessing it from other machines you can use &amp;quot;http://localhost/mymoodle&amp;quot;)&lt;br /&gt;
** dirroot = &#039;/usr/moodle/mymoodle&#039;&lt;br /&gt;
** dataroot = &#039;/usr/moodle_data/mymoodle&#039;&lt;br /&gt;
* Save your changes and exit from the editor&lt;br /&gt;
&lt;br /&gt;
== Setup MySQL ==&lt;br /&gt;
&lt;br /&gt;
* First you need to get the MySQL daemon running, it is not running by default.&lt;br /&gt;
** On the Desktop find and launch &amp;quot;Services&amp;quot; (on KDE and Gnome it&#039;s under System Settings=&amp;gt;Server Settings=&amp;gt;Services, but you might have to hunt around).&lt;br /&gt;
** Tick the box for MySQL and (with it selected) press the Start icon - ensure it starts up&lt;br /&gt;
** Choose &amp;quot;Save Changes&amp;quot; from the menu, and exit the program.&lt;br /&gt;
* If you haven&#039;t yet, as root, change the MySQL root password&lt;br /&gt;
** mysqladmin -u root password mysqlpass (&amp;lt;-- should change this to something of your own)&lt;br /&gt;
* Next, set up the MySQL database (see http://moodle.org/doc/?file=install.html#database for more details)&lt;br /&gt;
* Launch MySQL as root&lt;br /&gt;
** mysql -u root -p&lt;br /&gt;
*** (at the password prompt, enter the password from above)&lt;br /&gt;
* At the &#039;&amp;gt;&#039; MySQL prompt, enter the following commands (MySQL commands are ended with a &#039;;&#039;)&lt;br /&gt;
** CREATE DATABASE mymoodle;&lt;br /&gt;
*** (the name &#039;mymoodle&#039; is the same name as the database from Step 4)&lt;br /&gt;
** GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON mymoodle.*&lt;br /&gt;
*** (as above, &#039;mymoodle&#039; is from Step 4)&lt;br /&gt;
** TO moodleuser@localhost IDENTIFIED BY &#039;moodlepass&#039;;&lt;br /&gt;
*** (&#039;moodleuser&#039; and &#039;moodlepass&#039; are from Step 4)&lt;br /&gt;
** flush privileges;&lt;br /&gt;
** quit&lt;br /&gt;
* (! Consider MySQL security - not covered here. If you run a firewall, you don&#039;t have too much to worry about.)&lt;br /&gt;
&lt;br /&gt;
== Setup Apache ==&lt;br /&gt;
&lt;br /&gt;
* Edit the Apache configuration file at /etc/httpd/conf/httpd.conf&lt;br /&gt;
* Right at the end of the file add the following lines: (once again &#039;mymoodle&#039; as from Step 3)&lt;br /&gt;
** &amp;lt;Directory &amp;quot;/usr/moodle/mymoodle&amp;quot;&amp;gt;&lt;br /&gt;
** DirectoryIndex index.php&lt;br /&gt;
** AcceptPathInfo on&lt;br /&gt;
** AllowOverride None&lt;br /&gt;
** Options None&lt;br /&gt;
** Order allow,deny&lt;br /&gt;
** Allow from all&lt;br /&gt;
** &amp;lt;/Directory&amp;gt;&lt;br /&gt;
** Alias /mymoodle &amp;quot;/usr/moodle/mymoodle&amp;quot;&lt;br /&gt;
* Don&#039;t insert a space in &amp;quot;allow,deny&amp;quot; (common mistake!)&lt;br /&gt;
* You might also want to run through the rest of the config file and make some other (obvious) changes - administrator email and suchlike. Not vital though.&lt;br /&gt;
* Run the Services application (same as for Mysql) - tick and start &amp;quot;httpd&amp;quot;, then save changes and exit.&lt;br /&gt;
&lt;br /&gt;
== Set up the cron job ==&lt;br /&gt;
&lt;br /&gt;
As root user edit the /etc/crontab file using vi (or another editor) OR you can add a line to the root user&#039;s &amp;quot;personal&amp;quot; crontab (don&#039;t do both!).&lt;br /&gt;
&lt;br /&gt;
* If you wish to place an entry in your root user&#039;s crontab use:&lt;br /&gt;
** crontab -e&lt;br /&gt;
** Add the following line:&lt;br /&gt;
*** */5 * * * * /usr/bin/wget -O /dev/null http://localhost/mymoodle/admin/cron.php&lt;br /&gt;
**** (change the URL as appropriate for your site)&lt;br /&gt;
---&lt;br /&gt;
* If you wish to add an entry in /etc/crontab:&lt;br /&gt;
* Open the /etc/crontab file in an editor (vi).&lt;br /&gt;
* Add the following line:&lt;br /&gt;
** */5 * * * * root /usr/bin/wget -O /dev/null http://localhost/mymoodle/admin/cron.php&lt;br /&gt;
*** (change the URL as appropriate for your site)&lt;br /&gt;
---&lt;br /&gt;
* In either case, don&#039;t forget to save the file and exit (in vi that is &amp;lt;Esc&amp;gt;, then &#039;:wq&#039;)&lt;br /&gt;
&lt;br /&gt;
== Try your new installation ==&lt;br /&gt;
&lt;br /&gt;
http://myhost.mydomain/mymoodle/admin&lt;br /&gt;
&lt;br /&gt;
or, if you are running the browser on the same machine&lt;br /&gt;
&lt;br /&gt;
http://localhost/mymoodle/admin&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
[[pl:Instalacja_w_RedHat]]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=RedHat_Linux_installation&amp;diff=40884</id>
		<title>RedHat Linux installation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=RedHat_Linux_installation&amp;diff=40884"/>
		<updated>2008-07-29T17:44:31Z</updated>

		<summary type="html">&lt;p&gt;Chuang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Note : These instructions apply to RedHat version 8. They have also been found to work for RedHat 9.0 and for Fedora Core 1 and 2. &#039;&#039;&#039;Fedora Core 3 requires the php-gd package in addition to php.&#039;&#039;&#039; I see no reason why they should not work for later versions. In addition, later distributions of Fedora (after 7) contain a moodle yum package. Installation is as easy as &#039;&#039;&#039;yum install moodle&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Redhat installation considerations: There are many installation options available when installing Redhat. I assume that you are installing on a server and will have selected a Server type install. There is however no reason why this should not work on a desktop or Workstation installation.&lt;br /&gt;
&lt;br /&gt;
== Make sure you have installed the following packages ==&lt;br /&gt;
(You will need to select the option to customize the default set of packages on installation OR bring up the package manager by putting disk 1 back in the drive for an existing system):&lt;br /&gt;
&lt;br /&gt;
* X Windows System (not vital but easier)&lt;br /&gt;
* Gnome or KDE desktop environment (as above)&lt;br /&gt;
* Server Configuration Tools&lt;br /&gt;
* Web Server&lt;br /&gt;
** Click &amp;quot;Details&amp;quot; and make sure all PHP modules are ticked (except ODBC and PGSQL, they&#039;re not neccesary)&lt;br /&gt;
** make sure not to miss the MYSQL-PHP module (not installed by default)&lt;br /&gt;
* SQL Database&lt;br /&gt;
** Click &amp;quot;Details&amp;quot; and tick MySQL server box&lt;br /&gt;
* Also make sure you set up the firewall. You probably only need to enable HTTP (and perhaps FTP and SSH) access to your server machine, unless you know different.&lt;br /&gt;
&lt;br /&gt;
== Configure hostname and domain name==&lt;br /&gt;
&lt;br /&gt;
Type system-config-network to open the GUI editor.  Click on the DNS tab. In the &amp;quot;DNS Search Path&amp;quot; fill in your domain name for example myuniversity.edu. Now ensure the &amp;quot;Hostname&amp;quot; contains the computer name you will use and click activate to make changes&lt;br /&gt;
&lt;br /&gt;
== Download Moodle==&lt;br /&gt;
(I will install under /usr/moodle, data in /usr/moodle_data)&lt;br /&gt;
&lt;br /&gt;
* Download your favourite version of Moodle from moodle.org (.zip archive is easiest)&lt;br /&gt;
* as Root create folder under /usr and copy zip&lt;br /&gt;
** su&lt;br /&gt;
** mkdir /usr/moodle&lt;br /&gt;
** mkdir /usr/moodle_data&lt;br /&gt;
** cp moodle_111.zip /usr/moodle&lt;br /&gt;
* If you prefer you can install the CVS version directly for all the latest features. Instead of downloading and copying the zip file..&lt;br /&gt;
** cd /usr/moodle&lt;br /&gt;
** cvs -d:pserver:anonymous@uk.cvs.moodle.org:/cvsroot/moodle login&lt;br /&gt;
** cvs -z3 -d:pserver:anonymous@uk.cvs.moodle.org:/cvsroot/moodle co moodle&lt;br /&gt;
&lt;br /&gt;
== Unpack and set file permission etc ==&lt;br /&gt;
&lt;br /&gt;
* Still as root we unpack moodle and rename to something appropiate (I have multiple moodle installs, hence this setup). I will call this install mymoodle.&lt;br /&gt;
** cd /usr/moodle&lt;br /&gt;
** unzip moodle_111.zip&lt;br /&gt;
** mv moodle mymoodle&lt;br /&gt;
*** (optional step - I have more than one install under /usr/moodle)&lt;br /&gt;
** mkdir /usr/moodle_data/mymoodle&lt;br /&gt;
*** (same name as the moodle install above)&lt;br /&gt;
** chown -R apache:apache /usr/moodle&lt;br /&gt;
*** (! Giving Apache full rights to your Moodle programs is not secure. Check out the forums for recomendations on how to secure a production environment.)&lt;br /&gt;
** chown -R apache:apache /usr/moodle_data&lt;br /&gt;
&lt;br /&gt;
== Setup config.php ==&lt;br /&gt;
&lt;br /&gt;
* Still as root copy and edit the config file, you should know the host/domain name for your server&lt;br /&gt;
** cd /usr/moodle/mymoodle&lt;br /&gt;
** cp config-dist.php config.php&lt;br /&gt;
** vi config.php (or whatever your favourite editor is!)&lt;br /&gt;
* Your config.php settings should be something like...&lt;br /&gt;
** dbtype = &amp;quot;mysql&amp;quot;&lt;br /&gt;
** dbhost = &amp;quot;localhost&amp;quot;&lt;br /&gt;
** dbname = &amp;quot;mymoodle&amp;quot;&lt;br /&gt;
** dbuser = &amp;quot;moodleuser&amp;quot;&lt;br /&gt;
** dbpass = &amp;quot;moodlepass&amp;quot; (&amp;lt;-- better make this something of your own)&lt;br /&gt;
** prefix = &amp;quot;&amp;quot;&lt;br /&gt;
*** (keep the default &#039;mdl_&#039; prefix if you plan on sharing the database with other applications)&lt;br /&gt;
** wwwroot = &amp;quot;http://myhost.mydomain/mymoodle&amp;quot;&lt;br /&gt;
*** (If you only want to try moodle out and will not be accessing it from other machines you can use &amp;quot;http://localhost/mymoodle&amp;quot;)&lt;br /&gt;
** dirroot = &#039;/usr/moodle/mymoodle&#039;&lt;br /&gt;
** dataroot = &#039;/usr/moodle_data/mymoodle&#039;&lt;br /&gt;
* Save your changes and exit from the editor&lt;br /&gt;
&lt;br /&gt;
== Setup MySQL ==&lt;br /&gt;
&lt;br /&gt;
* First you need to get the MySQL daemon running, it is not running by default.&lt;br /&gt;
** On the Desktop find and launch &amp;quot;Services&amp;quot; (on KDE and Gnome it&#039;s under System Settings=&amp;gt;Server Settings=&amp;gt;Services, but you might have to hunt around).&lt;br /&gt;
** Tick the box for MySQL and (with it selected) press the Start icon - ensure it starts up&lt;br /&gt;
** Choose &amp;quot;Save Changes&amp;quot; from the menu, and exit the program.&lt;br /&gt;
* If you haven&#039;t yet, as root, change the MySQL root password&lt;br /&gt;
** mysqladmin -u root password mysqlpass (&amp;lt;-- should change this to something of your own)&lt;br /&gt;
* Next, set up the MySQL database (see http://moodle.org/doc/?file=install.html#database for more details)&lt;br /&gt;
* Launch MySQL as root&lt;br /&gt;
** mysql -u root -p&lt;br /&gt;
*** (at the password prompt, enter the password from above)&lt;br /&gt;
* At the &#039;&amp;gt;&#039; MySQL prompt, enter the following commands (MySQL commands are ended with a &#039;;&#039;)&lt;br /&gt;
** CREATE DATABASE mymoodle;&lt;br /&gt;
*** (the name &#039;mymoodle&#039; is the same name as the database from Step 4)&lt;br /&gt;
** GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON mymoodle.*&lt;br /&gt;
*** (as above, &#039;mymoodle&#039; is from Step 4)&lt;br /&gt;
** TO moodleuser@localhost IDENTIFIED BY &#039;moodlepass&#039;;&lt;br /&gt;
*** (&#039;moodleuser&#039; and &#039;moodlepass&#039; are from Step 4)&lt;br /&gt;
** flush privileges;&lt;br /&gt;
** quit&lt;br /&gt;
* (! Consider MySQL security - not covered here. If you run a firewall, you don&#039;t have too much to worry about.)&lt;br /&gt;
&lt;br /&gt;
== Setup Apache ==&lt;br /&gt;
&lt;br /&gt;
* Edit the Apache configuration file at /etc/httpd/conf/httpd.conf&lt;br /&gt;
* Right at the end of the file add the following lines: (once again &#039;mymoodle&#039; as from Step 3)&lt;br /&gt;
** &amp;lt;Directory &amp;quot;/usr/moodle/mymoodle&amp;quot;&amp;gt;&lt;br /&gt;
** DirectoryIndex index.php&lt;br /&gt;
** AcceptPathInfo on&lt;br /&gt;
** AllowOverride None&lt;br /&gt;
** Options None&lt;br /&gt;
** Order allow,deny&lt;br /&gt;
** Allow from all&lt;br /&gt;
** &amp;lt;/Directory&amp;gt;&lt;br /&gt;
** Alias /mymoodle &amp;quot;/usr/moodle/mymoodle&amp;quot;&lt;br /&gt;
* Don&#039;t insert a space in &amp;quot;allow,deny&amp;quot; (common mistake!)&lt;br /&gt;
* You might also want to run through the rest of the config file and make some other (obvious) changes - administrator email and suchlike. Not vital though.&lt;br /&gt;
* Run the Services application (same as for Mysql) - tick and start &amp;quot;httpd&amp;quot;, then save changes and exit.&lt;br /&gt;
&lt;br /&gt;
== Set up the cron job ==&lt;br /&gt;
&lt;br /&gt;
As root user edit the /etc/crontab file using vi (or another editor) OR you can add a line to the root user&#039;s &amp;quot;personal&amp;quot; crontab (don&#039;t do both!).&lt;br /&gt;
&lt;br /&gt;
* If you wish to place an entry in your root user&#039;s crontab use:&lt;br /&gt;
** crontab -e&lt;br /&gt;
** Add the following line:&lt;br /&gt;
*** */5 * * * * /usr/bin/wget -O /dev/null http://localhost/mymoodle/admin/cron.php&lt;br /&gt;
**** (change the URL as appropriate for your site)&lt;br /&gt;
---&lt;br /&gt;
* If you wish to add an entry in /etc/crontab:&lt;br /&gt;
* Open the /etc/crontab file in an editor (vi).&lt;br /&gt;
* Add the following line:&lt;br /&gt;
** */5 * * * * root /usr/bin/wget -O /dev/null http://localhost/mymoodle/admin/cron.php&lt;br /&gt;
*** (change the URL as appropriate for your site)&lt;br /&gt;
---&lt;br /&gt;
* In either case, don&#039;t forget to save the file and exit (in vi that is &amp;lt;Esc&amp;gt;, then &#039;:wq&#039;)&lt;br /&gt;
&lt;br /&gt;
== Try your new installation ==&lt;br /&gt;
&lt;br /&gt;
http://myhost.mydomain/mymoodle/admin&lt;br /&gt;
&lt;br /&gt;
or, if you are running the browser on the same machine&lt;br /&gt;
&lt;br /&gt;
http://localhost/mymoodle/admin&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
[[pl:Instalacja_w_RedHat]]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=SF_Developer_HackFest&amp;diff=37672</id>
		<title>SF Developer HackFest</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=SF_Developer_HackFest&amp;diff=37672"/>
		<updated>2008-06-14T08:58:27Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* Wish list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Developer meetings]] &amp;gt; San Francisco 2008 Developer HackFest&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The HackFest was on Monday 9 June 2008 in San Francisco. We had around 50 participants. Thanks to [http://www.remote-learner.net/ Remote-Learner.net] for sponsoring this event.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
* Overview of development for Moodle 1.9 and Moodle 2.0 (Martin)&lt;br /&gt;
* Current [[Roadmap|Moodle 2.0 Roadmap]] run-through (Martin)&lt;br /&gt;
* Brainstorming session to vote on priorities (Martin and all)&lt;br /&gt;
&lt;br /&gt;
===Wish list===&lt;br /&gt;
&lt;br /&gt;
* file / repositories    12&lt;br /&gt;
* student info api    8  (eg banner, peoplesoft)&lt;br /&gt;
* user testing / usability  6&lt;br /&gt;
* performance/caching  6&lt;br /&gt;
* web services / standard API functions 5&lt;br /&gt;
* gradebook interface / ajax   5&lt;br /&gt;
* mobile/offline learning support  4&lt;br /&gt;
* FERPA   3&lt;br /&gt;
* group based enrollments / site-wide groups 3&lt;br /&gt;
* case studies on implementations   3&lt;br /&gt;
* better navigation for students (terms/my moodle)  2&lt;br /&gt;
* opensocial API/docs/forum   2&lt;br /&gt;
* statistics reports  2&lt;br /&gt;
* module api (classes, add tabs to user profile) 2&lt;br /&gt;
* section/course templates   1&lt;br /&gt;
* ldap enrollment plugins 1 &lt;br /&gt;
* course formats / pagelib  1&lt;br /&gt;
* auomating backup/restore more  1 &lt;br /&gt;
* randomization in quiz essays   1 &lt;br /&gt;
* agents for automating tasks for teachers  2&lt;br /&gt;
* better handling of course instances   1 &lt;br /&gt;
* email / messaging   1 &lt;br /&gt;
* delete sections  1 &lt;br /&gt;
* more capabilities  (eg for course settings)  1&lt;br /&gt;
* new wiki   2&lt;br /&gt;
* more control over page layout in themes  1 &lt;br /&gt;
* chat speed / robustness   1 &lt;br /&gt;
* developer training  1&lt;br /&gt;
* gradebook improvements (eg calculated outcomes, easier extra credit)   3&lt;br /&gt;
* module quality review   2&lt;br /&gt;
* eportfolio / outcomes   1&lt;br /&gt;
* early warning systems   1 &lt;br /&gt;
* progress tracking / competencies 2&lt;br /&gt;
* more collaborative tools   2&lt;br /&gt;
* file sharing 2&lt;br /&gt;
* offline gradebook   1&lt;br /&gt;
* video handling 1 &lt;br /&gt;
* whiteboard / conferencing  2&lt;br /&gt;
* moodle networking polishing   1&lt;br /&gt;
* forum improvements (compiling, usability)  1&lt;br /&gt;
* roles user interface improvements  1&lt;br /&gt;
* conditional activities  1 &lt;br /&gt;
* assign activities to users   1&lt;br /&gt;
&lt;br /&gt;
==Round table discussion: Options for getting Moodle to communicate with external systems==&lt;br /&gt;
&lt;br /&gt;
Existing plugins include:&lt;br /&gt;
* Gradebook import / export plugins&lt;br /&gt;
* Auth plugins inc. single sign-on&lt;br /&gt;
* Enrollment plugins&lt;br /&gt;
* Backup / restore&lt;br /&gt;
* Question bank&lt;br /&gt;
* Glossary import / export&lt;br /&gt;
* Database import / export&lt;br /&gt;
* Upload users&lt;br /&gt;
&lt;br /&gt;
Martin L advises avoiding using LDAP unless absolutely necessary. With large systems e.g. Banner, export then import using an enrolment plugin. Use an intermediate database table for enrolment info so as not to be completely dependent upon the student information system. Consider error handling.&lt;br /&gt;
&lt;br /&gt;
Tim H talked about the gradebook export function in XML format for pushing gradebook data into external systems. Martin D mentioned that there&#039;s also an option to publish data through a URL. The gradebook has an option to export only changed grades. Michael P said that any gradebook changes should appear immediately in the external system.&lt;br /&gt;
&lt;br /&gt;
Martin D explained that student info APIs are really complex, so all we can do in Moodle is build and document a toolset. &lt;br /&gt;
&lt;br /&gt;
Future options: [[Development:Web services API]]&lt;br /&gt;
&lt;br /&gt;
==Round table discussion: APIs==&lt;br /&gt;
&lt;br /&gt;
* [[Development:File API]]&lt;br /&gt;
* [[Development:Repository API]]&lt;br /&gt;
* [[Development:Portfolio API]]&lt;br /&gt;
&lt;br /&gt;
==Round table discussion: Further plug-ability and expandability==&lt;br /&gt;
&lt;br /&gt;
Michael P demonstrated flexpage format (see also Using Moodle [http://moodle.org/mod/forum/discuss.php?d=83817 New format- Flexible Page] forum discussion).&lt;br /&gt;
&lt;br /&gt;
Mark N then described his proposed format plugin changes (see [http://moodle.org/mod/forum/discuss.php?d=95882 Proposed format plugin changes] forum discussion).&lt;br /&gt;
&lt;br /&gt;
Tim H demonstrated the shared activities system, an abuse of the course format ;-) (see the modules and plugins database entry [http://moodle.org/mod/data/view.php?d=13&amp;amp;rid=1558 Shared activities system]).&lt;br /&gt;
&lt;br /&gt;
Martin concluded that we need a course formats spec for developing it.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=etag&amp;diff=37267</id>
		<title>etag</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=etag&amp;diff=37267"/>
		<updated>2008-06-10T04:15:36Z</updated>

		<summary type="html">&lt;p&gt;Chuang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An ETag (entity tag) is an &#039;&#039;&#039;HTTP response header&#039;&#039;&#039; returned by an HTTP/1.1 compliant web server used to determine change in content at a given URL. For more information please refer to [http://en.wikipedia.org/wiki/HTTP_ETag]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=SF_Developer_HackFest&amp;diff=37219</id>
		<title>SF Developer HackFest</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=SF_Developer_HackFest&amp;diff=37219"/>
		<updated>2008-06-09T07:29:59Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* Other stuff */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Developer meetings]] &amp;gt; San Francisco 2008 Developer HackFest&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Date: 9am - 5pm Monday 9th June 2008 - see the [http://moodle.org/calendar/view.php?view=day&amp;amp;course=5&amp;amp;cal_d=9&amp;amp;cal_m=6&amp;amp;cal_y=2008 San Francisco 2008 Developer HackFest calendar entry] for conversion into your time zone&lt;br /&gt;
*Location: [http://www.grosvenorsfo.com/ Best Western Grosvenor Hotel], San Francisco&lt;br /&gt;
*Online location: [http://elluminate.remote-learner.net/join_meeting.html?meetingId=1176914355734 Elluminate Moodle Developers Meeting Room] - login using your actual name as login name and password &#039;&#039;moodle&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Developers and anyone wishing to become a Moodle developer can share code and ideas, and help shape the future of Moodle. This event is FREE, thanks to the sponsor [http://www.remote-learner.net/ Remote-Learner.net].&lt;br /&gt;
&lt;br /&gt;
Everyone is welcome, either in person or online :-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Please add items to the agenda!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
* Overview of development for Moodle 1.9 and Moodle 2.0 (Martin)&lt;br /&gt;
* Current [[Roadmap|Moodle 2.0 Roadmap]] run-through (Martin)&lt;br /&gt;
* Brainstorming session to vote on priorities (Martin and all)&lt;br /&gt;
&lt;br /&gt;
==Round table discussions==&lt;br /&gt;
&lt;br /&gt;
# Options for getting Moodle to communicate with external systems, including [[Development:Web services API|web services]]&lt;br /&gt;
# API&#039;s for [[Development:Portfolio API|portfolios]], [[Development:File API|file managers]] and [[Development:Repository API|document repositories]]&lt;br /&gt;
# Further plug-ability and expandability e.g. new course format objects, redefining page display layer etc.&lt;br /&gt;
&lt;br /&gt;
Participants will be sharing code and development ideas that have emerged in their organizations in smaller groups, with the aim of coming up with a list of recommendations that can be formed into specifications.&lt;br /&gt;
&lt;br /&gt;
==General discussions==&lt;br /&gt;
&lt;br /&gt;
===Gradebook interface improvements===&lt;br /&gt;
*Overview of community feedback on 1.9 gradebook (Nicolas Connault)&lt;br /&gt;
*Run-down of current development&lt;br /&gt;
*Discussion of ideas for improvement, better defaults etc.&lt;br /&gt;
&lt;br /&gt;
===Google Summer of Code===&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008|Google Summer of Code 2008]] (Helen)&lt;br /&gt;
&lt;br /&gt;
===If you want to lead a discussion on something, please add it here!===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other stuff==&lt;br /&gt;
* I (Tim Hunt, OU Moodle developer and Moodle quiz module maintainer) will be there. I don&#039;t have anything in particular that I want to say, but I am very happy to talk about anything anyone else wants to cover that I know about.&lt;br /&gt;
* It might be good to have a general discussion on general testing/QA issues. Eg. bug triage, encouraging more testing/QA contributors, the weekly review etc. --[[User:Dan Poltawski|Dan Poltawski]] 13:14, 30 May 2008 (CDT)&lt;br /&gt;
* I second Dan&#039;s idea! It would be great if we could brainstorm a more coordinated and systematic way of doing QA! Thanks! --Wen 00:09, 9 June 2008 (PST)&lt;br /&gt;
* Also, it might be good to have some discussion on a better voting mechanism (e.g., a moodle block on the moodle.org front page that have something like http://www.twiigs.com/) to encourage moodle community users to vote on important issues (e.g. default settings, etc.). --Wen 00:29, 9 June 2008 (PST)&lt;br /&gt;
* Including global (or context) groups in Moodle 2.0 roadmap (and talk about that), as Petr agreed in the tracker (see MDL-11826)&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=SF_Developer_HackFest&amp;diff=37215</id>
		<title>SF Developer HackFest</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=SF_Developer_HackFest&amp;diff=37215"/>
		<updated>2008-06-09T07:11:42Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* Other stuff */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Developer meetings]] &amp;gt; San Francisco 2008 Developer HackFest&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Date: 9am - 5pm Monday 9th June 2008 - see the [http://moodle.org/calendar/view.php?view=day&amp;amp;course=5&amp;amp;cal_d=9&amp;amp;cal_m=6&amp;amp;cal_y=2008 San Francisco 2008 Developer HackFest calendar entry] for conversion into your time zone&lt;br /&gt;
*Location: [http://www.grosvenorsfo.com/ Best Western Grosvenor Hotel], San Francisco&lt;br /&gt;
*Online location: [http://elluminate.remote-learner.net/join_meeting.html?meetingId=1176914355734 Elluminate Moodle Developers Meeting Room] - login using your actual name as login name and password &#039;&#039;moodle&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Developers and anyone wishing to become a Moodle developer can share code and ideas, and help shape the future of Moodle. This event is FREE, thanks to the sponsor [http://www.remote-learner.net/ Remote-Learner.net].&lt;br /&gt;
&lt;br /&gt;
Everyone is welcome, either in person or online :-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Please add items to the agenda!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
* Overview of development for Moodle 1.9 and Moodle 2.0 (Martin)&lt;br /&gt;
* Current [[Roadmap|Moodle 2.0 Roadmap]] run-through (Martin)&lt;br /&gt;
* Brainstorming session to vote on priorities (Martin and all)&lt;br /&gt;
&lt;br /&gt;
==Round table discussions==&lt;br /&gt;
&lt;br /&gt;
# Options for getting Moodle to communicate with external systems, including [[Development:Web services API|web services]]&lt;br /&gt;
# API&#039;s for [[Development:Portfolio API|portfolios]], [[Development:File API|file managers]] and [[Development:Repository API|document repositories]]&lt;br /&gt;
# Further plug-ability and expandability e.g. new course format objects, redefining page display layer etc.&lt;br /&gt;
&lt;br /&gt;
Participants will be sharing code and development ideas that have emerged in their organizations in smaller groups, with the aim of coming up with a list of recommendations that can be formed into specifications.&lt;br /&gt;
&lt;br /&gt;
==General discussions==&lt;br /&gt;
&lt;br /&gt;
===Gradebook interface improvements===&lt;br /&gt;
*Overview of community feedback on 1.9 gradebook (Nicolas Connault)&lt;br /&gt;
*Run-down of current development&lt;br /&gt;
*Discussion of ideas for improvement, better defaults etc.&lt;br /&gt;
&lt;br /&gt;
===Google Summer of Code===&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008|Google Summer of Code 2008]] (Helen)&lt;br /&gt;
&lt;br /&gt;
===If you want to lead a discussion on something, please add it here!===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other stuff==&lt;br /&gt;
* I (Tim Hunt, OU Moodle developer and Moodle quiz module maintainer) will be there. I don&#039;t have anything in particular that I want to say, but I am very happy to talk about anything anyone else wants to cover that I know about.&lt;br /&gt;
* It might be good to have a general discussion on general testing/QA issues. Eg. bug triage, encouraging more testing/QA contributors, the weekly review etc. --[[User:Dan Poltawski|Dan Poltawski]] 13:14, 30 May 2008 (CDT)&lt;br /&gt;
* I second Dan&#039;s idea! It would be great if we could brainstorm a more coordinated and systematic way of doing QA! Thanks! --Wen 00:09, 9 June 2008 (PST)&lt;br /&gt;
* Including global (or context) groups in Moodle 2.0 roadmap (and talk about that), as Petr agreed in the tracker (see MDL-11826)&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=SF_Developer_HackFest&amp;diff=37214</id>
		<title>SF Developer HackFest</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=SF_Developer_HackFest&amp;diff=37214"/>
		<updated>2008-06-09T07:09:52Z</updated>

		<summary type="html">&lt;p&gt;Chuang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Developer meetings]] &amp;gt; San Francisco 2008 Developer HackFest&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Date: 9am - 5pm Monday 9th June 2008 - see the [http://moodle.org/calendar/view.php?view=day&amp;amp;course=5&amp;amp;cal_d=9&amp;amp;cal_m=6&amp;amp;cal_y=2008 San Francisco 2008 Developer HackFest calendar entry] for conversion into your time zone&lt;br /&gt;
*Location: [http://www.grosvenorsfo.com/ Best Western Grosvenor Hotel], San Francisco&lt;br /&gt;
*Online location: [http://elluminate.remote-learner.net/join_meeting.html?meetingId=1176914355734 Elluminate Moodle Developers Meeting Room] - login using your actual name as login name and password &#039;&#039;moodle&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Developers and anyone wishing to become a Moodle developer can share code and ideas, and help shape the future of Moodle. This event is FREE, thanks to the sponsor [http://www.remote-learner.net/ Remote-Learner.net].&lt;br /&gt;
&lt;br /&gt;
Everyone is welcome, either in person or online :-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Please add items to the agenda!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
* Overview of development for Moodle 1.9 and Moodle 2.0 (Martin)&lt;br /&gt;
* Current [[Roadmap|Moodle 2.0 Roadmap]] run-through (Martin)&lt;br /&gt;
* Brainstorming session to vote on priorities (Martin and all)&lt;br /&gt;
&lt;br /&gt;
==Round table discussions==&lt;br /&gt;
&lt;br /&gt;
# Options for getting Moodle to communicate with external systems, including [[Development:Web services API|web services]]&lt;br /&gt;
# API&#039;s for [[Development:Portfolio API|portfolios]], [[Development:File API|file managers]] and [[Development:Repository API|document repositories]]&lt;br /&gt;
# Further plug-ability and expandability e.g. new course format objects, redefining page display layer etc.&lt;br /&gt;
&lt;br /&gt;
Participants will be sharing code and development ideas that have emerged in their organizations in smaller groups, with the aim of coming up with a list of recommendations that can be formed into specifications.&lt;br /&gt;
&lt;br /&gt;
==General discussions==&lt;br /&gt;
&lt;br /&gt;
===Gradebook interface improvements===&lt;br /&gt;
*Overview of community feedback on 1.9 gradebook (Nicolas Connault)&lt;br /&gt;
*Run-down of current development&lt;br /&gt;
*Discussion of ideas for improvement, better defaults etc.&lt;br /&gt;
&lt;br /&gt;
===Google Summer of Code===&lt;br /&gt;
&lt;br /&gt;
*[[GSOC/2008|Google Summer of Code 2008]] (Helen)&lt;br /&gt;
&lt;br /&gt;
===If you want to lead a discussion on something, please add it here!===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other stuff==&lt;br /&gt;
* I (Tim Hunt, OU Moodle developer and Moodle quiz module maintainer) will be there. I don&#039;t have anything in particular that I want to say, but I am very happy to talk about anything anyone else wants to cover that I know about.&lt;br /&gt;
*It might be good to have a general discussion on general testing/QA issues. Eg. bug triage, encouraging more testing/QA contributors, the weekly review etc. --[[User:Dan Poltawski|Dan Poltawski]] 13:14, 30 May 2008 (CDT)&lt;br /&gt;
I second this! It would be great if we could brainstorm a more coordinated and more systematic way of doing QA! Thanks! --[[User:Wen Hao Chuang[Wen]] 00:09, 9 June 2008 (PST)&lt;br /&gt;
* Including global (or context) groups in Moodle 2.0 roadmap (and talk about that), as Petr agreed in the tracker (see MDL-11826)&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Installations_10000_plus&amp;diff=37212</id>
		<title>Installations 10000 plus</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Installations_10000_plus&amp;diff=37212"/>
		<updated>2008-06-09T02:47:28Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* United States */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Large Installations}}&lt;br /&gt;
&lt;br /&gt;
Please add your school info here, if you have a Moodle installation catering (or expecting to cater) for 10,000 or more users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Brazil==&lt;br /&gt;
* [http://www.escolatecnica.ufrgs.br Escola Técnica da Universidade Federal do Rio Grande do Sul] - Professional school in Brazil, with 1,200 students. Adopted Moodle in 2004 and has been using it since then.&lt;br /&gt;
&lt;br /&gt;
==Canada==&lt;br /&gt;
&lt;br /&gt;
* [http://www.athabascau.ca/ Athabasca University] - Canada&#039;s leading distance-education and online university: Canada&#039;s Open University, serving about 30,000 students per year. Athabasca has decided to adopt Moodle as a single platform instead of WebCT Vista (i.e. the top of the line version). You can read their [http://www.athabascau.ca/media/index.php?id=132 press release] for more info.&lt;br /&gt;
&lt;br /&gt;
* [http://moodle.mala.bc.ca/ Malaspina University-College] - Malaspina U-C is located on Vancouver Island in British Columbia, Canada. MUC was established in 1969, and has over 10,000 full-time Canadian students, plus 1,000 international students from more than 50 countries. MUC offers graduate and undergraduate degrees, diplomas and certificates, and a 5-level English Language program. MUC offers classroom-student support through Moodle, as well as a range of fully online courses through [http://pr.malaonline.ca/ Malaspina Continuing Education]. MUC switched from WebCT to Moodle in 2006.&lt;br /&gt;
&lt;br /&gt;
==China==&lt;br /&gt;
&lt;br /&gt;
* [http://english.bit.edu.cn/ Beijing Institute of Technology]&lt;br /&gt;
&lt;br /&gt;
==France==&lt;br /&gt;
&lt;br /&gt;
* [http://cursus.uhb.fr/ Université de Rennes 2 - Haute Bretagne] - 20,000 to 30,000 users in 800 courses&lt;br /&gt;
** 5,000 different users connected every month&lt;br /&gt;
** 200 teachers actually involved&lt;br /&gt;
** integration with LDAP and Esup-Portail (based on uPortal) ; &lt;br /&gt;
** authentication via CAS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://foad.univ-tlse1.fr/ Université Toulouse 1 - Sciences Sociales] - 18,000 users in 360 courses&lt;br /&gt;
** authentication via LDAP (CAS planned for september, when updating from 1.6.x to 1.8.x)&lt;br /&gt;
&lt;br /&gt;
==Germany==&lt;br /&gt;
&lt;br /&gt;
* [http://www.isis.tu-berlin.de/ Technische Universität Berlin] - 10,400 Users in 402 courses (updated: 07.June.2007)&lt;br /&gt;
** After a test period, the Information System for Instructors and Students (ISIS) was launched in september 2006. &lt;br /&gt;
&lt;br /&gt;
==India==&lt;br /&gt;
* [http://www.amieindia.net AMIE India] is a website for [http://www.amieindia.net AMIE] students currently (as of September 2007) having 239 courses, 11246 users.&lt;br /&gt;
&lt;br /&gt;
==Ireland==&lt;br /&gt;
&lt;br /&gt;
* [http://www.dcu.ie Dublin City University] 18,000 users in 3,600 courses.&lt;br /&gt;
&lt;br /&gt;
==Italy==&lt;br /&gt;
&lt;br /&gt;
* [http://www.aulaweb.unige.it/ AulaWeb - University of Genoa] AulaWeb is an university-wide installation of Moodle, organized in virtual instances, one for each laurea degree. In March 2007, it hosts more than 78 instances used by 10.500 students.&lt;br /&gt;
&lt;br /&gt;
* [http://elearning.uniroma1.it/ CITICoRD - University of Rome La Sapienza] CITICoRD hosts more than 330 courses for about 20.100 students from about 20 faculties, ranging from enginering scientific courses to literature and medicine.&lt;br /&gt;
&lt;br /&gt;
==New Zealand==&lt;br /&gt;
&lt;br /&gt;
*[http://campus.openpolytechnic.ac.nz/ The Open Polytechnic of New Zealand] - 35,000+ students, 6,500+ courses, single sign-on for library services using Ezy Proxy, single sign-on for webmail, using SquirrelMail, uses LDAP for interface with Sears Student Management System. Comments by [https://eduforge.org/wiki/wiki/nzvle/wiki?pagename=Comments%20by%20Ken%20Udas%2C%20Director%20of%20eLearning%20at%20the%20Open%20Polytechnic Ken Udas, Director of eLearning at the Open Polytechnic]&lt;br /&gt;
&lt;br /&gt;
==Jamaica==&lt;br /&gt;
*[http://ourvle.mona.uwi.edu The University of the West Indies] - 23,000+ users in 1600+ courses&lt;br /&gt;
&lt;br /&gt;
== Portugal ==&lt;br /&gt;
&lt;br /&gt;
*[http://moodle.fct.unl.pt Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa] - 5000+ users in 400+ pages.&lt;br /&gt;
&lt;br /&gt;
== Spain ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[http://aulavirtual.uji.es/ Universitat Jaume I] - 13,000 users in 600 courses.&lt;br /&gt;
&lt;br /&gt;
*[http://www.upc.edu La Universitat Politecnica de Cataluña] on september 2005 started a pilot Moodle installation with 3.000 Students. On september 2006 the migration from the old campus to Moodle will be complete with more than 30.00 students [http://atenea.upc.edu El campus Atenea 4] runs Moodle 1.4.5 y an will be updated to Moodle 1.5.3 in september 2006. [http://www.upc.edu UPC] has developed several applicatons adn bridges between its own informacion systems.&lt;br /&gt;
** Integration with the academic management informatio system &amp;quot;Prisma&amp;quot;.   &lt;br /&gt;
** [http://appserv.lsi.upc.es/palangana/moodle/course/view.php?id=18 Internalmail] (developed also in  UPC) is used for as email internal system.&lt;br /&gt;
** Moodle integration with [http://bibliotecnica.upc.edu the upc library system].&lt;br /&gt;
** Adaptation of Moodle grades to spanish university grading system.&lt;br /&gt;
** And other stuff&lt;br /&gt;
&lt;br /&gt;
*[http://www.urv.cat/ Universitat Rovira i Virgili] using Moodle for three academic years. At present version 1.5.4+ to be updated to 1.6.4+ in short. In march 2007, 22701 users registered and 3500 courses created aprox.&lt;br /&gt;
** Integration with the academic management information system&lt;br /&gt;
** Integration with the corporative LDAP user’s directory&lt;br /&gt;
** Average of 504 courses used regularly (logs at least once a week)&lt;br /&gt;
** Average of 3200 students login at least once a day&lt;br /&gt;
** Average of 7200 students login at least once a week&lt;br /&gt;
** 10500 users (teachers and students) accessed at least once during the last month (data from 26th march 2007)&lt;br /&gt;
&lt;br /&gt;
*[http://www.ulpgc.es/index.php?pagina=campusvirtual&amp;amp;ver=inicio Universidad de Las Palmas de Gran Canaria (ULPGC)] - 24.000 users in aprox. 1800 courses. We started with Moodle 1.4 four years ago as a test pilot project for a small number of courses. Now offered as a basic service for all courses at ULPGC: 55 official EU titles and 5 more offered ONLY through Web. &lt;br /&gt;
** We are using version 1.6.3 with LDAP authentification&lt;br /&gt;
** Custom modules: ULPGCAssignment and ULPGCDialogUe, heavily modified Appointment/Scheduler&lt;br /&gt;
** Custom groupings/scopes for small team activities (e.g. group assignment)&lt;br /&gt;
** Regular-intense usage ranks by 60% of courses/students.&lt;br /&gt;
&lt;br /&gt;
*[http://campusvirtual.ub.edu/ Universitat de Barcelona] - 60.000 users in 7.300 courses. Started in September 2006 as a project, UB Moodle site will be open for all next September.&lt;br /&gt;
&lt;br /&gt;
*[http://campuvirtual.unex.es Universidad de Extremadura] - 15000 users in aprox. 700 courses.&lt;br /&gt;
&lt;br /&gt;
==United Kingdom==&lt;br /&gt;
&lt;br /&gt;
*[http://www.open.ac.uk/ The Open University (OU)] - the United Kingdom&#039;s only university dedicated to distance learning. They have around 150,000 undergraduate and more than 30,000 postgraduate students. They are in the middle on a two-year programme to build a VLE based on Moodle. In November 2007, the OU&#039;s Moodle database contains over 400,000 users and 3,000 courses.&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;Now, The Open University’s Learning and Teaching Office has started a new programme worth nearly £5 million to build a comprehensive online student learning environment for the 21st century. &lt;br /&gt;
&lt;br /&gt;
:The development, which will first appear in May of 2006, and be fully operational for February 2007 courses, will see the largest use of Moodle in the world. Moodle is a free, Open Source software package course management system used by educators to create effective online learning communities.&lt;br /&gt;
&lt;br /&gt;
:Currently Open University students use a variety of software in a network to access their course work, interact with tutors and other students, use the library, submit assignments and handle administrative paperwork. The new development incorporating Moodle will ensure the network is much more user-friendly and uniform.&amp;quot; Source: [http://www3.open.ac.uk/events/7/2005118_40887_nr.doc OU press release] (.doc format).&lt;br /&gt;
&lt;br /&gt;
*[http://openlearn.open.ac.uk/ OpenLearn] The Open University&#039;s open content initiative. Website development began in May 2006 and the site was launched in October 2006, supported by a grant from The William and Flora Hewlett Foundation. By April 2008, 5,400 learning hours of content will be available online. Currenly (early 2007) over 10,000 unique users.&lt;br /&gt;
&lt;br /&gt;
*[http://www.gla.ac.uk/ The University of Glasgow] - A long-established (founded 1451) and high-profile research university in the UK, with 20,000 students (16,000 undergrad, 4,000 postgrad), 6,000 staff, 20,000 unique users of Moodle (as of Jan 2008). Uses LDAP for integration with Novell and a custom MIS system for user authentication. Their site is organised on a one Moodle site per faculty basis to facilitate both appropriate themeing and to simplify balancing across servers.&lt;br /&gt;
&lt;br /&gt;
==United States==&lt;br /&gt;
*[http://moodle.cpcc.edu Central Piedmont Community College (CPCC) ] uses moodle for both curriculum and Corporate and Continuing Education. For curriculum it runs in parallel to Blackboard as faculty migrate to moodle over time. There are currently no plans to go moodle only, although many administrators favor this option. The server has 30,000 or so users on it, but the actual number of active users varies widely. It is used for both hybrid and full-online classes. Corporate and Continuing Education runs its own branded instance and uses only moodle for distance education. We have about 80,000 students total, covering the range from GED, adult-ed, curriculum, and other areas serviced by 7 campuses in and around Charlotte, North Carolina. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[http://ilearn.sfsu.edu San Francisco State University (SFSU) ] uses moodle for more than three years now. We use moodle for our main campus and the College of Extended Learning (CEL). For curriculum, moodle used to run in parallel with Blackboard as faculty migrate to moodle over time (SFSU officially phased out Blackboard, as of 6/30/2007). The servers have total of 89K users (as of 09/05/2007), among these 89K users, 28K are considered as currently active. As for courses, we have total of 57K courses sitting on our database, and among them, around 53K are considered as active. We also have integrated Moodle with our SIMS/R system (see http://www.sfsu.edu/sims/overview.htm). We also have courses that have more than 1,300+ students in one course with lots of quizzes (20+) and quiz attempts. The student population in SFSU covers the range from undergraduate, graduate, and first professional students.&lt;br /&gt;
&lt;br /&gt;
==Taiwan==&lt;br /&gt;
{{Template:Large Installations}}&lt;br /&gt;
[http://www.thu.edu.tw/english/enindex.htm Tunghai University]&lt;br /&gt;
*More then 17,000 registed Users&lt;br /&gt;
*16,000 users login in one day( Max. )&lt;br /&gt;
*3,000 courses per semester&lt;br /&gt;
*integration with novell ichan for single sign on&lt;br /&gt;
*integration with school support system&lt;br /&gt;
&lt;br /&gt;
our moodle web site: [http://elearning.thu.edu.tw]&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Installations_10000_plus&amp;diff=37211</id>
		<title>Installations 10000 plus</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Installations_10000_plus&amp;diff=37211"/>
		<updated>2008-06-09T02:45:51Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* United States */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Large Installations}}&lt;br /&gt;
&lt;br /&gt;
Please add your school info here, if you have a Moodle installation catering (or expecting to cater) for 10,000 or more users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Brazil==&lt;br /&gt;
* [http://www.escolatecnica.ufrgs.br Escola Técnica da Universidade Federal do Rio Grande do Sul] - Professional school in Brazil, with 1,200 students. Adopted Moodle in 2004 and has been using it since then.&lt;br /&gt;
&lt;br /&gt;
==Canada==&lt;br /&gt;
&lt;br /&gt;
* [http://www.athabascau.ca/ Athabasca University] - Canada&#039;s leading distance-education and online university: Canada&#039;s Open University, serving about 30,000 students per year. Athabasca has decided to adopt Moodle as a single platform instead of WebCT Vista (i.e. the top of the line version). You can read their [http://www.athabascau.ca/media/index.php?id=132 press release] for more info.&lt;br /&gt;
&lt;br /&gt;
* [http://moodle.mala.bc.ca/ Malaspina University-College] - Malaspina U-C is located on Vancouver Island in British Columbia, Canada. MUC was established in 1969, and has over 10,000 full-time Canadian students, plus 1,000 international students from more than 50 countries. MUC offers graduate and undergraduate degrees, diplomas and certificates, and a 5-level English Language program. MUC offers classroom-student support through Moodle, as well as a range of fully online courses through [http://pr.malaonline.ca/ Malaspina Continuing Education]. MUC switched from WebCT to Moodle in 2006.&lt;br /&gt;
&lt;br /&gt;
==China==&lt;br /&gt;
&lt;br /&gt;
* [http://english.bit.edu.cn/ Beijing Institute of Technology]&lt;br /&gt;
&lt;br /&gt;
==France==&lt;br /&gt;
&lt;br /&gt;
* [http://cursus.uhb.fr/ Université de Rennes 2 - Haute Bretagne] - 20,000 to 30,000 users in 800 courses&lt;br /&gt;
** 5,000 different users connected every month&lt;br /&gt;
** 200 teachers actually involved&lt;br /&gt;
** integration with LDAP and Esup-Portail (based on uPortal) ; &lt;br /&gt;
** authentication via CAS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://foad.univ-tlse1.fr/ Université Toulouse 1 - Sciences Sociales] - 18,000 users in 360 courses&lt;br /&gt;
** authentication via LDAP (CAS planned for september, when updating from 1.6.x to 1.8.x)&lt;br /&gt;
&lt;br /&gt;
==Germany==&lt;br /&gt;
&lt;br /&gt;
* [http://www.isis.tu-berlin.de/ Technische Universität Berlin] - 10,400 Users in 402 courses (updated: 07.June.2007)&lt;br /&gt;
** After a test period, the Information System for Instructors and Students (ISIS) was launched in september 2006. &lt;br /&gt;
&lt;br /&gt;
==India==&lt;br /&gt;
* [http://www.amieindia.net AMIE India] is a website for [http://www.amieindia.net AMIE] students currently (as of September 2007) having 239 courses, 11246 users.&lt;br /&gt;
&lt;br /&gt;
==Ireland==&lt;br /&gt;
&lt;br /&gt;
* [http://www.dcu.ie Dublin City University] 18,000 users in 3,600 courses.&lt;br /&gt;
&lt;br /&gt;
==Italy==&lt;br /&gt;
&lt;br /&gt;
* [http://www.aulaweb.unige.it/ AulaWeb - University of Genoa] AulaWeb is an university-wide installation of Moodle, organized in virtual instances, one for each laurea degree. In March 2007, it hosts more than 78 instances used by 10.500 students.&lt;br /&gt;
&lt;br /&gt;
* [http://elearning.uniroma1.it/ CITICoRD - University of Rome La Sapienza] CITICoRD hosts more than 330 courses for about 20.100 students from about 20 faculties, ranging from enginering scientific courses to literature and medicine.&lt;br /&gt;
&lt;br /&gt;
==New Zealand==&lt;br /&gt;
&lt;br /&gt;
*[http://campus.openpolytechnic.ac.nz/ The Open Polytechnic of New Zealand] - 35,000+ students, 6,500+ courses, single sign-on for library services using Ezy Proxy, single sign-on for webmail, using SquirrelMail, uses LDAP for interface with Sears Student Management System. Comments by [https://eduforge.org/wiki/wiki/nzvle/wiki?pagename=Comments%20by%20Ken%20Udas%2C%20Director%20of%20eLearning%20at%20the%20Open%20Polytechnic Ken Udas, Director of eLearning at the Open Polytechnic]&lt;br /&gt;
&lt;br /&gt;
==Jamaica==&lt;br /&gt;
*[http://ourvle.mona.uwi.edu The University of the West Indies] - 23,000+ users in 1600+ courses&lt;br /&gt;
&lt;br /&gt;
== Portugal ==&lt;br /&gt;
&lt;br /&gt;
*[http://moodle.fct.unl.pt Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa] - 5000+ users in 400+ pages.&lt;br /&gt;
&lt;br /&gt;
== Spain ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[http://aulavirtual.uji.es/ Universitat Jaume I] - 13,000 users in 600 courses.&lt;br /&gt;
&lt;br /&gt;
*[http://www.upc.edu La Universitat Politecnica de Cataluña] on september 2005 started a pilot Moodle installation with 3.000 Students. On september 2006 the migration from the old campus to Moodle will be complete with more than 30.00 students [http://atenea.upc.edu El campus Atenea 4] runs Moodle 1.4.5 y an will be updated to Moodle 1.5.3 in september 2006. [http://www.upc.edu UPC] has developed several applicatons adn bridges between its own informacion systems.&lt;br /&gt;
** Integration with the academic management informatio system &amp;quot;Prisma&amp;quot;.   &lt;br /&gt;
** [http://appserv.lsi.upc.es/palangana/moodle/course/view.php?id=18 Internalmail] (developed also in  UPC) is used for as email internal system.&lt;br /&gt;
** Moodle integration with [http://bibliotecnica.upc.edu the upc library system].&lt;br /&gt;
** Adaptation of Moodle grades to spanish university grading system.&lt;br /&gt;
** And other stuff&lt;br /&gt;
&lt;br /&gt;
*[http://www.urv.cat/ Universitat Rovira i Virgili] using Moodle for three academic years. At present version 1.5.4+ to be updated to 1.6.4+ in short. In march 2007, 22701 users registered and 3500 courses created aprox.&lt;br /&gt;
** Integration with the academic management information system&lt;br /&gt;
** Integration with the corporative LDAP user’s directory&lt;br /&gt;
** Average of 504 courses used regularly (logs at least once a week)&lt;br /&gt;
** Average of 3200 students login at least once a day&lt;br /&gt;
** Average of 7200 students login at least once a week&lt;br /&gt;
** 10500 users (teachers and students) accessed at least once during the last month (data from 26th march 2007)&lt;br /&gt;
&lt;br /&gt;
*[http://www.ulpgc.es/index.php?pagina=campusvirtual&amp;amp;ver=inicio Universidad de Las Palmas de Gran Canaria (ULPGC)] - 24.000 users in aprox. 1800 courses. We started with Moodle 1.4 four years ago as a test pilot project for a small number of courses. Now offered as a basic service for all courses at ULPGC: 55 official EU titles and 5 more offered ONLY through Web. &lt;br /&gt;
** We are using version 1.6.3 with LDAP authentification&lt;br /&gt;
** Custom modules: ULPGCAssignment and ULPGCDialogUe, heavily modified Appointment/Scheduler&lt;br /&gt;
** Custom groupings/scopes for small team activities (e.g. group assignment)&lt;br /&gt;
** Regular-intense usage ranks by 60% of courses/students.&lt;br /&gt;
&lt;br /&gt;
*[http://campusvirtual.ub.edu/ Universitat de Barcelona] - 60.000 users in 7.300 courses. Started in September 2006 as a project, UB Moodle site will be open for all next September.&lt;br /&gt;
&lt;br /&gt;
*[http://campuvirtual.unex.es Universidad de Extremadura] - 15000 users in aprox. 700 courses.&lt;br /&gt;
&lt;br /&gt;
==United Kingdom==&lt;br /&gt;
&lt;br /&gt;
*[http://www.open.ac.uk/ The Open University (OU)] - the United Kingdom&#039;s only university dedicated to distance learning. They have around 150,000 undergraduate and more than 30,000 postgraduate students. They are in the middle on a two-year programme to build a VLE based on Moodle. In November 2007, the OU&#039;s Moodle database contains over 400,000 users and 3,000 courses.&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;Now, The Open University’s Learning and Teaching Office has started a new programme worth nearly £5 million to build a comprehensive online student learning environment for the 21st century. &lt;br /&gt;
&lt;br /&gt;
:The development, which will first appear in May of 2006, and be fully operational for February 2007 courses, will see the largest use of Moodle in the world. Moodle is a free, Open Source software package course management system used by educators to create effective online learning communities.&lt;br /&gt;
&lt;br /&gt;
:Currently Open University students use a variety of software in a network to access their course work, interact with tutors and other students, use the library, submit assignments and handle administrative paperwork. The new development incorporating Moodle will ensure the network is much more user-friendly and uniform.&amp;quot; Source: [http://www3.open.ac.uk/events/7/2005118_40887_nr.doc OU press release] (.doc format).&lt;br /&gt;
&lt;br /&gt;
*[http://openlearn.open.ac.uk/ OpenLearn] The Open University&#039;s open content initiative. Website development began in May 2006 and the site was launched in October 2006, supported by a grant from The William and Flora Hewlett Foundation. By April 2008, 5,400 learning hours of content will be available online. Currenly (early 2007) over 10,000 unique users.&lt;br /&gt;
&lt;br /&gt;
*[http://www.gla.ac.uk/ The University of Glasgow] - A long-established (founded 1451) and high-profile research university in the UK, with 20,000 students (16,000 undergrad, 4,000 postgrad), 6,000 staff, 20,000 unique users of Moodle (as of Jan 2008). Uses LDAP for integration with Novell and a custom MIS system for user authentication. Their site is organised on a one Moodle site per faculty basis to facilitate both appropriate themeing and to simplify balancing across servers.&lt;br /&gt;
&lt;br /&gt;
==United States==&lt;br /&gt;
*[http://moodle.cpcc.edu Central Piedmont Community College (CPCC) ] uses moodle for both curriculum and Corporate and Continuing Education. For curriculum it runs in parallel to Blackboard as faculty migrate to moodle over time. There are currently no plans to go moodle only, although many administrators favor this option. The server has 30,000 or so users on it, but the actual number of active users varies widely. It is used for both hybrid and full-online classes. Corporate and Continuing Education runs its own branded instance and uses only moodle for distance education. We have about 80,000 students total, covering the range from GED, adult-ed, curriculum, and other areas serviced by 7 campuses in and around Charlotte, North Carolina. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[http://ilearn.sfsu.edu San Francisco State University (SFSU) ] uses moodle for more than three years now. We use moodle for our main campus and the College of Extended Learning (CEL). For curriculum, moodle used to run in parallel with Blackboard as faculty migrate to moodle over time (SFSU officially phased out Blackboard, as of 6/30/2007). The servers have total of 89K users (as of 09/05/2007), among these 89K users, 28K are considered as currently active. As for courses, we have total of 57K courses sitting on our database, and among them, around 53K are considered as active. We also have integrated Moodle with our SIMS/R system (see http://www.sfsu.edu/sims/overview.htm). The student population in SFSU covers the range from undergraduate, graduate, and first professional students.&lt;br /&gt;
&lt;br /&gt;
==Taiwan==&lt;br /&gt;
{{Template:Large Installations}}&lt;br /&gt;
[http://www.thu.edu.tw/english/enindex.htm Tunghai University]&lt;br /&gt;
*More then 17,000 registed Users&lt;br /&gt;
*16,000 users login in one day( Max. )&lt;br /&gt;
*3,000 courses per semester&lt;br /&gt;
*integration with novell ichan for single sign on&lt;br /&gt;
*integration with school support system&lt;br /&gt;
&lt;br /&gt;
our moodle web site: [http://elearning.thu.edu.tw]&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Teaching_Good_Practices_(K-12)&amp;diff=36219</id>
		<title>Teaching Good Practices (K-12)</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Teaching_Good_Practices_(K-12)&amp;diff=36219"/>
		<updated>2008-05-15T23:37:22Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* Quiz */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Assignments==&lt;br /&gt;
*My students have to think harder before they bring in their assignment. How can I stimulate them?&lt;br /&gt;
**One possible way is using the workshop activity where students can be required to peer assess each other&#039;s work before getting comments about their work. They then make changes and submit to teacher. It&#039;s amazing how peer assessment puts the torch to a body of work before the teacher sets eyes on it! (Jason Hando)&lt;br /&gt;
**I am having success using the workshop module for peer assessment.  This module offers at least four different methods to organize and record peer assessment.&lt;br /&gt;
&lt;br /&gt;
==Collaboration==&lt;br /&gt;
*How can you let students write a text together?&lt;br /&gt;
**The [[Wiki module]] is ideal for this.&lt;br /&gt;
**Before using the Wiki module, students might use the Chat module to share ideas on the assigned writing topic.  They can then later view the log of the chat.  This synchronous use of the Moodle is ideal for the student whose writing skills are weak.  Peers model to each other ideas and the expressive language for their ideas.&lt;br /&gt;
&lt;br /&gt;
==Course Design==&lt;br /&gt;
*What course formats and settings are best for specific grade-levels?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Discussion==&lt;br /&gt;
*How to use a forum in a class? &lt;br /&gt;
**Consider rating by the quality of the post rather than quantity.&lt;br /&gt;
*How can you let students collaborate on a forum?&lt;br /&gt;
*How do you organise an on line discussion with Moodle?&lt;br /&gt;
&lt;br /&gt;
==Literature Circles==&lt;br /&gt;
Basic literature circles have a number of jobs. Mine have 4 core jobs and an accessory job: Discussion Director, Illustrious Illustrator, Literary Luminary, and Creative Connector. (Students also complete Word Wizard.)&lt;br /&gt;
&lt;br /&gt;
When students complete their weekly job, they go to the Moodle site to post their job in a forum. Once that is complete, students must post comments.&lt;br /&gt;
--[[User:Jose Moreno|Jose Moreno]] 20:45, 25 October 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
==Quiz==&lt;br /&gt;
For language courses (in K-12 setting), you could also use &amp;quot;Drag and drop&amp;quot; questions (not default, you have to install it by yourself) as students love it. Here is a tutorial:&lt;br /&gt;
&lt;br /&gt;
https://docs.moodle.org/en/Drag_and_Drop_question_tutorial&lt;br /&gt;
&lt;br /&gt;
-Wen&lt;br /&gt;
&lt;br /&gt;
[[Category:Teacher]]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Teaching_Good_Practices_(K-12)&amp;diff=36218</id>
		<title>Teaching Good Practices (K-12)</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Teaching_Good_Practices_(K-12)&amp;diff=36218"/>
		<updated>2008-05-15T23:36:53Z</updated>

		<summary type="html">&lt;p&gt;Chuang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Assignments==&lt;br /&gt;
*My students have to think harder before they bring in their assignment. How can I stimulate them?&lt;br /&gt;
**One possible way is using the workshop activity where students can be required to peer assess each other&#039;s work before getting comments about their work. They then make changes and submit to teacher. It&#039;s amazing how peer assessment puts the torch to a body of work before the teacher sets eyes on it! (Jason Hando)&lt;br /&gt;
**I am having success using the workshop module for peer assessment.  This module offers at least four different methods to organize and record peer assessment.&lt;br /&gt;
&lt;br /&gt;
==Collaboration==&lt;br /&gt;
*How can you let students write a text together?&lt;br /&gt;
**The [[Wiki module]] is ideal for this.&lt;br /&gt;
**Before using the Wiki module, students might use the Chat module to share ideas on the assigned writing topic.  They can then later view the log of the chat.  This synchronous use of the Moodle is ideal for the student whose writing skills are weak.  Peers model to each other ideas and the expressive language for their ideas.&lt;br /&gt;
&lt;br /&gt;
==Course Design==&lt;br /&gt;
*What course formats and settings are best for specific grade-levels?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Discussion==&lt;br /&gt;
*How to use a forum in a class? &lt;br /&gt;
**Consider rating by the quality of the post rather than quantity.&lt;br /&gt;
*How can you let students collaborate on a forum?&lt;br /&gt;
*How do you organise an on line discussion with Moodle?&lt;br /&gt;
&lt;br /&gt;
==Literature Circles==&lt;br /&gt;
Basic literature circles have a number of jobs. Mine have 4 core jobs and an accessory job: Discussion Director, Illustrious Illustrator, Literary Luminary, and Creative Connector. (Students also complete Word Wizard.)&lt;br /&gt;
&lt;br /&gt;
When students complete their weekly job, they go to the Moodle site to post their job in a forum. Once that is complete, students must post comments.&lt;br /&gt;
--[[User:Jose Moreno|Jose Moreno]] 20:45, 25 October 2006 (CDT)&lt;br /&gt;
&lt;br /&gt;
==Quiz==&lt;br /&gt;
For language courses (in K-12 setting), you could also use &amp;quot;Drag and drop&amp;quot; questions (not default, you have to install it by yourself) as students love it. Here is a tutorial:&lt;br /&gt;
&lt;br /&gt;
https://docs.moodle.org/en/Drag_and_Drop_question_tutorial&lt;br /&gt;
&lt;br /&gt;
--[[User:Wen Hao Chuang] May 15, 2008&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Teacher]]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Development:San_Francisco_State_University&amp;diff=36217</id>
		<title>Development:San Francisco State University</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Development:San_Francisco_State_University&amp;diff=36217"/>
		<updated>2008-05-15T22:57:55Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* Custom Patches */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=San Francisco State University=&lt;br /&gt;
San Francisco State University has adopted moodle since 2005, and after June 2007 moodle has become the sole LMS in the campus. Here we document additional customizations to Moodle that are not yet part of the core Moodle code.&lt;br /&gt;
&lt;br /&gt;
These patches and custom blocks are developed by the SFSU development team, except where noted.&lt;br /&gt;
&lt;br /&gt;
TO DO:  ADD GRAPHICS AND FORMAT BETTER&lt;br /&gt;
&lt;br /&gt;
==Custom Blocks==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;My iLearn Courses block&#039;&#039;&#039;:  A block that only list out semesters that a teacher want to see. See screenshots below:&lt;br /&gt;
[insert screenshots here]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Quickmail v2 block&#039;&#039;&#039;: This also known as the &amp;quot;Quickmail for large classes&amp;quot; block. The GUI has been improved so that it would be more intuitive for users to use.&lt;br /&gt;
[insert screenshots here]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Who&#039;s On Skype block&#039;&#039;&#039;: Quite a few of our instructors (especially teaching assistants) found this block very useful, as they could setup virtual office hours to assist students with this block.&lt;br /&gt;
[insert screenshots here]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Contact iLearn block&#039;&#039;&#039;:  This is a block that would launch a form and make sure that when users contacting with our support team, they need to fill out this form to indicate what browser they are using, which course they have problems with, etc.&lt;br /&gt;
[insert screenshots here]&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;PROG/ORG Courses block&#039;&#039;&#039;:  This block allows our users to quickly identify a regular &amp;quot;academic&amp;quot; course from a special program/organizational courses. For example, some of the mandatory courses (e.g. good neighbor for freshman) will be put into this course category and this block.&lt;br /&gt;
&lt;br /&gt;
(not finished yet, will add more later)&lt;br /&gt;
&lt;br /&gt;
==Custom Patches==&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;Seamless login&#039;&#039;&#039;:  This script is similar to the &amp;quot;Moodle network&amp;quot; feature that is available in 1.8 and 1.9. We created this script so that we could create a &amp;quot;seamless login&amp;quot; if we need to redirect some courses from one server to another (without users noticing any changes).&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;Alternate assignment grading system&#039;&#039;&#039;:  Allows teachers to directly enter the grade for assignments instead of using the default pull-down menu.&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;Improve pop-up assignment grading&#039;&#039;&#039;:  The original assignment grading (with the quick grading option) come with a &amp;quot;Status&amp;quot; field where you could click on &amp;quot;Grade&amp;quot; and there will be a pop-up window which the GUI could be improved (lack of consistency). We improved this and this was reported as MDL-xxxxx. We also added a help button to improve the usability.&lt;br /&gt;
[insert screenshot here]&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;Customization for large courses&#039;&#039;&#039;:  Some moodle files are using some function calls that would go through the whole database with all users, which is not efficient. We did some customization to enhance this and reported back to moodle community already (e.g. MDL-xxxxx).&lt;br /&gt;
[insert screenshot here]&lt;br /&gt;
&lt;br /&gt;
More to come later...&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Development:San_Francisco_State_University&amp;diff=36216</id>
		<title>Development:San Francisco State University</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Development:San_Francisco_State_University&amp;diff=36216"/>
		<updated>2008-05-15T22:57:34Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* Custom Blocks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=San Francisco State University=&lt;br /&gt;
San Francisco State University has adopted moodle since 2005, and after June 2007 moodle has become the sole LMS in the campus. Here we document additional customizations to Moodle that are not yet part of the core Moodle code.&lt;br /&gt;
&lt;br /&gt;
These patches and custom blocks are developed by the SFSU development team, except where noted.&lt;br /&gt;
&lt;br /&gt;
TO DO:  ADD GRAPHICS AND FORMAT BETTER&lt;br /&gt;
&lt;br /&gt;
==Custom Blocks==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;My iLearn Courses block&#039;&#039;&#039;:  A block that only list out semesters that a teacher want to see. See screenshots below:&lt;br /&gt;
[insert screenshots here]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Quickmail v2 block&#039;&#039;&#039;: This also known as the &amp;quot;Quickmail for large classes&amp;quot; block. The GUI has been improved so that it would be more intuitive for users to use.&lt;br /&gt;
[insert screenshots here]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Who&#039;s On Skype block&#039;&#039;&#039;: Quite a few of our instructors (especially teaching assistants) found this block very useful, as they could setup virtual office hours to assist students with this block.&lt;br /&gt;
[insert screenshots here]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Contact iLearn block&#039;&#039;&#039;:  This is a block that would launch a form and make sure that when users contacting with our support team, they need to fill out this form to indicate what browser they are using, which course they have problems with, etc.&lt;br /&gt;
[insert screenshots here]&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;PROG/ORG Courses block&#039;&#039;&#039;:  This block allows our users to quickly identify a regular &amp;quot;academic&amp;quot; course from a special program/organizational courses. For example, some of the mandatory courses (e.g. good neighbor for freshman) will be put into this course category and this block.&lt;br /&gt;
&lt;br /&gt;
(not finished yet, will add more later)&lt;br /&gt;
&lt;br /&gt;
==Custom Patches==&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;Seamless login&#039;&#039;&#039;  This script is similar to the &amp;quot;Moodle network&amp;quot; feature that is available in 1.8 and 1.9. We created this script so that we could create a &amp;quot;seamless login&amp;quot; if we need to redirect some courses from one server to another (without users noticing any changes).&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;Alternate assignment grading system&#039;&#039;&#039;  Allows teachers to directly enter the grade for assignments instead of using the default pull-down menu.&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;Improve pop-up assignment grading&#039;&#039;&#039;  The original assignment grading (with the quick grading option) come with a &amp;quot;Status&amp;quot; field where you could click on &amp;quot;Grade&amp;quot; and there will be a pop-up window which the GUI could be improved (lack of consistency). We improved this and this was reported as MDL-xxxxx. We also added a help button to improve the usability.&lt;br /&gt;
[insert screenshot here]&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;Customization for large courses&#039;&#039;&#039;  Some moodle files are using some function calls that would go through the whole database with all users, which is not efficient. We did some customization to enhance this and reported back to moodle community already (e.g. MDL-xxxxx).&lt;br /&gt;
[insert screenshot here]&lt;br /&gt;
&lt;br /&gt;
More to come later...&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Development:San_Francisco_State_University&amp;diff=36215</id>
		<title>Development:San Francisco State University</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Development:San_Francisco_State_University&amp;diff=36215"/>
		<updated>2008-05-15T22:57:03Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* Custom Patches */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=San Francisco State University=&lt;br /&gt;
San Francisco State University has adopted moodle since 2005, and after June 2007 moodle has become the sole LMS in the campus. Here we document additional customizations to Moodle that are not yet part of the core Moodle code.&lt;br /&gt;
&lt;br /&gt;
These patches and custom blocks are developed by the SFSU development team, except where noted.&lt;br /&gt;
&lt;br /&gt;
TO DO:  ADD GRAPHICS AND FORMAT BETTER&lt;br /&gt;
&lt;br /&gt;
==Custom Blocks==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;My iLearn Courses block&#039;&#039;&#039;:  A block that only list out semesters that a teacher want to see. See screenshots below:&lt;br /&gt;
[insert screenshots here]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Quickmail v2 block&#039;&#039;&#039;: This also known as the &amp;quot;Quickmail for large classes&amp;quot; block. The GUI has been improved so that it would be more intuitive for users to use.&lt;br /&gt;
[insert screenshots here]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Who&#039;s On Skype block&#039;&#039;&#039;: Quite a few of our instructors (especially teaching assistants) found this block very useful, as they could setup virtual office hours to assist students with this block.&lt;br /&gt;
[insert screenshots here]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Contact iLearn block&#039;&#039;&#039;  This is a block that would launch a form and make sure that when users contacting with our support team, they need to fill out this form to indicate what browser they are using, which course they have problems with, etc.&lt;br /&gt;
[insert screenshots here]&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;PROG/ORG Courses block&#039;&#039;&#039;  This block allows our users to quickly identify a regular &amp;quot;academic&amp;quot; course from a special program/organizational courses. For example, some of the mandatory courses (e.g. good neighbor for freshman) will be put into this course category and this block.&lt;br /&gt;
&lt;br /&gt;
(not finished yet, will add more later)&lt;br /&gt;
&lt;br /&gt;
==Custom Patches==&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;Seamless login&#039;&#039;&#039;  This script is similar to the &amp;quot;Moodle network&amp;quot; feature that is available in 1.8 and 1.9. We created this script so that we could create a &amp;quot;seamless login&amp;quot; if we need to redirect some courses from one server to another (without users noticing any changes).&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;Alternate assignment grading system&#039;&#039;&#039;  Allows teachers to directly enter the grade for assignments instead of using the default pull-down menu.&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;Improve pop-up assignment grading&#039;&#039;&#039;  The original assignment grading (with the quick grading option) come with a &amp;quot;Status&amp;quot; field where you could click on &amp;quot;Grade&amp;quot; and there will be a pop-up window which the GUI could be improved (lack of consistency). We improved this and this was reported as MDL-xxxxx. We also added a help button to improve the usability.&lt;br /&gt;
[insert screenshot here]&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;Customization for large courses&#039;&#039;&#039;  Some moodle files are using some function calls that would go through the whole database with all users, which is not efficient. We did some customization to enhance this and reported back to moodle community already (e.g. MDL-xxxxx).&lt;br /&gt;
[insert screenshot here]&lt;br /&gt;
&lt;br /&gt;
More to come later...&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Development:San_Francisco_State_University&amp;diff=36214</id>
		<title>Development:San Francisco State University</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Development:San_Francisco_State_University&amp;diff=36214"/>
		<updated>2008-05-15T22:00:38Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* San Francisco State University */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=San Francisco State University=&lt;br /&gt;
San Francisco State University has adopted moodle since 2005, and after June 2007 moodle has become the sole LMS in the campus. Here we document additional customizations to Moodle that are not yet part of the core Moodle code.&lt;br /&gt;
&lt;br /&gt;
These patches and custom blocks are developed by the SFSU development team, except where noted.&lt;br /&gt;
&lt;br /&gt;
TO DO:  ADD GRAPHICS AND FORMAT BETTER&lt;br /&gt;
&lt;br /&gt;
==Custom Blocks==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;My iLearn Courses block&#039;&#039;&#039;:  A block that only list out semesters that a teacher want to see. See screenshots below:&lt;br /&gt;
[insert screenshots here]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Quickmail v2 block&#039;&#039;&#039;: This also known as the &amp;quot;Quickmail for large classes&amp;quot; block. The GUI has been improved so that it would be more intuitive for users to use.&lt;br /&gt;
[insert screenshots here]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Who&#039;s On Skype block&#039;&#039;&#039;: Quite a few of our instructors (especially teaching assistants) found this block very useful, as they could setup virtual office hours to assist students with this block.&lt;br /&gt;
[insert screenshots here]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Contact iLearn block&#039;&#039;&#039;  This is a block that would launch a form and make sure that when users contacting with our support team, they need to fill out this form to indicate what browser they are using, which course they have problems with, etc.&lt;br /&gt;
[insert screenshots here]&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;PROG/ORG Courses block&#039;&#039;&#039;  This block allows our users to quickly identify a regular &amp;quot;academic&amp;quot; course from a special program/organizational courses. For example, some of the mandatory courses (e.g. good neighbor for freshman) will be put into this course category and this block.&lt;br /&gt;
&lt;br /&gt;
(not finished yet, will add more later)&lt;br /&gt;
&lt;br /&gt;
==Custom Patches==&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;Seamless login&#039;&#039;&#039;  This script is similar to the &amp;quot;Moodle network&amp;quot; feature that is available in 1.8 and 1.9. We created this script so that we could create a &amp;quot;seamless login&amp;quot; if we need to redirect some courses from one server to another (without users noticing any changes).&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;Alternate assignment grading system&#039;&#039;&#039;  Allows teachers to directly enter the grade for assignments instead of using the default pull-down menu.&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;Improve pop-up assignment grading&#039;&#039;&#039;  The original assignment grading (with the quick grading option) come with a &amp;quot;Status&amp;quot; field where you could click on &amp;quot;Grade&amp;quot; and there will be a pop-up window which the GUI could be improved (lack of consistency). We improved this and this was reported as MDL-xxxxx. We also added a help button to improve the usability.&lt;br /&gt;
[insert screenshot here]&lt;br /&gt;
&lt;br /&gt;
More to come later...&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Development:San_Francisco_State_University&amp;diff=36212</id>
		<title>Development:San Francisco State University</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Development:San_Francisco_State_University&amp;diff=36212"/>
		<updated>2008-05-15T21:59:19Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* Custom Blocks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=San Francisco State University=&lt;br /&gt;
San Francisco State University has adopted moodle since 2005, and after June 2007 moodle has become the sole LMS in the campus. Here we document additional customizations to Moodle that are not yet part of the core Moodle code.&lt;br /&gt;
&lt;br /&gt;
These patches and custom blocks are by the SFSU development team, except where noted.&lt;br /&gt;
&lt;br /&gt;
TO DO:  ADD GRAPHICS AND FORMAT BETTER&lt;br /&gt;
&lt;br /&gt;
==Custom Blocks==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;My iLearn Courses block&#039;&#039;&#039;:  A block that only list out semesters that a teacher want to see. See screenshots below:&lt;br /&gt;
[insert screenshots here]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Quickmail v2 block&#039;&#039;&#039;: This also known as the &amp;quot;Quickmail for large classes&amp;quot; block. The GUI has been improved so that it would be more intuitive for users to use.&lt;br /&gt;
[insert screenshots here]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Who&#039;s On Skype block&#039;&#039;&#039;: Quite a few of our instructors (especially teaching assistants) found this block very useful, as they could setup virtual office hours to assist students with this block.&lt;br /&gt;
[insert screenshots here]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Contact iLearn block&#039;&#039;&#039;  This is a block that would launch a form and make sure that when users contacting with our support team, they need to fill out this form to indicate what browser they are using, which course they have problems with, etc.&lt;br /&gt;
[insert screenshots here]&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;PROG/ORG Courses block&#039;&#039;&#039;  This block allows our users to quickly identify a regular &amp;quot;academic&amp;quot; course from a special program/organizational courses. For example, some of the mandatory courses (e.g. good neighbor for freshman) will be put into this course category and this block.&lt;br /&gt;
&lt;br /&gt;
(not finished yet, will add more later)&lt;br /&gt;
&lt;br /&gt;
==Custom Patches==&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;Seamless login&#039;&#039;&#039;  This script is similar to the &amp;quot;Moodle network&amp;quot; feature that is available in 1.8 and 1.9. We created this script so that we could create a &amp;quot;seamless login&amp;quot; if we need to redirect some courses from one server to another (without users noticing any changes).&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;Alternate assignment grading system&#039;&#039;&#039;  Allows teachers to directly enter the grade for assignments instead of using the default pull-down menu.&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;Improve pop-up assignment grading&#039;&#039;&#039;  The original assignment grading (with the quick grading option) come with a &amp;quot;Status&amp;quot; field where you could click on &amp;quot;Grade&amp;quot; and there will be a pop-up window which the GUI could be improved (lack of consistency). We improved this and this was reported as MDL-xxxxx. We also added a help button to improve the usability.&lt;br /&gt;
[insert screenshot here]&lt;br /&gt;
&lt;br /&gt;
More to come later...&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Development:San_Francisco_State_University&amp;diff=36210</id>
		<title>Development:San Francisco State University</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Development:San_Francisco_State_University&amp;diff=36210"/>
		<updated>2008-05-15T21:57:19Z</updated>

		<summary type="html">&lt;p&gt;Chuang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=San Francisco State University=&lt;br /&gt;
San Francisco State University has adopted moodle since 2005, and after June 2007 moodle has become the sole LMS in the campus. Here we document additional customizations to Moodle that are not yet part of the core Moodle code.&lt;br /&gt;
&lt;br /&gt;
These patches and custom blocks are by the SFSU development team, except where noted.&lt;br /&gt;
&lt;br /&gt;
TO DO:  ADD GRAPHICS AND FORMAT BETTER&lt;br /&gt;
&lt;br /&gt;
==Custom Blocks==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;My iLearn Courses block&#039;&#039;&#039;:  A block that only list out semesters that a teacher want to see. See screenshots below:&lt;br /&gt;
[insert screenshots here]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Quickmail v2 block&#039;&#039;&#039;: This also known as the &amp;quot;Quickmail for large classes&amp;quot; block. The GUI has been improved so that it would be more intuitive for users to use.&lt;br /&gt;
[insert screenshots here]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Who&#039;s On Skype block&#039;&#039;&#039;: Quite a few of our instructors (especially teaching assistants) found this block very useful, as they could setup virtual office hours to assist students with this block.&lt;br /&gt;
[insert screenshots here]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Contact iLearn block&#039;&#039;&#039;  This is a block that would launch a form and make sure that when users contacting with our support team, they need to fill out this form to indicate what browser they are using, which course they have problems with, etc.&lt;br /&gt;
[insert screenshots here]&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;PROG/ORG Courses block&#039;&#039;&#039;  This block allows our users to quickly identify a regular &amp;quot;academic&amp;quot; course from a special program/organizational courses. For example, some of the mandatory courses (e.g. good neighbor for freshman) will be put into this course category and this block.&lt;br /&gt;
&lt;br /&gt;
==Custom Patches==&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;Seamless login&#039;&#039;&#039;  This script is similar to the &amp;quot;Moodle network&amp;quot; feature that is available in 1.8 and 1.9. We created this script so that we could create a &amp;quot;seamless login&amp;quot; if we need to redirect some courses from one server to another (without users noticing any changes).&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;Alternate assignment grading system&#039;&#039;&#039;  Allows teachers to directly enter the grade for assignments instead of using the default pull-down menu.&lt;br /&gt;
&lt;br /&gt;
*  &#039;&#039;&#039;Improve pop-up assignment grading&#039;&#039;&#039;  The original assignment grading (with the quick grading option) come with a &amp;quot;Status&amp;quot; field where you could click on &amp;quot;Grade&amp;quot; and there will be a pop-up window which the GUI could be improved (lack of consistency). We improved this and this was reported as MDL-xxxxx. We also added a help button to improve the usability.&lt;br /&gt;
[insert screenshot here]&lt;br /&gt;
&lt;br /&gt;
More to come later...&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Case_studies_(administrator)&amp;diff=36207</id>
		<title>Case studies (administrator)</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Case_studies_(administrator)&amp;diff=36207"/>
		<updated>2008-05-15T19:27:33Z</updated>

		<summary type="html">&lt;p&gt;Chuang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Seattle Academy]]&lt;br /&gt;
Seattle Academy is an independent secondary school of approximately 560 students.  The upper school has had a laptop program for all students since 1997 and has used Moodle since 2005.  Here we document how we have configured and customized Moodle 1.9 to best serve students and faculty in this environment.&lt;br /&gt;
&lt;br /&gt;
* [[San Francisco State University]]&lt;br /&gt;
San Francisco State University uses Moodle for more than three years now (as of year 2008). As of May 2008, we have more than 90,000 registered users in the database and more than 30,000 users are considered as currently active users. As for courses, we have total of 57,000 courses sitting on our database, and among them, around 53,000 are considered as active. We also have integrated Moodle with our SIMS/R system (see http://www.sfsu.edu/sims/overview.htm). The student population in SFSU covers the range from undergraduate, graduate, and first professional students.&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=cluster&amp;diff=34927</id>
		<title>cluster</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=cluster&amp;diff=34927"/>
		<updated>2008-04-17T23:02:37Z</updated>

		<summary type="html">&lt;p&gt;Chuang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When I have more time I will update this page with more information (most likely the real-world experience that we had here in San Francisco State University) - Wen&lt;br /&gt;
&lt;br /&gt;
To begin with, here are some interesting discussion about running moodle in a cluster configuration:&lt;br /&gt;
&lt;br /&gt;
TCP Load Balancing Discussion&lt;br /&gt;
http://moodle.org/mod/forum/discuss.php?d=49986&lt;br /&gt;
&lt;br /&gt;
Moodle Clustering&lt;br /&gt;
http://moodle.org/mod/forum/discuss.php?d=57202&lt;br /&gt;
&lt;br /&gt;
Installation for 3000 simultaneous users&lt;br /&gt;
http://moodle.org/mod/forum/discuss.php?d=88214&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Projects_for_new_developers&amp;diff=34881</id>
		<title>Projects for new developers</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Projects_for_new_developers&amp;diff=34881"/>
		<updated>2008-04-16T18:36:21Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* Enhance the current Reports feature */&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;
The student application period has now closed. Thanks to everyone who submitted an application :-) (over 70!)&lt;br /&gt;
&lt;br /&gt;
We are currently reviewing all project proposals and requesting further details as necessary. Accepted student proposals will be announced on the [http://code.google.com/soc/2008/ Google Summer of Code home page] at around 19:00 UTC on 21st April 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;
&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.&lt;br /&gt;
&lt;br /&gt;
===Web 2.0 language editing interface===&lt;br /&gt;
&lt;br /&gt;
Moodle is [[Translation|designed to be translated]] into many languages, and currently has over 70 language packs.&lt;br /&gt;
&lt;br /&gt;
The existing [[Language editing|language editing]] interface enables translators to check for untranslated words or phrases and also enables Moodle administrators to change words or phrases used in Moodle. However, it could really benefit from some improvements.&lt;br /&gt;
&lt;br /&gt;
This project will involve creating a Web 2.0 language editing interface which will:&lt;br /&gt;
&lt;br /&gt;
* Make use of Ajax technology&lt;br /&gt;
* Detect syntax errors and common problems in translated strings&lt;br /&gt;
* Include a search and replace feature for changing a particular word, for example the word &amp;quot;Course&amp;quot;, in every language string&lt;br /&gt;
* Display the differences between local and parent language packs&lt;br /&gt;
* spell checker&lt;br /&gt;
&lt;br /&gt;
In addition, the project may also include:&lt;br /&gt;
* A local modification import/export feature&lt;br /&gt;
* Further language pack import improvements&lt;br /&gt;
* Work on other long-standing language-related issues&lt;br /&gt;
&lt;br /&gt;
In general new ideas and fresh air in this area are welcome :-)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentors&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)], [http://moodle.org/user/view.php?id=1601&amp;amp;course=5 David Mudrak], [http://moodle.org/user/view.php?id=3923&amp;amp;course=5 Koen Roggemans]&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 (similar to http://buytaert.net/garland). 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.  The theme should be usable in Moodle 1.9 (although some thought about how it can work better in Moodle 2.0 would be good).&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; [http://moodle.org/user/view.php?id=423027&amp;amp;course=5 Mathieu Petit-Clair]&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;Mentors:&#039;&#039;&#039; [http://moodle.org/user/view.php?id=1 Martin Dougiamas], [http://moodle.org/user/view.php?id=152257 Jonathan Newman]&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.   The key thing is to gather together all the ideas generated by the community so far, carefully develop a Roles UI roadmap for changes in consultation with the community (screenshots will be most helpful) always making sure that the interface improves in usability, and then carefully implement the Roles UI roadmap. &lt;br /&gt;
&lt;br /&gt;
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 support for capability presets to simplify the interface and allow some things to be set from the &amp;quot;mod/edit&amp;quot; page.&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;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)]&lt;br /&gt;
&lt;br /&gt;
=== Usability review ===&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 thoughts).&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;
=== Animated grade statistics report ===&lt;br /&gt;
&lt;br /&gt;
Use the [http://flare.prefuse.org/ Flare library] to develop some cool and useful visualisation of information in the Moodle gradebook.  This can be designed as a Grade Report plugin (grade/report/visual) for Moodle 1.9.  To be really flexible and extensible, this should be built in several modular parts: &#039;&#039;harvesters&#039;&#039; to collect information (e.g., &amp;quot;grade entered&amp;quot;), &#039;&#039;reporters&#039;&#039; to summarize and normalize information, and &#039;&#039;adapters&#039;&#039; to feed that information into different visualization engines (so that if anyone ever wants to replace Flare, or if Flare changes, damage will be localized).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flare etc Mentor&#039;&#039;&#039;:  [mailto:gvwilson@cs.utoronto.ca Greg Wilson] ([http://www.cs.utoronto.ca/~gvwilson web site])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Moodle Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)] &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Co-mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=51473&amp;amp;course=5 Anthony Borrow]&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;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=17383&amp;amp;course=1 Penny Leach]&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;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;Co-mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=51473&amp;amp;course=5 Anthony Borrow]&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;
=== 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;Join the [http://moodle.org/mod/forum/discuss.php?d=92861 discussion thread]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Benchmark-Framework for Moodle===&lt;br /&gt;
&lt;br /&gt;
Moodle is developing rapidly - in terms of acceptance and features. One of the initial questions a potential user faces is &amp;quot;How much hardware do I need?&amp;quot;. And people who have Moodle running often want to know about the scalability.&lt;br /&gt;
&lt;br /&gt;
The answer to this simple question is complicated because&lt;br /&gt;
:a) various possible configurations of operating system, webserver, database server, PHP, Moodle itself&lt;br /&gt;
:b) different bottlenecks, CPU, RAM, disk, network, etc.&lt;br /&gt;
:c) the user behaviour, the expected peaks, acceptable response&lt;br /&gt;
:d) which feature of Moodle being used. etc.&lt;br /&gt;
&lt;br /&gt;
This project takes the approach of a test bench:&lt;br /&gt;
# do a fresh installation of Moodle&lt;br /&gt;
# import the test data provided&lt;br /&gt;
# install the server monitoring tools provided&lt;br /&gt;
# run regression tests provided on client(s)&lt;br /&gt;
# plot the measuered performance (client) and server load vs. requested load&lt;br /&gt;
# Tune, change parameters and back to step 4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentors&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=41095 Visvanath Ratnaweera], [http://moodle.org/user/view.php?id=18123  Wen Hao Chuang]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;: [http://moodle.org/mod/forum/discuss.php?d=93515 Forum &amp;quot;Student Projects&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
=== XML templates for admin settings ===&lt;br /&gt;
One of the disadvantages of the proliferation of settings --although part of Moodle&#039;s increasing flexibility and power-- is that a particular combination of settings may be difficult to reproduce from one site to the other. Also, administrators who want to &amp;quot;play with the settings&amp;quot; are afraid to be unable to restore the settings to their original values.&lt;br /&gt;
&lt;br /&gt;
The proposed solution is to implement a simple interface allowing administrators to export the settings in an XML file, which could later be restored. The features will include:&lt;br /&gt;
# Selection of settings to export (grouped in a tree format as displayed in the administrator panel)&lt;br /&gt;
# Naming and saving of XML files as special &amp;quot;templates&amp;quot; to be applied to a new install of Moodle for specific situations.&lt;br /&gt;
# An interface listing the templates (XML exported files with the &amp;quot;template&amp;quot; attribute set)&lt;br /&gt;
# A way to record the registered templates (beyond detecting the filesystem)&lt;br /&gt;
# A view of the settings available for restore in a given XML file&lt;br /&gt;
# Partial export/import&lt;br /&gt;
&lt;br /&gt;
Note: This needs to work nicely with the command-line installer code.&lt;br /&gt;
&lt;br /&gt;
Other ideas:&lt;br /&gt;
*An option to mark certain admins settings as is_sensitive() - a method in the admin setting base class. This would be true for passwords and things. Then you could have an option for exporting all the non-sensitive settings to attach to a forum post when you ask for help.&lt;br /&gt;
*Use YAML instead of XML (sam opinion: ugh, no!)&lt;br /&gt;
*Very detailed logging of admin setting changes - to allow for undos, among other things - or just simple logging of each set_config change with its new and previous value in the info field would be a good start&lt;br /&gt;
*A text field, like CVS commit messages, for people making admin changes&lt;br /&gt;
*The ability to &amp;quot;switch&amp;quot; a template on/off. While on, it overrides the original settings without replacing them. When off, the original settings are restored&lt;br /&gt;
*In addition to the previous point: ability to switch several templates on/off, and to organise them by priority. If a setting is defined in two templates, the one in the template with the highest priority overrides the other one.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)]&lt;br /&gt;
&lt;br /&gt;
===Create Moodle Plugin Templates===&lt;br /&gt;
&lt;br /&gt;
The M in Moodle is for Modular, meaning that it is designed to be extended, either for sharing with others or for customization within an institution.  There are, in fact, at least [https://docs.moodle.org/en/Developer_documentation#Make_a_new_plugin 20 different plugin types].  &lt;br /&gt;
&lt;br /&gt;
Your job is to create a template version of each of these plugins, with lots of inline documentation and examples of common Moodle code practices.  The example plugins should install correctly in Moodle 1.9 but not actually do very much, just show placeholders etc.  These template plugins should be useful starting points for new developers to start editing to create their own plugins.&lt;br /&gt;
&lt;br /&gt;
Some examples already exist but will need to be brought up to date and improved.&lt;br /&gt;
&lt;br /&gt;
* Activity modules:  http://cvs.moodle.org/contrib/plugins/mod/NEWMODULE/&lt;br /&gt;
* Blocks:  http://cvs.moodle.org/contrib/plugins/blocks/NEWBLOCK/&lt;br /&gt;
&lt;br /&gt;
Other plugin types don&#039;t have anything yet.&lt;br /&gt;
&lt;br /&gt;
* http://cvs.moodle.org/contrib/plugins/&lt;br /&gt;
&lt;br /&gt;
There is also a lot of scattered documention here in the [https://docs.moodle.org/en/Development Development wiki] such as this [https://docs.moodle.org/en/Development:Blocks Block Tutorial] (oldish).&lt;br /&gt;
&lt;br /&gt;
Requirements:&lt;br /&gt;
&lt;br /&gt;
* The initial scope of the project should be templates for /mod, /blocks, /enrol, /auth, /admin/report, /course/report, /grade/import, /grade/export, /grade/report, /question/type and /mod/assignment/type, although expanding it to more or all would be helpful if time permits and it does not diminish the quality and testing of the initial examples.&lt;br /&gt;
* Full consideration should be given to standards (such as using language packs, check for access permissions, XHTML, styles, etc.)  See the [[Coding guide]].&lt;br /&gt;
* Current examples in the core code should be considered in the development of each plugin when applicable.&lt;br /&gt;
* Each template should be documented in the form of a step-by-step tutorial such that a beginner to intermediate php programmer could recreate the steps for construction.  These instructions should be placed on https://docs.moodle.org under [[Development]].&lt;br /&gt;
* Field tested with real beginning/intermediate level developers and changes made based on reports from that field experience (we can help in finding these testers).&lt;br /&gt;
* Designed for Moodle 1.9.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;:  [https://docs.moodle.org/en/User:Gary_Anderson Gary Anderson]&lt;br /&gt;
&lt;br /&gt;
==Other ideas==&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;
===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;
===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;
[[User:Martin Dougiamas|Martin Dougiamas]] 20:32, 25 March 2008 (CDT) :  I would rather see some base work being done first to allow &amp;quot;user profile plugins&amp;quot; similar to facebook applications so that ideas like this can be added easily later.&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;
&#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;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=140206&amp;amp;course=5 Ken Wilson]&lt;br /&gt;
&lt;br /&gt;
(I can&#039;t see a way of doing this securely.  You&#039;d basically have to give your PHP script the ability to rewrite themselves.  It might be possible to just do the checking part (extension of existing environment scripts probably) and at least give admins a neat report with links and information to do the upgrade more easily.  [[User:Martin Dougiamas|Martin Dougiamas]] 09:32, 31 March 2008 (CDT))&lt;br /&gt;
&lt;br /&gt;
===Enhance the current Reports feature===&lt;br /&gt;
&lt;br /&gt;
As I mentioned in this discussion thread:&lt;br /&gt;
http://moodle.org/mod/forum/post.php?reply=416580&lt;br /&gt;
&lt;br /&gt;
I think it might be a good idea to enhance the current Reports feature in moodle so that it could have some &amp;quot;data visualization&amp;quot; features and help administrators or teachers to analyze the trends as well as usage/learning pattern, etc.&lt;br /&gt;
&lt;br /&gt;
The spec needs to be worked on a little bit more, but there would be two possible different approaches:&lt;br /&gt;
&lt;br /&gt;
(1) Enhance the current Reports features (codes will be integrated with future moodle version)&lt;br /&gt;
&lt;br /&gt;
(2) External integration with other open-source data mining solutions. That is, write some codes to create an interface (with options) under the current Reports link, so that system admin, administrators (e.g. directors, department chairs, teachers) could see some visualized data through the interface. The data could be retrieved from some other 3rd party data-mining solutions..etc.&lt;br /&gt;
&lt;br /&gt;
Some current examples are:&lt;br /&gt;
&lt;br /&gt;
[Gismo]http://gismo.sourceforge.net/&lt;br /&gt;
&lt;br /&gt;
Co-mentor welcome! :)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=18123&amp;amp;course=1 Wen Hao Chuang]&lt;br /&gt;
&lt;br /&gt;
===Enhance the current Functional/Regression Testing Practice and Build a Framework===&lt;br /&gt;
&lt;br /&gt;
For moodle, other than the current build-in unit tests (based on SimpleTest framework, see: https://docs.moodle.org/en/Development:Unit_tests) and the existing limited Test Cases that are located at https://docs.moodle.org/en/Development:Tests. For larger institutions who has their own development teams, there is a missing link for good functional/regression testing tools/process/practice to automate some of QA efforts. There are some discussion about using Selenium IDE for such efforts (see http://moodle.org/mod/forum/discuss.php?d=43569) but it is not really organized or systematic. This project has the following goals:&lt;br /&gt;
&lt;br /&gt;
(1) To improve the existing test cases &amp;quot;system&amp;quot; (https://docs.moodle.org/en/Development:Tests) and to create a more comprehensive test plan and/or to modularized the test plan so that we could coordinate the testing efforts among different volunteer institutions to assure better quality of moodle (for future versions).&lt;br /&gt;
&lt;br /&gt;
(2) To investigate open-source functional/regression test tools (e.g. TestNG, JMeter, Selenium IDE/RC, etc.) to see if we could come up with scripts to automate most of the functional/regression tests.&lt;br /&gt;
&lt;br /&gt;
Also see: http://www.opensourcetesting.org/functional.php&lt;br /&gt;
&lt;br /&gt;
Co-mentor welcome!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=18123&amp;amp;course=1 Wen Hao Chuang]&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>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Development:CVS_for_developers&amp;diff=34849</id>
		<title>Development:CVS for developers</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Development:CVS_for_developers&amp;diff=34849"/>
		<updated>2008-04-15T18:34:43Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* CVS on Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;CVS&#039;&#039;&#039; is the Concurrent Versioning System, a commonly-used way of managing source code for large software projects. CVS keeps all versions of all files so that nothing is ever lost, and usage by different people is tracked. It also provides ways to merge code if two or more people are working on the same file. All code and all versions are stored on a central server (in the case of Moodle, at cvs.moodle.org). The [http://cvsbook.red-bean.com/cvsbook.html CVS book] holds more information about CVS than you need.&lt;br /&gt;
&lt;br /&gt;
If you just want to download Moodle using CVS to run a site, then you probably don&#039;t need this page - please see [[CVS for Administrators]] instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Joining the project as a developer==&lt;br /&gt;
&lt;br /&gt;
So, you&#039;ve been offered CVS write access to help us develop and maintain Moodle!  Welcome aboard!&lt;br /&gt;
&lt;br /&gt;
To be able to write changes into [http://cvs.moodle.org/ Moodle&#039;s CVS archive], you first need to have an account on the server.  Only trusted developers get these accounts.  To request access, go to the &amp;quot;Apply for CVS Access&amp;quot; tab on the CVS page on Moodle.org (http://moodle.org/cvs).  Tell us what modules you&#039;d like to access (e.g. a language module), and why.  You&#039;ll receive notification in a day or so.&lt;br /&gt;
&lt;br /&gt;
With that done, you should have all the permissions you need, so you just need to set up your machine and download the current source code so you can start working on it. &lt;br /&gt;
&lt;br /&gt;
For the examples on this page, let&#039;s assume your username is &#039;&#039;&#039;myusername&#039;&#039;&#039; and your password is &#039;&#039;&#039;mypassword&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==CVS modules==&lt;br /&gt;
&lt;br /&gt;
Within CVS, the word &amp;quot;modules&amp;quot; refers to separate collections of code. In Moodle we have the following modules within our repository:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;moodle&#039;&#039;&#039; - the main Moodle source code&lt;br /&gt;
* &#039;&#039;&#039;lang&#039;&#039;&#039; - all the language packs&lt;br /&gt;
* &#039;&#039;&#039;[[Development:contrib|contrib]]&#039;&#039;&#039; - user contributions and other assorted code in development&lt;br /&gt;
* &#039;&#039;&#039;mysql&#039;&#039;&#039; - a customised phpMyAdmin to plug into Moodle for database admin&lt;br /&gt;
* &#039;&#039;&#039;windows-cron&#039;&#039;&#039; - a small package that makes cron possible on Windows systems&lt;br /&gt;
* &#039;&#039;&#039;docs&#039;&#039;&#039; - various extra user-contributed documentation&lt;br /&gt;
&lt;br /&gt;
Most people are working on the existing features in the moodle module, but many are also contributing new ideas in the contrib modules. Once code reaches a certain level of maturity in the contrib area, it can be migrated over into the main moodle tree.&lt;br /&gt;
&lt;br /&gt;
==Basic CVS commands==&lt;br /&gt;
&lt;br /&gt;
===CVS on Unix===&lt;br /&gt;
&lt;br /&gt;
Moodle CVS uses ssh as a transport layer for security, so you will have to set a CVS_RSH environment variable in your Unix shell. It&#039;s best to put these commands in your .bashrc or .cshrc so you don&#039;t have to type it all the time:&lt;br /&gt;
        setenv CVS_RSH ssh (for csh, tcsh etc)&lt;br /&gt;
        export CVS_RSH=ssh (for sh, bash etc)&lt;br /&gt;
&lt;br /&gt;
Next, you can check out the latest development version of Moodle using this (all one line). NOTE: Don&#039;t try to do run this first CVS command over an existing moodle installation: start fresh with a new directory!:&lt;br /&gt;
        cvs -z3 -d:ext:myusername@cvs.moodle.org:/cvsroot/moodle co moodle&lt;br /&gt;
&lt;br /&gt;
The command is similar for other CVS modules:&lt;br /&gt;
        cvs -z3 -d:ext:myusername@cvs.moodle.org:/cvsroot/moodle co contrib&lt;br /&gt;
&lt;br /&gt;
If you want to checkout a single plugin (attendance block as an example here) from contrib into the current directory, you can use:&lt;br /&gt;
        cvs -z3 -d:ext:myusername@cvs.moodle.org:/cvsroot/moodle co -d attendance contrib/plugins/blocks/attendance&lt;br /&gt;
&lt;br /&gt;
Note that you will be prompted for mypassword for each command unless you set up authorized keys.  Read [[Development:SSH_key|SSH Keys]] for more details on how to set those up.&lt;br /&gt;
&lt;br /&gt;
Now, you should have a new &#039;moodle&#039; directory. You can rename it and move it around if you like. Go into it:&lt;br /&gt;
        cd moodle&lt;br /&gt;
&lt;br /&gt;
All the latest Moodle files should be in there. You can now change files in your copy. To compare your files and directories against the main CVS copy on the server use cvs diff, e.g.:&lt;br /&gt;
        cvs diff -c config-dist.php&lt;br /&gt;
        cvs diff -c lang&lt;br /&gt;
&lt;br /&gt;
To fetch the latest updates from the server use:&lt;br /&gt;
        cvs update -dP&lt;br /&gt;
&lt;br /&gt;
To copy your new files back to the server you would do something like:&lt;br /&gt;
        cd lang/ca&lt;br /&gt;
        cvs commit&lt;br /&gt;
&lt;br /&gt;
You will be prompted to add some comments (depends on your default text editor).   Please write a meaningful, descriptive comment and &#039;&#039;&#039;always include the name of any tracker issues that talk about the issue you are fixing&#039;&#039;&#039; (eg &#039;&#039;&#039;MDL-XXXX&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
After that your changes will be sent to the CVS server and stored in the repository. Done!&lt;br /&gt;
&lt;br /&gt;
To save more time you can put default arguments into a file called .cvsrc in your home directory. For example, mine contains:&lt;br /&gt;
        diff -c&lt;br /&gt;
        update -dP&lt;br /&gt;
&lt;br /&gt;
Try &#039;cvs help&#039; for more details ...&lt;br /&gt;
&lt;br /&gt;
===CVS on Mac OSX===&lt;br /&gt;
&lt;br /&gt;
You can follow the same instructions as for Unix (above) in a terminal window. However, the cvs command is not installed by default in an OSX. You first need to install the XCode Tools. You should find this on your original installation disk. Failing that it can be downloaded (a fairly hefty download) from the Apple developer web site ([http://developer.apple.com]).&lt;br /&gt;
&lt;br /&gt;
===CVS on Windows===&lt;br /&gt;
&lt;br /&gt;
First, you need to download a completely fresh copy of Moodle using your developer account.&lt;br /&gt;
&lt;br /&gt;
1. Get TortoiseCVS from tortoisecvs.org and install it, then reboot.&lt;br /&gt;
&lt;br /&gt;
2. Find or create a new folder somewhere where you want Moodle to be downloaded to.&lt;br /&gt;
&lt;br /&gt;
3. Right-mouse-click that folder and choose &amp;quot;CVS Checkout&amp;quot; from the menu. You should see a dialog box.&lt;br /&gt;
&lt;br /&gt;
4. Copy this text into the CVSROOT field (using your own username!):&lt;br /&gt;
&lt;br /&gt;
           :ext:myusername@cvs.moodle.org:/cvsroot/moodle&lt;br /&gt;
&lt;br /&gt;
5. Under the &amp;quot;Module&amp;quot; field, type &amp;quot;moodle&amp;quot; to get the latest development version of Moodle, &amp;quot;contrib&amp;quot; to get the contributions directory, or &amp;quot;mysql&amp;quot; to get the MySQL Admin module.&lt;br /&gt;
&lt;br /&gt;
6. Press the button: &amp;quot;OK&amp;quot; and everything should be downloaded.&lt;br /&gt;
&lt;br /&gt;
A dialog box should show all the files being downloaded, and after a while you should have a complete copy of Moodle. After this first checkout, you can fetch the latest updated files from the CVS server:&lt;br /&gt;
&lt;br /&gt;
# Right-mouse-click on your Moodle folder (or any file) and select &amp;quot;CVS Update&amp;quot;.&lt;br /&gt;
# Sit back and watch the logs scroll by. Take note of conflicts that may occur if your local code has changes that conflict with the incoming versions - you will need to edit these files and resolve the conflicts manually.&lt;br /&gt;
&lt;br /&gt;
After modifying files (you will notice their icons change from green to red!), you can commit them back to the CVS server like this:&lt;br /&gt;
&lt;br /&gt;
# Right-mouse-click on your Moodle folder (or any file) and select &amp;quot;CVS Commit...&amp;quot;.&lt;br /&gt;
# In the dialog box, type a clear description of the changes you are committing.  &#039;&#039;&#039;Always include the name of any tracker issues related to what you are fixing&#039;&#039;&#039; (eg &#039;&#039;&#039;MDL-XXXX&#039;&#039;&#039;).&lt;br /&gt;
# Click &amp;quot;OK&amp;quot;. Your changes will be sent to the server.&lt;br /&gt;
# If you create a folder, BE CAREFUL about using the &amp;quot;CVS Add&amp;quot; option as it will add the folder to CVS without requiring a commit. Once added, the folder cannot be removed from CVS even though it will be pruned so long as it is empty.&lt;br /&gt;
&lt;br /&gt;
Please note that as of April 15 2008, TortoiseCVS 1.10.6 might not work really well with Windows Vista. You could report bugs to TortoiseCVS site (hosted by SourceForge) or google &amp;quot;TortoiseCVS vista&amp;quot; for more details.&lt;br /&gt;
&lt;br /&gt;
==Working with branches==&lt;br /&gt;
&lt;br /&gt;
This diagram shows how the main moodle module branches into different versions over time.&lt;br /&gt;
&lt;br /&gt;
[[Image:Cvstree.png|CVS tree]]&lt;br /&gt;
&lt;br /&gt;
To see all the current tags and branches that are available, use this command on any old file (such as index.php in the top moodle directory):&lt;br /&gt;
    cvs status -v index.php&lt;br /&gt;
&lt;br /&gt;
Some tagging guidelines:&lt;br /&gt;
* Tag and branch names should always be all upper-case.&lt;br /&gt;
* Tags and branches should ALWAYS be applied to the entire module (all of Moodle). Don&#039;t tag individual files or directories.&lt;br /&gt;
* We don&#039;t allow renaming of tags because people may be relying on them, so get them right the first time!&lt;br /&gt;
&lt;br /&gt;
===Trunk development===&lt;br /&gt;
&lt;br /&gt;
The Trunk of CVS is the main development version of Moodle. In CVS it is also known as the HEAD, or default branch.&lt;br /&gt;
&lt;br /&gt;
Moodle developers try to keep this stable as possible, but as it usually contains new code it probably has bugs and small instabilities.&lt;br /&gt;
&lt;br /&gt;
Every now and then we decide the product has enough features to make a release. At this time, the trunk is tagged with a MOODLE_XX_BETA tag (in case we ever want to roll back to that point) and a new branch is formed for the release, called MOODLE_XX_STABLE.&lt;br /&gt;
&lt;br /&gt;
A Beta package is also released at this point - it&#039;s for testers who don&#039;t use CVS but want to test the latest features and report bugs.&lt;br /&gt;
&lt;br /&gt;
===Stable branches for each release===&lt;br /&gt;
&lt;br /&gt;
As soon as the stable branch MOODLE_XX_STABLE is created, development efforts will fork into two streams for a while. Some people may continue working on new features in the trunk for the next release, but most developers should be concentrating on using the current STABLE branch and fixing bugs that are found in it.&lt;br /&gt;
&lt;br /&gt;
You can switch your local copy of Moodle to the STABLE version using the following command in Unix from the root directory:&lt;br /&gt;
    cvs update -dP -r MOODLE_XX_STABLE&lt;br /&gt;
&lt;br /&gt;
After that, all the commands described above will apply to that stable version. To return to the trunk version just issue:&lt;br /&gt;
    cvs update -dPA&lt;br /&gt;
&lt;br /&gt;
On Windows clients you should have a menu from which you can choose the branch.&lt;br /&gt;
&lt;br /&gt;
Once the new STABLE branch really stabilises, a release can be declared. Packages are created for distribution and the branch will be tagged (by Martin Dougiamas) with a tag named: MOODLE_XXX&lt;br /&gt;
&lt;br /&gt;
===Merging fixes===&lt;br /&gt;
&lt;br /&gt;
All bug fixes in any STABLE branch should be merged back into the trunk so that they become available in future versions of Moodle. A floating tag called MOODLE_XX_MERGED needs to be maintained to keep track of the last merge. The procedure for such a merge is as follows (I&#039;m using CVS on the Unix command line but the steps are the same for any CVS client):&lt;br /&gt;
&lt;br /&gt;
[[Image:Merging.png|thumb|right|300px|This diagram summarises the process]]&lt;br /&gt;
1. I highly recommend keeping one checked out copy of each stable branch and the trunk/head version locally to make it easier to jump between them.  Set them all up as virtual web sites on your development machine.  I use directories like /moodle/18, /moodle/19 /moodle/dev etc.&lt;br /&gt;
&lt;br /&gt;
2. Update to the latest stable version (I&#039;ll use XX in the example but it could be 18, 19 etc) for the relevant files, and do a cvs diff just to double-check exactly what you are checking in.  Note you only need to update the files/directories you are working in, but sometimes it help to update everything anyway just to do a final check on the functionality using the web.&lt;br /&gt;
&lt;br /&gt;
          cd /moodle/XX/user&lt;br /&gt;
          cvs update -dPA&lt;br /&gt;
          cvs diff -c file1.php file2.php&lt;br /&gt;
&lt;br /&gt;
3. If all looks OK, check in the fix to the stable branch.  Make sure that the commit message contains the bug tracker ID (eg MDL-1111) and a decent description of your thoughts on the fix.  If you don&#039;t specify a message in the command line, you&#039;ll be put into an editor to type one.&lt;br /&gt;
&lt;br /&gt;
          cvs commit -m &amp;quot;MDL-1234 Corrected a small typo in the user name field&amp;quot; file1.php file2.php&lt;br /&gt;
&lt;br /&gt;
4. Go to the very latest trunk version and make sure it&#039;s up-to-date.&lt;br /&gt;
          &lt;br /&gt;
          cd /moodle/dev/user&lt;br /&gt;
          cvs update -dPA&lt;br /&gt;
&lt;br /&gt;
5. Merge everything into your local copy of the trunk from your stable branch since the last merge.  You can use the same sequence of (4) and (5) to merge the changes into other stable branches too (to backport the fix to the previous stable versions).&lt;br /&gt;
&lt;br /&gt;
          cvs update -kk -j MOODLE_XX_MERGED -j MOODLE_XX_STABLE file1.php file2.php&lt;br /&gt;
&lt;br /&gt;
6. Carefully watch the update logs for conflicts, and fix every file that you see with a conflict.  Afterwards, it may help to just run a diff to make sure the result is what you expected:&lt;br /&gt;
&lt;br /&gt;
          cvs diff -c file1.php file2.php&lt;br /&gt;
&lt;br /&gt;
7. Check your merged local copy back into CVS trunk version&lt;br /&gt;
&lt;br /&gt;
          cvs commit -m &amp;quot;MDL-1234 Corrected a small typo in the user name field, merged from XX&amp;quot; file1.php file2.php&lt;br /&gt;
&lt;br /&gt;
8. Go back to your branch version&lt;br /&gt;
&lt;br /&gt;
          cd /moodle/XX/user&lt;br /&gt;
&lt;br /&gt;
9. Update the floating merge tag for the affected files (so that it matches MOODLE_XX_STABLE) so that this process can be repeated next time&lt;br /&gt;
&lt;br /&gt;
          cvs tag -RF MOODLE_XX_MERGED file1.php file2.php&lt;br /&gt;
&lt;br /&gt;
Finally, the values for $version in all the Moodle version.php files within the stable branch should not be updated at all if possible (except the last digit if absolutely necessary). The reason is that someone updating from a very stable version to the next very stable version could miss database upgrades that happened on the trunk.&lt;br /&gt;
&lt;br /&gt;
===Feature branches for large changes===&lt;br /&gt;
&lt;br /&gt;
Occasionally, there may be a very large feature that needs to be checked in so several people can work on it, but it is too unstable to be included in the main development trunk.&lt;br /&gt;
&lt;br /&gt;
In these cases a short-term branch can be created to work on the feature, and then merged back into the main trunk as soon as possible. An example called MOODLE_17_WIDGET branch can be seen in the above diagram.&lt;br /&gt;
&lt;br /&gt;
If you need to do this for your new WIDGET feature, follow these steps:&lt;br /&gt;
&lt;br /&gt;
1. Discuss with other developers to make sure it&#039;s necessary!&lt;br /&gt;
&lt;br /&gt;
2. Make a new tag on the trunk (for all of moodle) called MOODLE_XX_WIDGET_PRE&lt;br /&gt;
&lt;br /&gt;
          cvs tag -R MOODLE_XX_WIDGET_PRE&lt;br /&gt;
&lt;br /&gt;
3. Create your branch called MOODLE_XX_WIDGET&lt;br /&gt;
&lt;br /&gt;
          cvs tag -Rb MOODLE_XX_WIDGET&lt;br /&gt;
&lt;br /&gt;
4. Work in that branch until the feature is reasonably stable. Commit as necessary.&lt;br /&gt;
&lt;br /&gt;
          cvs commit&lt;br /&gt;
&lt;br /&gt;
5. When ready, merge the whole branch into the trunk, fix conflicts, commit it to the trunk and then abandon the branch.&lt;br /&gt;
&lt;br /&gt;
          cvs update -dPA&lt;br /&gt;
          cvs update -kk -j MOODLE_XX_WIDGET&lt;br /&gt;
          cvs commit&lt;br /&gt;
&lt;br /&gt;
Good luck, be careful and have fun!&lt;br /&gt;
&lt;br /&gt;
==Who on earth is ...==&lt;br /&gt;
&lt;br /&gt;
Some of the people committing to the Moodle codebase have non-boring account names on the CVS server. If you are ever looking at a CVS commit, and wondering &amp;quot;who on earth is this purpleblob person?&amp;quot; This information is now available at: [http://moodle.org/mod/cvsadmin/view.php?cid=1 Moodle developers with write access].&lt;br /&gt;
&lt;br /&gt;
==Tips and Hints==&lt;br /&gt;
* [[Tracking Moodle CVS with git]]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=34472 Merging Custom Moodle Code With Stable Releases]&lt;br /&gt;
* [[Unmerged files]]: To see if you&#039;ve forgotten to merge any file.&lt;br /&gt;
* [http://ximbiot.com/cvs/manual/ CVS Manual]&lt;br /&gt;
* [[Development:contrib|Introduction to the &#039;&#039;&#039;contrib&#039;&#039;&#039; area of CVS]]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [http://tracker.moodle.org/browse/MDLSITE-193 &amp;quot;All developers should switch to using the cvs.moodle.org alias&amp;quot;]&lt;br /&gt;
* [[CVS for Administrators]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer|CVS for developers]]&lt;br /&gt;
[[Category:Developer tools]]&lt;br /&gt;
&lt;br /&gt;
[[es:CVS para desarrolladores]]&lt;br /&gt;
[[fr:CVS pour développeurs]]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Development:CVS_for_developers&amp;diff=34848</id>
		<title>Development:CVS for developers</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Development:CVS_for_developers&amp;diff=34848"/>
		<updated>2008-04-15T18:31:18Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* CVS on Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;CVS&#039;&#039;&#039; is the Concurrent Versioning System, a commonly-used way of managing source code for large software projects. CVS keeps all versions of all files so that nothing is ever lost, and usage by different people is tracked. It also provides ways to merge code if two or more people are working on the same file. All code and all versions are stored on a central server (in the case of Moodle, at cvs.moodle.org). The [http://cvsbook.red-bean.com/cvsbook.html CVS book] holds more information about CVS than you need.&lt;br /&gt;
&lt;br /&gt;
If you just want to download Moodle using CVS to run a site, then you probably don&#039;t need this page - please see [[CVS for Administrators]] instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Joining the project as a developer==&lt;br /&gt;
&lt;br /&gt;
So, you&#039;ve been offered CVS write access to help us develop and maintain Moodle!  Welcome aboard!&lt;br /&gt;
&lt;br /&gt;
To be able to write changes into [http://cvs.moodle.org/ Moodle&#039;s CVS archive], you first need to have an account on the server.  Only trusted developers get these accounts.  To request access, go to the &amp;quot;Apply for CVS Access&amp;quot; tab on the CVS page on Moodle.org (http://moodle.org/cvs).  Tell us what modules you&#039;d like to access (e.g. a language module), and why.  You&#039;ll receive notification in a day or so.&lt;br /&gt;
&lt;br /&gt;
With that done, you should have all the permissions you need, so you just need to set up your machine and download the current source code so you can start working on it. &lt;br /&gt;
&lt;br /&gt;
For the examples on this page, let&#039;s assume your username is &#039;&#039;&#039;myusername&#039;&#039;&#039; and your password is &#039;&#039;&#039;mypassword&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==CVS modules==&lt;br /&gt;
&lt;br /&gt;
Within CVS, the word &amp;quot;modules&amp;quot; refers to separate collections of code. In Moodle we have the following modules within our repository:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;moodle&#039;&#039;&#039; - the main Moodle source code&lt;br /&gt;
* &#039;&#039;&#039;lang&#039;&#039;&#039; - all the language packs&lt;br /&gt;
* &#039;&#039;&#039;[[Development:contrib|contrib]]&#039;&#039;&#039; - user contributions and other assorted code in development&lt;br /&gt;
* &#039;&#039;&#039;mysql&#039;&#039;&#039; - a customised phpMyAdmin to plug into Moodle for database admin&lt;br /&gt;
* &#039;&#039;&#039;windows-cron&#039;&#039;&#039; - a small package that makes cron possible on Windows systems&lt;br /&gt;
* &#039;&#039;&#039;docs&#039;&#039;&#039; - various extra user-contributed documentation&lt;br /&gt;
&lt;br /&gt;
Most people are working on the existing features in the moodle module, but many are also contributing new ideas in the contrib modules. Once code reaches a certain level of maturity in the contrib area, it can be migrated over into the main moodle tree.&lt;br /&gt;
&lt;br /&gt;
==Basic CVS commands==&lt;br /&gt;
&lt;br /&gt;
===CVS on Unix===&lt;br /&gt;
&lt;br /&gt;
Moodle CVS uses ssh as a transport layer for security, so you will have to set a CVS_RSH environment variable in your Unix shell. It&#039;s best to put these commands in your .bashrc or .cshrc so you don&#039;t have to type it all the time:&lt;br /&gt;
        setenv CVS_RSH ssh (for csh, tcsh etc)&lt;br /&gt;
        export CVS_RSH=ssh (for sh, bash etc)&lt;br /&gt;
&lt;br /&gt;
Next, you can check out the latest development version of Moodle using this (all one line). NOTE: Don&#039;t try to do run this first CVS command over an existing moodle installation: start fresh with a new directory!:&lt;br /&gt;
        cvs -z3 -d:ext:myusername@cvs.moodle.org:/cvsroot/moodle co moodle&lt;br /&gt;
&lt;br /&gt;
The command is similar for other CVS modules:&lt;br /&gt;
        cvs -z3 -d:ext:myusername@cvs.moodle.org:/cvsroot/moodle co contrib&lt;br /&gt;
&lt;br /&gt;
If you want to checkout a single plugin (attendance block as an example here) from contrib into the current directory, you can use:&lt;br /&gt;
        cvs -z3 -d:ext:myusername@cvs.moodle.org:/cvsroot/moodle co -d attendance contrib/plugins/blocks/attendance&lt;br /&gt;
&lt;br /&gt;
Note that you will be prompted for mypassword for each command unless you set up authorized keys.  Read [[Development:SSH_key|SSH Keys]] for more details on how to set those up.&lt;br /&gt;
&lt;br /&gt;
Now, you should have a new &#039;moodle&#039; directory. You can rename it and move it around if you like. Go into it:&lt;br /&gt;
        cd moodle&lt;br /&gt;
&lt;br /&gt;
All the latest Moodle files should be in there. You can now change files in your copy. To compare your files and directories against the main CVS copy on the server use cvs diff, e.g.:&lt;br /&gt;
        cvs diff -c config-dist.php&lt;br /&gt;
        cvs diff -c lang&lt;br /&gt;
&lt;br /&gt;
To fetch the latest updates from the server use:&lt;br /&gt;
        cvs update -dP&lt;br /&gt;
&lt;br /&gt;
To copy your new files back to the server you would do something like:&lt;br /&gt;
        cd lang/ca&lt;br /&gt;
        cvs commit&lt;br /&gt;
&lt;br /&gt;
You will be prompted to add some comments (depends on your default text editor).   Please write a meaningful, descriptive comment and &#039;&#039;&#039;always include the name of any tracker issues that talk about the issue you are fixing&#039;&#039;&#039; (eg &#039;&#039;&#039;MDL-XXXX&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
After that your changes will be sent to the CVS server and stored in the repository. Done!&lt;br /&gt;
&lt;br /&gt;
To save more time you can put default arguments into a file called .cvsrc in your home directory. For example, mine contains:&lt;br /&gt;
        diff -c&lt;br /&gt;
        update -dP&lt;br /&gt;
&lt;br /&gt;
Try &#039;cvs help&#039; for more details ...&lt;br /&gt;
&lt;br /&gt;
===CVS on Mac OSX===&lt;br /&gt;
&lt;br /&gt;
You can follow the same instructions as for Unix (above) in a terminal window. However, the cvs command is not installed by default in an OSX. You first need to install the XCode Tools. You should find this on your original installation disk. Failing that it can be downloaded (a fairly hefty download) from the Apple developer web site ([http://developer.apple.com]).&lt;br /&gt;
&lt;br /&gt;
===CVS on Windows===&lt;br /&gt;
&lt;br /&gt;
First, you need to download a completely fresh copy of Moodle using your developer account.&lt;br /&gt;
&lt;br /&gt;
1. Get TortoiseCVS from tortoisecvs.org and install it, then reboot.&lt;br /&gt;
&lt;br /&gt;
2. Find or create a new folder somewhere where you want Moodle to be downloaded to.&lt;br /&gt;
&lt;br /&gt;
3. Right-mouse-click that folder and choose &amp;quot;CVS Checkout&amp;quot; from the menu. You should see a dialog box.&lt;br /&gt;
&lt;br /&gt;
4. Copy this text into the CVSROOT field (using your own username!):&lt;br /&gt;
&lt;br /&gt;
           :ext:myusername@cvs.moodle.org:/cvsroot/moodle&lt;br /&gt;
&lt;br /&gt;
5. Under the &amp;quot;Module&amp;quot; field, type &amp;quot;moodle&amp;quot; to get the latest development version of Moodle, &amp;quot;contrib&amp;quot; to get the contributions directory, or &amp;quot;mysql&amp;quot; to get the MySQL Admin module.&lt;br /&gt;
&lt;br /&gt;
6. Press the button: &amp;quot;OK&amp;quot; and everything should be downloaded.&lt;br /&gt;
&lt;br /&gt;
A dialog box should show all the files being downloaded, and after a while you should have a complete copy of Moodle. After this first checkout, you can fetch the latest updated files from the CVS server:&lt;br /&gt;
&lt;br /&gt;
# Right-mouse-click on your Moodle folder (or any file) and select &amp;quot;CVS Update&amp;quot;.&lt;br /&gt;
# Sit back and watch the logs scroll by. Take note of conflicts that may occur if your local code has changes that conflict with the incoming versions - you will need to edit these files and resolve the conflicts manually.&lt;br /&gt;
&lt;br /&gt;
After modifying files (you will notice their icons change from green to red!), you can commit them back to the CVS server like this:&lt;br /&gt;
&lt;br /&gt;
# Right-mouse-click on your Moodle folder (or any file) and select &amp;quot;CVS Commit...&amp;quot;.&lt;br /&gt;
# In the dialog box, type a clear description of the changes you are committing.  &#039;&#039;&#039;Always include the name of any tracker issues related to what you are fixing&#039;&#039;&#039; (eg &#039;&#039;&#039;MDL-XXXX&#039;&#039;&#039;).&lt;br /&gt;
# Click &amp;quot;OK&amp;quot;. Your changes will be sent to the server.&lt;br /&gt;
# If you create a folder, BE CAREFUL about using the &amp;quot;CVS Add&amp;quot; option as it will add the folder to CVS without requiring a commit. Once added, the folder cannot be removed from CVS even though it will be pruned so long as it is empty.&lt;br /&gt;
&lt;br /&gt;
Please note that as of April 15 2008, TortoiseCVS 1.10.6 still have some issues with Windows Vista. You could report bugs to TortoiseCVS site (hosted by SourceForge) and google &amp;quot;TortoiseCVS vista&amp;quot; for more details.&lt;br /&gt;
&lt;br /&gt;
==Working with branches==&lt;br /&gt;
&lt;br /&gt;
This diagram shows how the main moodle module branches into different versions over time.&lt;br /&gt;
&lt;br /&gt;
[[Image:Cvstree.png|CVS tree]]&lt;br /&gt;
&lt;br /&gt;
To see all the current tags and branches that are available, use this command on any old file (such as index.php in the top moodle directory):&lt;br /&gt;
    cvs status -v index.php&lt;br /&gt;
&lt;br /&gt;
Some tagging guidelines:&lt;br /&gt;
* Tag and branch names should always be all upper-case.&lt;br /&gt;
* Tags and branches should ALWAYS be applied to the entire module (all of Moodle). Don&#039;t tag individual files or directories.&lt;br /&gt;
* We don&#039;t allow renaming of tags because people may be relying on them, so get them right the first time!&lt;br /&gt;
&lt;br /&gt;
===Trunk development===&lt;br /&gt;
&lt;br /&gt;
The Trunk of CVS is the main development version of Moodle. In CVS it is also known as the HEAD, or default branch.&lt;br /&gt;
&lt;br /&gt;
Moodle developers try to keep this stable as possible, but as it usually contains new code it probably has bugs and small instabilities.&lt;br /&gt;
&lt;br /&gt;
Every now and then we decide the product has enough features to make a release. At this time, the trunk is tagged with a MOODLE_XX_BETA tag (in case we ever want to roll back to that point) and a new branch is formed for the release, called MOODLE_XX_STABLE.&lt;br /&gt;
&lt;br /&gt;
A Beta package is also released at this point - it&#039;s for testers who don&#039;t use CVS but want to test the latest features and report bugs.&lt;br /&gt;
&lt;br /&gt;
===Stable branches for each release===&lt;br /&gt;
&lt;br /&gt;
As soon as the stable branch MOODLE_XX_STABLE is created, development efforts will fork into two streams for a while. Some people may continue working on new features in the trunk for the next release, but most developers should be concentrating on using the current STABLE branch and fixing bugs that are found in it.&lt;br /&gt;
&lt;br /&gt;
You can switch your local copy of Moodle to the STABLE version using the following command in Unix from the root directory:&lt;br /&gt;
    cvs update -dP -r MOODLE_XX_STABLE&lt;br /&gt;
&lt;br /&gt;
After that, all the commands described above will apply to that stable version. To return to the trunk version just issue:&lt;br /&gt;
    cvs update -dPA&lt;br /&gt;
&lt;br /&gt;
On Windows clients you should have a menu from which you can choose the branch.&lt;br /&gt;
&lt;br /&gt;
Once the new STABLE branch really stabilises, a release can be declared. Packages are created for distribution and the branch will be tagged (by Martin Dougiamas) with a tag named: MOODLE_XXX&lt;br /&gt;
&lt;br /&gt;
===Merging fixes===&lt;br /&gt;
&lt;br /&gt;
All bug fixes in any STABLE branch should be merged back into the trunk so that they become available in future versions of Moodle. A floating tag called MOODLE_XX_MERGED needs to be maintained to keep track of the last merge. The procedure for such a merge is as follows (I&#039;m using CVS on the Unix command line but the steps are the same for any CVS client):&lt;br /&gt;
&lt;br /&gt;
[[Image:Merging.png|thumb|right|300px|This diagram summarises the process]]&lt;br /&gt;
1. I highly recommend keeping one checked out copy of each stable branch and the trunk/head version locally to make it easier to jump between them.  Set them all up as virtual web sites on your development machine.  I use directories like /moodle/18, /moodle/19 /moodle/dev etc.&lt;br /&gt;
&lt;br /&gt;
2. Update to the latest stable version (I&#039;ll use XX in the example but it could be 18, 19 etc) for the relevant files, and do a cvs diff just to double-check exactly what you are checking in.  Note you only need to update the files/directories you are working in, but sometimes it help to update everything anyway just to do a final check on the functionality using the web.&lt;br /&gt;
&lt;br /&gt;
          cd /moodle/XX/user&lt;br /&gt;
          cvs update -dPA&lt;br /&gt;
          cvs diff -c file1.php file2.php&lt;br /&gt;
&lt;br /&gt;
3. If all looks OK, check in the fix to the stable branch.  Make sure that the commit message contains the bug tracker ID (eg MDL-1111) and a decent description of your thoughts on the fix.  If you don&#039;t specify a message in the command line, you&#039;ll be put into an editor to type one.&lt;br /&gt;
&lt;br /&gt;
          cvs commit -m &amp;quot;MDL-1234 Corrected a small typo in the user name field&amp;quot; file1.php file2.php&lt;br /&gt;
&lt;br /&gt;
4. Go to the very latest trunk version and make sure it&#039;s up-to-date.&lt;br /&gt;
          &lt;br /&gt;
          cd /moodle/dev/user&lt;br /&gt;
          cvs update -dPA&lt;br /&gt;
&lt;br /&gt;
5. Merge everything into your local copy of the trunk from your stable branch since the last merge.  You can use the same sequence of (4) and (5) to merge the changes into other stable branches too (to backport the fix to the previous stable versions).&lt;br /&gt;
&lt;br /&gt;
          cvs update -kk -j MOODLE_XX_MERGED -j MOODLE_XX_STABLE file1.php file2.php&lt;br /&gt;
&lt;br /&gt;
6. Carefully watch the update logs for conflicts, and fix every file that you see with a conflict.  Afterwards, it may help to just run a diff to make sure the result is what you expected:&lt;br /&gt;
&lt;br /&gt;
          cvs diff -c file1.php file2.php&lt;br /&gt;
&lt;br /&gt;
7. Check your merged local copy back into CVS trunk version&lt;br /&gt;
&lt;br /&gt;
          cvs commit -m &amp;quot;MDL-1234 Corrected a small typo in the user name field, merged from XX&amp;quot; file1.php file2.php&lt;br /&gt;
&lt;br /&gt;
8. Go back to your branch version&lt;br /&gt;
&lt;br /&gt;
          cd /moodle/XX/user&lt;br /&gt;
&lt;br /&gt;
9. Update the floating merge tag for the affected files (so that it matches MOODLE_XX_STABLE) so that this process can be repeated next time&lt;br /&gt;
&lt;br /&gt;
          cvs tag -RF MOODLE_XX_MERGED file1.php file2.php&lt;br /&gt;
&lt;br /&gt;
Finally, the values for $version in all the Moodle version.php files within the stable branch should not be updated at all if possible (except the last digit if absolutely necessary). The reason is that someone updating from a very stable version to the next very stable version could miss database upgrades that happened on the trunk.&lt;br /&gt;
&lt;br /&gt;
===Feature branches for large changes===&lt;br /&gt;
&lt;br /&gt;
Occasionally, there may be a very large feature that needs to be checked in so several people can work on it, but it is too unstable to be included in the main development trunk.&lt;br /&gt;
&lt;br /&gt;
In these cases a short-term branch can be created to work on the feature, and then merged back into the main trunk as soon as possible. An example called MOODLE_17_WIDGET branch can be seen in the above diagram.&lt;br /&gt;
&lt;br /&gt;
If you need to do this for your new WIDGET feature, follow these steps:&lt;br /&gt;
&lt;br /&gt;
1. Discuss with other developers to make sure it&#039;s necessary!&lt;br /&gt;
&lt;br /&gt;
2. Make a new tag on the trunk (for all of moodle) called MOODLE_XX_WIDGET_PRE&lt;br /&gt;
&lt;br /&gt;
          cvs tag -R MOODLE_XX_WIDGET_PRE&lt;br /&gt;
&lt;br /&gt;
3. Create your branch called MOODLE_XX_WIDGET&lt;br /&gt;
&lt;br /&gt;
          cvs tag -Rb MOODLE_XX_WIDGET&lt;br /&gt;
&lt;br /&gt;
4. Work in that branch until the feature is reasonably stable. Commit as necessary.&lt;br /&gt;
&lt;br /&gt;
          cvs commit&lt;br /&gt;
&lt;br /&gt;
5. When ready, merge the whole branch into the trunk, fix conflicts, commit it to the trunk and then abandon the branch.&lt;br /&gt;
&lt;br /&gt;
          cvs update -dPA&lt;br /&gt;
          cvs update -kk -j MOODLE_XX_WIDGET&lt;br /&gt;
          cvs commit&lt;br /&gt;
&lt;br /&gt;
Good luck, be careful and have fun!&lt;br /&gt;
&lt;br /&gt;
==Who on earth is ...==&lt;br /&gt;
&lt;br /&gt;
Some of the people committing to the Moodle codebase have non-boring account names on the CVS server. If you are ever looking at a CVS commit, and wondering &amp;quot;who on earth is this purpleblob person?&amp;quot; This information is now available at: [http://moodle.org/mod/cvsadmin/view.php?cid=1 Moodle developers with write access].&lt;br /&gt;
&lt;br /&gt;
==Tips and Hints==&lt;br /&gt;
* [[Tracking Moodle CVS with git]]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=34472 Merging Custom Moodle Code With Stable Releases]&lt;br /&gt;
* [[Unmerged files]]: To see if you&#039;ve forgotten to merge any file.&lt;br /&gt;
* [http://ximbiot.com/cvs/manual/ CVS Manual]&lt;br /&gt;
* [[Development:contrib|Introduction to the &#039;&#039;&#039;contrib&#039;&#039;&#039; area of CVS]]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [http://tracker.moodle.org/browse/MDLSITE-193 &amp;quot;All developers should switch to using the cvs.moodle.org alias&amp;quot;]&lt;br /&gt;
* [[CVS for Administrators]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer|CVS for developers]]&lt;br /&gt;
[[Category:Developer tools]]&lt;br /&gt;
&lt;br /&gt;
[[es:CVS para desarrolladores]]&lt;br /&gt;
[[fr:CVS pour développeurs]]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Projects_for_new_developers&amp;diff=34704</id>
		<title>Projects for new developers</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Projects_for_new_developers&amp;diff=34704"/>
		<updated>2008-04-08T23:10:55Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* Enhance the current Reports feature */&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;
The student application period is now open. The (revised [http://groups.google.com/group/google-summer-of-code-announce/browse_thread/thread/9fa88f31aa401f70?hl=en]) deadline for applications is 00:00 UTC 8th April 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.&lt;br /&gt;
&lt;br /&gt;
===Web 2.0 language editing interface===&lt;br /&gt;
&lt;br /&gt;
Moodle is [[Translation|designed to be translated]] into many languages, and currently has over 70 language packs.&lt;br /&gt;
&lt;br /&gt;
The existing [[Language editing|language editing]] interface enables translators to check for untranslated words or phrases and also enables Moodle administrators to change words or phrases used in Moodle. However, it could really benefit from some improvements.&lt;br /&gt;
&lt;br /&gt;
This project will involve creating a Web 2.0 language editing interface which will:&lt;br /&gt;
&lt;br /&gt;
* Make use of Ajax technology&lt;br /&gt;
* Detect syntax errors and common problems in translated strings&lt;br /&gt;
* Include a search and replace feature for changing a particular word, for example the word &amp;quot;Course&amp;quot;, in every language string&lt;br /&gt;
* Display the differences between local and parent language packs&lt;br /&gt;
&lt;br /&gt;
In addition, the project may also include:&lt;br /&gt;
* A local modification import/export feature&lt;br /&gt;
* Further language pack import improvements&lt;br /&gt;
* Work on other long-standing language-related issues&lt;br /&gt;
&lt;br /&gt;
In general new ideas and fresh air in this area are welcome :-)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential mentors&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)], Koen Roggemans&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 (similar to http://buytaert.net/garland). 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.  The theme should be usable in Moodle 1.9 (although some thought about how it can work better in Moodle 2.0 would be good).&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; [http://moodle.org/user/view.php?id=423027&amp;amp;course=5 Mathieu Petit-Clair]&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;Mentors:&#039;&#039;&#039; [http://moodle.org/user/view.php?id=1 Martin Dougiamas], [http://moodle.org/user/view.php?id=152257 Jonathan Newman]&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.   The key thing is to gather together all the ideas generated by the community so far, carefully develop a Roles UI roadmap for changes in consultation with the community (screenshots will be most helpful) always making sure that the interface improves in usability, and then carefully implement the Roles UI roadmap. &lt;br /&gt;
&lt;br /&gt;
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 support for capability presets to simplify the interface and allow some things to be set from the &amp;quot;mod/edit&amp;quot; page.&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;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)]&lt;br /&gt;
&lt;br /&gt;
=== Usability review ===&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 thoughts).&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;
=== Animated grade statistics report ===&lt;br /&gt;
&lt;br /&gt;
Use the [http://flare.prefuse.org/ Flare library] to develop some cool and useful visualisation of information in the Moodle gradebook.  This can be designed as a Grade Report plugin (grade/report/visual) for Moodle 1.9.  To be really flexible and extensible, this should be built in several modular parts: &#039;&#039;harvesters&#039;&#039; to collect information (e.g., &amp;quot;grade entered&amp;quot;), &#039;&#039;reporters&#039;&#039; to summarize and normalize information, and &#039;&#039;adapters&#039;&#039; to feed that information into different visualization engines (so that if anyone ever wants to replace Flare, or if Flare changes, damage will be localized).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flare etc Mentor&#039;&#039;&#039;:  [mailto:gvwilson@cs.utoronto.ca Greg Wilson] ([http://www.cs.utoronto.ca/~gvwilson web site])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Moodle Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)]&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;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=17383&amp;amp;course=1 Penny Leach]&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;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;Co-mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=51473&amp;amp;course=5 Anthony Borrow]&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;
=== 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;Join the [http://moodle.org/mod/forum/discuss.php?d=92861 discussion thread]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Benchmark-Framework for Moodle===&lt;br /&gt;
&lt;br /&gt;
Moodle is developing rapidly - in terms of acceptance and features. One of the initial questions a potential user faces is &amp;quot;How much hardware do I need?&amp;quot;. And people who have Moodle running often want to know about the scalability.&lt;br /&gt;
&lt;br /&gt;
The answer to this simple question is complicated because&lt;br /&gt;
:a) various possible configurations of operating system, webserver, database server, PHP, Moodle itself&lt;br /&gt;
:b) different bottlenecks, CPU, RAM, disk, network, etc.&lt;br /&gt;
:c) the user behaviour, the expected peaks, acceptable response&lt;br /&gt;
:d) which feature of Moodle being used. etc.&lt;br /&gt;
&lt;br /&gt;
This project takes the approach of a test bench:&lt;br /&gt;
# do a fresh installation of Moodle&lt;br /&gt;
# import the test data provided&lt;br /&gt;
# install the server monitoring tools provided&lt;br /&gt;
# run regression tests provided on client(s)&lt;br /&gt;
# plot the measuered performance (client) and server load vs. requested load&lt;br /&gt;
# Tune, change parameters and back to step 4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentors&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=41095 Visvanath Ratnaweera], [http://moodle.org/user/view.php?id=18123  Wen Hao Chuang]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;: [http://moodle.org/mod/forum/discuss.php?d=93515 Forum &amp;quot;Student Projects&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
=== XML templates for admin settings ===&lt;br /&gt;
One of the disadvantages of the proliferation of settings --although part of Moodle&#039;s increasing flexibility and power-- is that a particular combination of settings may be difficult to reproduce from one site to the other. Also, administrators who want to &amp;quot;play with the settings&amp;quot; are afraid to be unable to restore the settings to their original values.&lt;br /&gt;
&lt;br /&gt;
The proposed solution is to implement a simple interface allowing administrators to export the settings in an XML file, which could later be restored. The features will include:&lt;br /&gt;
# Selection of settings to export (grouped in a tree format as displayed in the administrator panel)&lt;br /&gt;
# Naming and saving of XML files as special &amp;quot;templates&amp;quot; to be applied to a new install of Moodle for specific situations.&lt;br /&gt;
# An interface listing the templates (XML exported files with the &amp;quot;template&amp;quot; attribute set)&lt;br /&gt;
# A way to record the registered templates (beyond detecting the filesystem)&lt;br /&gt;
# A view of the settings available for restore in a given XML file&lt;br /&gt;
# Partial export/import&lt;br /&gt;
&lt;br /&gt;
Note: This needs to work nicely with the command-line installer code.&lt;br /&gt;
&lt;br /&gt;
Other ideas:&lt;br /&gt;
*An option to mark certain admins settings as is_sensitive() - a method in the admin setting base class. This would be true for passwords and things. Then you could have an option for exporting all the non-sensitive settings to attach to a forum post when you ask for help.&lt;br /&gt;
*Use YAML instead of XML (sam opinion: ugh, no!)&lt;br /&gt;
*Very detailed logging of admin setting changes - to allow for undos, among other things - or just simple logging of each set_config change with its new and previous value in the info field would be a good start&lt;br /&gt;
*A text field, like CVS commit messages, for people making admin changes&lt;br /&gt;
*The ability to &amp;quot;switch&amp;quot; a template on/off. While on, it overrides the original settings without replacing them. When off, the original settings are restored&lt;br /&gt;
*In addition to the previous point: ability to switch several templates on/off, and to organise them by priority. If a setting is defined in two templates, the one in the template with the highest priority overrides the other one.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)]&lt;br /&gt;
&lt;br /&gt;
===Create Moodle Plugin Templates===&lt;br /&gt;
&lt;br /&gt;
The M in Moodle is for Modular, meaning that it is designed to be extended, either for sharing with others or for customization within an institution.  There are, in fact, at least [https://docs.moodle.org/en/Developer_documentation#Make_a_new_plugin 20 different plugin types].  &lt;br /&gt;
&lt;br /&gt;
Your job is to create a template version of each of these plugins, with lots of inline documentation and examples of common Moodle code practices.  The example plugins should install correctly in Moodle 1.9 but not actually do very much, just show placeholders etc.  These template plugins should be useful starting points for new developers to start editing to create their own plugins.&lt;br /&gt;
&lt;br /&gt;
Some examples already exist but will need to be brought up to date and improved.&lt;br /&gt;
&lt;br /&gt;
* Activity modules:  http://cvs.moodle.org/contrib/plugins/mod/NEWMODULE/&lt;br /&gt;
* Blocks:  http://cvs.moodle.org/contrib/plugins/blocks/NEWBLOCK/&lt;br /&gt;
&lt;br /&gt;
Other plugin types don&#039;t have anything yet.&lt;br /&gt;
&lt;br /&gt;
* http://cvs.moodle.org/contrib/plugins/&lt;br /&gt;
&lt;br /&gt;
There is also a lot of scattered documention here in the [https://docs.moodle.org/en/Development Development wiki] such as this [https://docs.moodle.org/en/Development:Blocks Block Tutorial] (oldish).&lt;br /&gt;
&lt;br /&gt;
Requirements:&lt;br /&gt;
&lt;br /&gt;
* The initial scope of the project should be templates for /mod, /blocks, /enrol, /auth, /admin/report, /course/report, /grade/import, /grade/export, /grade/report, /question/type and /mod/assignment/type, although expanding it to more or all would be helpful if time permits and it does not diminish the quality and testing of the initial examples.&lt;br /&gt;
* Full consideration should be given to standards (such as using language packs, check for access permissions, XHTML, styles, etc.)  See the [[Coding guide]].&lt;br /&gt;
* Current examples in the core code should be considered in the development of each plugin when applicable.&lt;br /&gt;
* Each template should be documented in the form of a step-by-step tutorial such that a beginner to intermediate php programmer could recreate the steps for construction.  These instructions should be placed on https://docs.moodle.org under [[Development]].&lt;br /&gt;
* Field tested with real beginning/intermediate level developers and changes made based on reports from that field experience (we can help in finding these testers).&lt;br /&gt;
* Designed for Moodle 1.9.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;:  [https://docs.moodle.org/en/User:Gary_Anderson Gary Anderson]&lt;br /&gt;
&lt;br /&gt;
==Other ideas still being considered 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;
===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;
===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;
[[User:Martin Dougiamas|Martin Dougiamas]] 20:32, 25 March 2008 (CDT) :  I would rather see some base work being done first to allow &amp;quot;user profile plugins&amp;quot; similar to facebook applications so that ideas like this can be added easily later.&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;
&#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;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=140206&amp;amp;course=5 Ken Wilson]&lt;br /&gt;
&lt;br /&gt;
(I can&#039;t see a way of doing this securely.  You&#039;d basically have to give your PHP script the ability to rewrite themselves.  It might be possible to just do the checking part (extension of existing environment scripts probably) and at least give admins a neat report with links and information to do the upgrade more easily.  [[User:Martin Dougiamas|Martin Dougiamas]] 09:32, 31 March 2008 (CDT))&lt;br /&gt;
&lt;br /&gt;
===Enhance the current Reports feature===&lt;br /&gt;
&lt;br /&gt;
As I mentioned in this discussion thread:&lt;br /&gt;
http://moodle.org/mod/forum/post.php?reply=416580&lt;br /&gt;
&lt;br /&gt;
I think it might be a good idea to enhance the current Reports feature in moodle so that it could have some &amp;quot;data visualization&amp;quot; features and help administrators or teachers to analyze the trends as well as usage/learning pattern, etc.&lt;br /&gt;
&lt;br /&gt;
The spec needs to be worked on a little bit more, but there would be two possible different approaches:&lt;br /&gt;
&lt;br /&gt;
(1) Enhance the current Reports features (codes will be integrated with future moodle version)&lt;br /&gt;
&lt;br /&gt;
(2) External integration with other open-source data mining solutions. That is, write some codes to create an interface (with options) under the current Reports link, so that system admin, administrators (e.g. directors, department chairs, teachers) could see some visualized data through the interface. The data could be retrieved from some other 3rd party data-mining solutions..etc.&lt;br /&gt;
&lt;br /&gt;
Co-mentor welcome! :)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=18123&amp;amp;course=1 Wen Hao Chuang]&lt;br /&gt;
&lt;br /&gt;
===Enhance the current Functional/Regression Testing Practice and Build a Framework===&lt;br /&gt;
&lt;br /&gt;
For moodle, other than the current build-in unit tests (based on SimpleTest framework, see: https://docs.moodle.org/en/Development:Unit_tests) and the existing limited Test Cases that are located at https://docs.moodle.org/en/Development:Tests. For larger institutions who has their own development teams, there is a missing link for good functional/regression testing tools/process/practice to automate some of QA efforts. There are some discussion about using Selenium IDE for such efforts (see http://moodle.org/mod/forum/discuss.php?d=43569) but it is not really organized or systematic. This project has the following goals:&lt;br /&gt;
&lt;br /&gt;
(1) To improve the existing test cases &amp;quot;system&amp;quot; (https://docs.moodle.org/en/Development:Tests) and to create a more comprehensive test plan and/or to modularized the test plan so that we could coordinate the testing efforts among different volunteer institutions to assure better quality of moodle (for future versions).&lt;br /&gt;
&lt;br /&gt;
(2) To investigate open-source functional/regression test tools (e.g. TestNG, JMeter, Selenium IDE/RC, etc.) to see if we could come up with scripts to automate most of the functional/regression tests.&lt;br /&gt;
&lt;br /&gt;
Also see: http://www.opensourcetesting.org/functional.php&lt;br /&gt;
&lt;br /&gt;
Co-mentor welcome!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=18123&amp;amp;course=1 Wen Hao Chuang]&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>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Projects_for_new_developers&amp;diff=34703</id>
		<title>Projects for new developers</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Projects_for_new_developers&amp;diff=34703"/>
		<updated>2008-04-08T23:10:37Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* Enhance the current Functional/Regression Testing Practice and Build a Framework */&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;
The student application period is now open. The (revised [http://groups.google.com/group/google-summer-of-code-announce/browse_thread/thread/9fa88f31aa401f70?hl=en]) deadline for applications is 00:00 UTC 8th April 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.&lt;br /&gt;
&lt;br /&gt;
===Web 2.0 language editing interface===&lt;br /&gt;
&lt;br /&gt;
Moodle is [[Translation|designed to be translated]] into many languages, and currently has over 70 language packs.&lt;br /&gt;
&lt;br /&gt;
The existing [[Language editing|language editing]] interface enables translators to check for untranslated words or phrases and also enables Moodle administrators to change words or phrases used in Moodle. However, it could really benefit from some improvements.&lt;br /&gt;
&lt;br /&gt;
This project will involve creating a Web 2.0 language editing interface which will:&lt;br /&gt;
&lt;br /&gt;
* Make use of Ajax technology&lt;br /&gt;
* Detect syntax errors and common problems in translated strings&lt;br /&gt;
* Include a search and replace feature for changing a particular word, for example the word &amp;quot;Course&amp;quot;, in every language string&lt;br /&gt;
* Display the differences between local and parent language packs&lt;br /&gt;
&lt;br /&gt;
In addition, the project may also include:&lt;br /&gt;
* A local modification import/export feature&lt;br /&gt;
* Further language pack import improvements&lt;br /&gt;
* Work on other long-standing language-related issues&lt;br /&gt;
&lt;br /&gt;
In general new ideas and fresh air in this area are welcome :-)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential mentors&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)], Koen Roggemans&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 (similar to http://buytaert.net/garland). 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.  The theme should be usable in Moodle 1.9 (although some thought about how it can work better in Moodle 2.0 would be good).&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; [http://moodle.org/user/view.php?id=423027&amp;amp;course=5 Mathieu Petit-Clair]&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;Mentors:&#039;&#039;&#039; [http://moodle.org/user/view.php?id=1 Martin Dougiamas], [http://moodle.org/user/view.php?id=152257 Jonathan Newman]&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.   The key thing is to gather together all the ideas generated by the community so far, carefully develop a Roles UI roadmap for changes in consultation with the community (screenshots will be most helpful) always making sure that the interface improves in usability, and then carefully implement the Roles UI roadmap. &lt;br /&gt;
&lt;br /&gt;
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 support for capability presets to simplify the interface and allow some things to be set from the &amp;quot;mod/edit&amp;quot; page.&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;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)]&lt;br /&gt;
&lt;br /&gt;
=== Usability review ===&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 thoughts).&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;
=== Animated grade statistics report ===&lt;br /&gt;
&lt;br /&gt;
Use the [http://flare.prefuse.org/ Flare library] to develop some cool and useful visualisation of information in the Moodle gradebook.  This can be designed as a Grade Report plugin (grade/report/visual) for Moodle 1.9.  To be really flexible and extensible, this should be built in several modular parts: &#039;&#039;harvesters&#039;&#039; to collect information (e.g., &amp;quot;grade entered&amp;quot;), &#039;&#039;reporters&#039;&#039; to summarize and normalize information, and &#039;&#039;adapters&#039;&#039; to feed that information into different visualization engines (so that if anyone ever wants to replace Flare, or if Flare changes, damage will be localized).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flare etc Mentor&#039;&#039;&#039;:  [mailto:gvwilson@cs.utoronto.ca Greg Wilson] ([http://www.cs.utoronto.ca/~gvwilson web site])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Moodle Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)]&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;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=17383&amp;amp;course=1 Penny Leach]&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;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;Co-mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=51473&amp;amp;course=5 Anthony Borrow]&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;
=== 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;Join the [http://moodle.org/mod/forum/discuss.php?d=92861 discussion thread]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Benchmark-Framework for Moodle===&lt;br /&gt;
&lt;br /&gt;
Moodle is developing rapidly - in terms of acceptance and features. One of the initial questions a potential user faces is &amp;quot;How much hardware do I need?&amp;quot;. And people who have Moodle running often want to know about the scalability.&lt;br /&gt;
&lt;br /&gt;
The answer to this simple question is complicated because&lt;br /&gt;
:a) various possible configurations of operating system, webserver, database server, PHP, Moodle itself&lt;br /&gt;
:b) different bottlenecks, CPU, RAM, disk, network, etc.&lt;br /&gt;
:c) the user behaviour, the expected peaks, acceptable response&lt;br /&gt;
:d) which feature of Moodle being used. etc.&lt;br /&gt;
&lt;br /&gt;
This project takes the approach of a test bench:&lt;br /&gt;
# do a fresh installation of Moodle&lt;br /&gt;
# import the test data provided&lt;br /&gt;
# install the server monitoring tools provided&lt;br /&gt;
# run regression tests provided on client(s)&lt;br /&gt;
# plot the measuered performance (client) and server load vs. requested load&lt;br /&gt;
# Tune, change parameters and back to step 4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentors&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=41095 Visvanath Ratnaweera], [http://moodle.org/user/view.php?id=18123  Wen Hao Chuang]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;: [http://moodle.org/mod/forum/discuss.php?d=93515 Forum &amp;quot;Student Projects&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
=== XML templates for admin settings ===&lt;br /&gt;
One of the disadvantages of the proliferation of settings --although part of Moodle&#039;s increasing flexibility and power-- is that a particular combination of settings may be difficult to reproduce from one site to the other. Also, administrators who want to &amp;quot;play with the settings&amp;quot; are afraid to be unable to restore the settings to their original values.&lt;br /&gt;
&lt;br /&gt;
The proposed solution is to implement a simple interface allowing administrators to export the settings in an XML file, which could later be restored. The features will include:&lt;br /&gt;
# Selection of settings to export (grouped in a tree format as displayed in the administrator panel)&lt;br /&gt;
# Naming and saving of XML files as special &amp;quot;templates&amp;quot; to be applied to a new install of Moodle for specific situations.&lt;br /&gt;
# An interface listing the templates (XML exported files with the &amp;quot;template&amp;quot; attribute set)&lt;br /&gt;
# A way to record the registered templates (beyond detecting the filesystem)&lt;br /&gt;
# A view of the settings available for restore in a given XML file&lt;br /&gt;
# Partial export/import&lt;br /&gt;
&lt;br /&gt;
Note: This needs to work nicely with the command-line installer code.&lt;br /&gt;
&lt;br /&gt;
Other ideas:&lt;br /&gt;
*An option to mark certain admins settings as is_sensitive() - a method in the admin setting base class. This would be true for passwords and things. Then you could have an option for exporting all the non-sensitive settings to attach to a forum post when you ask for help.&lt;br /&gt;
*Use YAML instead of XML (sam opinion: ugh, no!)&lt;br /&gt;
*Very detailed logging of admin setting changes - to allow for undos, among other things - or just simple logging of each set_config change with its new and previous value in the info field would be a good start&lt;br /&gt;
*A text field, like CVS commit messages, for people making admin changes&lt;br /&gt;
*The ability to &amp;quot;switch&amp;quot; a template on/off. While on, it overrides the original settings without replacing them. When off, the original settings are restored&lt;br /&gt;
*In addition to the previous point: ability to switch several templates on/off, and to organise them by priority. If a setting is defined in two templates, the one in the template with the highest priority overrides the other one.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)]&lt;br /&gt;
&lt;br /&gt;
===Create Moodle Plugin Templates===&lt;br /&gt;
&lt;br /&gt;
The M in Moodle is for Modular, meaning that it is designed to be extended, either for sharing with others or for customization within an institution.  There are, in fact, at least [https://docs.moodle.org/en/Developer_documentation#Make_a_new_plugin 20 different plugin types].  &lt;br /&gt;
&lt;br /&gt;
Your job is to create a template version of each of these plugins, with lots of inline documentation and examples of common Moodle code practices.  The example plugins should install correctly in Moodle 1.9 but not actually do very much, just show placeholders etc.  These template plugins should be useful starting points for new developers to start editing to create their own plugins.&lt;br /&gt;
&lt;br /&gt;
Some examples already exist but will need to be brought up to date and improved.&lt;br /&gt;
&lt;br /&gt;
* Activity modules:  http://cvs.moodle.org/contrib/plugins/mod/NEWMODULE/&lt;br /&gt;
* Blocks:  http://cvs.moodle.org/contrib/plugins/blocks/NEWBLOCK/&lt;br /&gt;
&lt;br /&gt;
Other plugin types don&#039;t have anything yet.&lt;br /&gt;
&lt;br /&gt;
* http://cvs.moodle.org/contrib/plugins/&lt;br /&gt;
&lt;br /&gt;
There is also a lot of scattered documention here in the [https://docs.moodle.org/en/Development Development wiki] such as this [https://docs.moodle.org/en/Development:Blocks Block Tutorial] (oldish).&lt;br /&gt;
&lt;br /&gt;
Requirements:&lt;br /&gt;
&lt;br /&gt;
* The initial scope of the project should be templates for /mod, /blocks, /enrol, /auth, /admin/report, /course/report, /grade/import, /grade/export, /grade/report, /question/type and /mod/assignment/type, although expanding it to more or all would be helpful if time permits and it does not diminish the quality and testing of the initial examples.&lt;br /&gt;
* Full consideration should be given to standards (such as using language packs, check for access permissions, XHTML, styles, etc.)  See the [[Coding guide]].&lt;br /&gt;
* Current examples in the core code should be considered in the development of each plugin when applicable.&lt;br /&gt;
* Each template should be documented in the form of a step-by-step tutorial such that a beginner to intermediate php programmer could recreate the steps for construction.  These instructions should be placed on https://docs.moodle.org under [[Development]].&lt;br /&gt;
* Field tested with real beginning/intermediate level developers and changes made based on reports from that field experience (we can help in finding these testers).&lt;br /&gt;
* Designed for Moodle 1.9.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;:  [https://docs.moodle.org/en/User:Gary_Anderson Gary Anderson]&lt;br /&gt;
&lt;br /&gt;
==Other ideas still being considered 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;
===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;
===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;
[[User:Martin Dougiamas|Martin Dougiamas]] 20:32, 25 March 2008 (CDT) :  I would rather see some base work being done first to allow &amp;quot;user profile plugins&amp;quot; similar to facebook applications so that ideas like this can be added easily later.&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;
&#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;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=140206&amp;amp;course=5 Ken Wilson]&lt;br /&gt;
&lt;br /&gt;
(I can&#039;t see a way of doing this securely.  You&#039;d basically have to give your PHP script the ability to rewrite themselves.  It might be possible to just do the checking part (extension of existing environment scripts probably) and at least give admins a neat report with links and information to do the upgrade more easily.  [[User:Martin Dougiamas|Martin Dougiamas]] 09:32, 31 March 2008 (CDT))&lt;br /&gt;
&lt;br /&gt;
===Enhance the current Reports feature===&lt;br /&gt;
&lt;br /&gt;
As I mentioned in this discussion thread:&lt;br /&gt;
http://moodle.org/mod/forum/post.php?reply=416580&lt;br /&gt;
&lt;br /&gt;
I think it might be a good idea to enhance the current Reports feature in moodle so that it could have some &amp;quot;data visualization&amp;quot; features and help administrators or teachers to analyze the trends as well as usage/learning pattern, etc.&lt;br /&gt;
&lt;br /&gt;
The spec needs to be worked on a little bit more, but there would be two possible different approaches:&lt;br /&gt;
&lt;br /&gt;
(1) Enhance the current Reports features (codes will be integrated with future moodle version)&lt;br /&gt;
&lt;br /&gt;
(2) External integration with other open-source data mining solutions. That is, write some codes to create an interface (with options) under the current Reports link, so that system admin, administrators (e.g. directors, department chairs, teachers) could see some visualized data through the interface. The data could be retrieved from some other 3rd party data-mining solutions..etc.&lt;br /&gt;
&lt;br /&gt;
Co-mentor is welcomed! :)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=18123&amp;amp;course=1 Wen Hao Chuang]&lt;br /&gt;
&lt;br /&gt;
===Enhance the current Functional/Regression Testing Practice and Build a Framework===&lt;br /&gt;
&lt;br /&gt;
For moodle, other than the current build-in unit tests (based on SimpleTest framework, see: https://docs.moodle.org/en/Development:Unit_tests) and the existing limited Test Cases that are located at https://docs.moodle.org/en/Development:Tests. For larger institutions who has their own development teams, there is a missing link for good functional/regression testing tools/process/practice to automate some of QA efforts. There are some discussion about using Selenium IDE for such efforts (see http://moodle.org/mod/forum/discuss.php?d=43569) but it is not really organized or systematic. This project has the following goals:&lt;br /&gt;
&lt;br /&gt;
(1) To improve the existing test cases &amp;quot;system&amp;quot; (https://docs.moodle.org/en/Development:Tests) and to create a more comprehensive test plan and/or to modularized the test plan so that we could coordinate the testing efforts among different volunteer institutions to assure better quality of moodle (for future versions).&lt;br /&gt;
&lt;br /&gt;
(2) To investigate open-source functional/regression test tools (e.g. TestNG, JMeter, Selenium IDE/RC, etc.) to see if we could come up with scripts to automate most of the functional/regression tests.&lt;br /&gt;
&lt;br /&gt;
Also see: http://www.opensourcetesting.org/functional.php&lt;br /&gt;
&lt;br /&gt;
Co-mentor welcome!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=18123&amp;amp;course=1 Wen Hao Chuang]&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>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Projects_for_new_developers&amp;diff=34702</id>
		<title>Projects for new developers</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Projects_for_new_developers&amp;diff=34702"/>
		<updated>2008-04-08T23:10:10Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* Enhance the current Reports feature */&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;
The student application period is now open. The (revised [http://groups.google.com/group/google-summer-of-code-announce/browse_thread/thread/9fa88f31aa401f70?hl=en]) deadline for applications is 00:00 UTC 8th April 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.&lt;br /&gt;
&lt;br /&gt;
===Web 2.0 language editing interface===&lt;br /&gt;
&lt;br /&gt;
Moodle is [[Translation|designed to be translated]] into many languages, and currently has over 70 language packs.&lt;br /&gt;
&lt;br /&gt;
The existing [[Language editing|language editing]] interface enables translators to check for untranslated words or phrases and also enables Moodle administrators to change words or phrases used in Moodle. However, it could really benefit from some improvements.&lt;br /&gt;
&lt;br /&gt;
This project will involve creating a Web 2.0 language editing interface which will:&lt;br /&gt;
&lt;br /&gt;
* Make use of Ajax technology&lt;br /&gt;
* Detect syntax errors and common problems in translated strings&lt;br /&gt;
* Include a search and replace feature for changing a particular word, for example the word &amp;quot;Course&amp;quot;, in every language string&lt;br /&gt;
* Display the differences between local and parent language packs&lt;br /&gt;
&lt;br /&gt;
In addition, the project may also include:&lt;br /&gt;
* A local modification import/export feature&lt;br /&gt;
* Further language pack import improvements&lt;br /&gt;
* Work on other long-standing language-related issues&lt;br /&gt;
&lt;br /&gt;
In general new ideas and fresh air in this area are welcome :-)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential mentors&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)], Koen Roggemans&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 (similar to http://buytaert.net/garland). 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.  The theme should be usable in Moodle 1.9 (although some thought about how it can work better in Moodle 2.0 would be good).&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; [http://moodle.org/user/view.php?id=423027&amp;amp;course=5 Mathieu Petit-Clair]&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;Mentors:&#039;&#039;&#039; [http://moodle.org/user/view.php?id=1 Martin Dougiamas], [http://moodle.org/user/view.php?id=152257 Jonathan Newman]&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.   The key thing is to gather together all the ideas generated by the community so far, carefully develop a Roles UI roadmap for changes in consultation with the community (screenshots will be most helpful) always making sure that the interface improves in usability, and then carefully implement the Roles UI roadmap. &lt;br /&gt;
&lt;br /&gt;
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 support for capability presets to simplify the interface and allow some things to be set from the &amp;quot;mod/edit&amp;quot; page.&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;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)]&lt;br /&gt;
&lt;br /&gt;
=== Usability review ===&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 thoughts).&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;
=== Animated grade statistics report ===&lt;br /&gt;
&lt;br /&gt;
Use the [http://flare.prefuse.org/ Flare library] to develop some cool and useful visualisation of information in the Moodle gradebook.  This can be designed as a Grade Report plugin (grade/report/visual) for Moodle 1.9.  To be really flexible and extensible, this should be built in several modular parts: &#039;&#039;harvesters&#039;&#039; to collect information (e.g., &amp;quot;grade entered&amp;quot;), &#039;&#039;reporters&#039;&#039; to summarize and normalize information, and &#039;&#039;adapters&#039;&#039; to feed that information into different visualization engines (so that if anyone ever wants to replace Flare, or if Flare changes, damage will be localized).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flare etc Mentor&#039;&#039;&#039;:  [mailto:gvwilson@cs.utoronto.ca Greg Wilson] ([http://www.cs.utoronto.ca/~gvwilson web site])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Moodle Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)]&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;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=17383&amp;amp;course=1 Penny Leach]&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;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;Co-mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=51473&amp;amp;course=5 Anthony Borrow]&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;
=== 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;Join the [http://moodle.org/mod/forum/discuss.php?d=92861 discussion thread]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Benchmark-Framework for Moodle===&lt;br /&gt;
&lt;br /&gt;
Moodle is developing rapidly - in terms of acceptance and features. One of the initial questions a potential user faces is &amp;quot;How much hardware do I need?&amp;quot;. And people who have Moodle running often want to know about the scalability.&lt;br /&gt;
&lt;br /&gt;
The answer to this simple question is complicated because&lt;br /&gt;
:a) various possible configurations of operating system, webserver, database server, PHP, Moodle itself&lt;br /&gt;
:b) different bottlenecks, CPU, RAM, disk, network, etc.&lt;br /&gt;
:c) the user behaviour, the expected peaks, acceptable response&lt;br /&gt;
:d) which feature of Moodle being used. etc.&lt;br /&gt;
&lt;br /&gt;
This project takes the approach of a test bench:&lt;br /&gt;
# do a fresh installation of Moodle&lt;br /&gt;
# import the test data provided&lt;br /&gt;
# install the server monitoring tools provided&lt;br /&gt;
# run regression tests provided on client(s)&lt;br /&gt;
# plot the measuered performance (client) and server load vs. requested load&lt;br /&gt;
# Tune, change parameters and back to step 4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentors&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=41095 Visvanath Ratnaweera], [http://moodle.org/user/view.php?id=18123  Wen Hao Chuang]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;: [http://moodle.org/mod/forum/discuss.php?d=93515 Forum &amp;quot;Student Projects&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
=== XML templates for admin settings ===&lt;br /&gt;
One of the disadvantages of the proliferation of settings --although part of Moodle&#039;s increasing flexibility and power-- is that a particular combination of settings may be difficult to reproduce from one site to the other. Also, administrators who want to &amp;quot;play with the settings&amp;quot; are afraid to be unable to restore the settings to their original values.&lt;br /&gt;
&lt;br /&gt;
The proposed solution is to implement a simple interface allowing administrators to export the settings in an XML file, which could later be restored. The features will include:&lt;br /&gt;
# Selection of settings to export (grouped in a tree format as displayed in the administrator panel)&lt;br /&gt;
# Naming and saving of XML files as special &amp;quot;templates&amp;quot; to be applied to a new install of Moodle for specific situations.&lt;br /&gt;
# An interface listing the templates (XML exported files with the &amp;quot;template&amp;quot; attribute set)&lt;br /&gt;
# A way to record the registered templates (beyond detecting the filesystem)&lt;br /&gt;
# A view of the settings available for restore in a given XML file&lt;br /&gt;
# Partial export/import&lt;br /&gt;
&lt;br /&gt;
Note: This needs to work nicely with the command-line installer code.&lt;br /&gt;
&lt;br /&gt;
Other ideas:&lt;br /&gt;
*An option to mark certain admins settings as is_sensitive() - a method in the admin setting base class. This would be true for passwords and things. Then you could have an option for exporting all the non-sensitive settings to attach to a forum post when you ask for help.&lt;br /&gt;
*Use YAML instead of XML (sam opinion: ugh, no!)&lt;br /&gt;
*Very detailed logging of admin setting changes - to allow for undos, among other things - or just simple logging of each set_config change with its new and previous value in the info field would be a good start&lt;br /&gt;
*A text field, like CVS commit messages, for people making admin changes&lt;br /&gt;
*The ability to &amp;quot;switch&amp;quot; a template on/off. While on, it overrides the original settings without replacing them. When off, the original settings are restored&lt;br /&gt;
*In addition to the previous point: ability to switch several templates on/off, and to organise them by priority. If a setting is defined in two templates, the one in the template with the highest priority overrides the other one.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)]&lt;br /&gt;
&lt;br /&gt;
===Create Moodle Plugin Templates===&lt;br /&gt;
&lt;br /&gt;
The M in Moodle is for Modular, meaning that it is designed to be extended, either for sharing with others or for customization within an institution.  There are, in fact, at least [https://docs.moodle.org/en/Developer_documentation#Make_a_new_plugin 20 different plugin types].  &lt;br /&gt;
&lt;br /&gt;
Your job is to create a template version of each of these plugins, with lots of inline documentation and examples of common Moodle code practices.  The example plugins should install correctly in Moodle 1.9 but not actually do very much, just show placeholders etc.  These template plugins should be useful starting points for new developers to start editing to create their own plugins.&lt;br /&gt;
&lt;br /&gt;
Some examples already exist but will need to be brought up to date and improved.&lt;br /&gt;
&lt;br /&gt;
* Activity modules:  http://cvs.moodle.org/contrib/plugins/mod/NEWMODULE/&lt;br /&gt;
* Blocks:  http://cvs.moodle.org/contrib/plugins/blocks/NEWBLOCK/&lt;br /&gt;
&lt;br /&gt;
Other plugin types don&#039;t have anything yet.&lt;br /&gt;
&lt;br /&gt;
* http://cvs.moodle.org/contrib/plugins/&lt;br /&gt;
&lt;br /&gt;
There is also a lot of scattered documention here in the [https://docs.moodle.org/en/Development Development wiki] such as this [https://docs.moodle.org/en/Development:Blocks Block Tutorial] (oldish).&lt;br /&gt;
&lt;br /&gt;
Requirements:&lt;br /&gt;
&lt;br /&gt;
* The initial scope of the project should be templates for /mod, /blocks, /enrol, /auth, /admin/report, /course/report, /grade/import, /grade/export, /grade/report, /question/type and /mod/assignment/type, although expanding it to more or all would be helpful if time permits and it does not diminish the quality and testing of the initial examples.&lt;br /&gt;
* Full consideration should be given to standards (such as using language packs, check for access permissions, XHTML, styles, etc.)  See the [[Coding guide]].&lt;br /&gt;
* Current examples in the core code should be considered in the development of each plugin when applicable.&lt;br /&gt;
* Each template should be documented in the form of a step-by-step tutorial such that a beginner to intermediate php programmer could recreate the steps for construction.  These instructions should be placed on https://docs.moodle.org under [[Development]].&lt;br /&gt;
* Field tested with real beginning/intermediate level developers and changes made based on reports from that field experience (we can help in finding these testers).&lt;br /&gt;
* Designed for Moodle 1.9.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;:  [https://docs.moodle.org/en/User:Gary_Anderson Gary Anderson]&lt;br /&gt;
&lt;br /&gt;
==Other ideas still being considered 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;
===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;
===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;
[[User:Martin Dougiamas|Martin Dougiamas]] 20:32, 25 March 2008 (CDT) :  I would rather see some base work being done first to allow &amp;quot;user profile plugins&amp;quot; similar to facebook applications so that ideas like this can be added easily later.&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;
&#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;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=140206&amp;amp;course=5 Ken Wilson]&lt;br /&gt;
&lt;br /&gt;
(I can&#039;t see a way of doing this securely.  You&#039;d basically have to give your PHP script the ability to rewrite themselves.  It might be possible to just do the checking part (extension of existing environment scripts probably) and at least give admins a neat report with links and information to do the upgrade more easily.  [[User:Martin Dougiamas|Martin Dougiamas]] 09:32, 31 March 2008 (CDT))&lt;br /&gt;
&lt;br /&gt;
===Enhance the current Reports feature===&lt;br /&gt;
&lt;br /&gt;
As I mentioned in this discussion thread:&lt;br /&gt;
http://moodle.org/mod/forum/post.php?reply=416580&lt;br /&gt;
&lt;br /&gt;
I think it might be a good idea to enhance the current Reports feature in moodle so that it could have some &amp;quot;data visualization&amp;quot; features and help administrators or teachers to analyze the trends as well as usage/learning pattern, etc.&lt;br /&gt;
&lt;br /&gt;
The spec needs to be worked on a little bit more, but there would be two possible different approaches:&lt;br /&gt;
&lt;br /&gt;
(1) Enhance the current Reports features (codes will be integrated with future moodle version)&lt;br /&gt;
&lt;br /&gt;
(2) External integration with other open-source data mining solutions. That is, write some codes to create an interface (with options) under the current Reports link, so that system admin, administrators (e.g. directors, department chairs, teachers) could see some visualized data through the interface. The data could be retrieved from some other 3rd party data-mining solutions..etc.&lt;br /&gt;
&lt;br /&gt;
Co-mentor is welcomed! :)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=18123&amp;amp;course=1 Wen Hao Chuang]&lt;br /&gt;
&lt;br /&gt;
===Enhance the current Functional/Regression Testing Practice and Build a Framework===&lt;br /&gt;
&lt;br /&gt;
For moodle, other than the current build-in unit tests (based on SimpleTest framework, see: https://docs.moodle.org/en/Development:Unit_tests) and the existing limited Test Cases that are located at https://docs.moodle.org/en/Development:Tests. For larger institutions who has their own development teams, there is a missing link for good functional/regression testing tools/process/practice to automate some of QA efforts. There are some discussion about using Selenium IDE for such efforts (see http://moodle.org/mod/forum/discuss.php?d=43569) but it is not really organized or systematic. This project has the following goals:&lt;br /&gt;
&lt;br /&gt;
(1) To improve the existing test cases &amp;quot;system&amp;quot; (https://docs.moodle.org/en/Development:Tests) and to create a more comprehensive test plan and/or to modularized the test plan so that we could coordinate the testing efforts among different volunteer institutions to assure better quality of moodle (for future versions).&lt;br /&gt;
&lt;br /&gt;
(2) To investigate open-source functional/regression test tools (e.g. TestNG, JMeter, Selenium IDE/RC, etc.) to see if we could come up with scripts to automate most of the functional/regression tests.&lt;br /&gt;
&lt;br /&gt;
Also see: http://www.opensourcetesting.org/functional.php&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=18123&amp;amp;course=1 Wen Hao Chuang]&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>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Projects_for_new_developers&amp;diff=34701</id>
		<title>Projects for new developers</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Projects_for_new_developers&amp;diff=34701"/>
		<updated>2008-04-08T23:01:41Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* Other ideas still being considered for GSOC */&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;
The student application period is now open. The (revised [http://groups.google.com/group/google-summer-of-code-announce/browse_thread/thread/9fa88f31aa401f70?hl=en]) deadline for applications is 00:00 UTC 8th April 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.&lt;br /&gt;
&lt;br /&gt;
===Web 2.0 language editing interface===&lt;br /&gt;
&lt;br /&gt;
Moodle is [[Translation|designed to be translated]] into many languages, and currently has over 70 language packs.&lt;br /&gt;
&lt;br /&gt;
The existing [[Language editing|language editing]] interface enables translators to check for untranslated words or phrases and also enables Moodle administrators to change words or phrases used in Moodle. However, it could really benefit from some improvements.&lt;br /&gt;
&lt;br /&gt;
This project will involve creating a Web 2.0 language editing interface which will:&lt;br /&gt;
&lt;br /&gt;
* Make use of Ajax technology&lt;br /&gt;
* Detect syntax errors and common problems in translated strings&lt;br /&gt;
* Include a search and replace feature for changing a particular word, for example the word &amp;quot;Course&amp;quot;, in every language string&lt;br /&gt;
* Display the differences between local and parent language packs&lt;br /&gt;
&lt;br /&gt;
In addition, the project may also include:&lt;br /&gt;
* A local modification import/export feature&lt;br /&gt;
* Further language pack import improvements&lt;br /&gt;
* Work on other long-standing language-related issues&lt;br /&gt;
&lt;br /&gt;
In general new ideas and fresh air in this area are welcome :-)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential mentors&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)], Koen Roggemans&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 (similar to http://buytaert.net/garland). 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.  The theme should be usable in Moodle 1.9 (although some thought about how it can work better in Moodle 2.0 would be good).&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; [http://moodle.org/user/view.php?id=423027&amp;amp;course=5 Mathieu Petit-Clair]&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;Mentors:&#039;&#039;&#039; [http://moodle.org/user/view.php?id=1 Martin Dougiamas], [http://moodle.org/user/view.php?id=152257 Jonathan Newman]&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.   The key thing is to gather together all the ideas generated by the community so far, carefully develop a Roles UI roadmap for changes in consultation with the community (screenshots will be most helpful) always making sure that the interface improves in usability, and then carefully implement the Roles UI roadmap. &lt;br /&gt;
&lt;br /&gt;
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 support for capability presets to simplify the interface and allow some things to be set from the &amp;quot;mod/edit&amp;quot; page.&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;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)]&lt;br /&gt;
&lt;br /&gt;
=== Usability review ===&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 thoughts).&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;
=== Animated grade statistics report ===&lt;br /&gt;
&lt;br /&gt;
Use the [http://flare.prefuse.org/ Flare library] to develop some cool and useful visualisation of information in the Moodle gradebook.  This can be designed as a Grade Report plugin (grade/report/visual) for Moodle 1.9.  To be really flexible and extensible, this should be built in several modular parts: &#039;&#039;harvesters&#039;&#039; to collect information (e.g., &amp;quot;grade entered&amp;quot;), &#039;&#039;reporters&#039;&#039; to summarize and normalize information, and &#039;&#039;adapters&#039;&#039; to feed that information into different visualization engines (so that if anyone ever wants to replace Flare, or if Flare changes, damage will be localized).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flare etc Mentor&#039;&#039;&#039;:  [mailto:gvwilson@cs.utoronto.ca Greg Wilson] ([http://www.cs.utoronto.ca/~gvwilson web site])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Moodle Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)]&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;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=17383&amp;amp;course=1 Penny Leach]&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;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;Co-mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=51473&amp;amp;course=5 Anthony Borrow]&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;
=== 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;Join the [http://moodle.org/mod/forum/discuss.php?d=92861 discussion thread]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Benchmark-Framework for Moodle===&lt;br /&gt;
&lt;br /&gt;
Moodle is developing rapidly - in terms of acceptance and features. One of the initial questions a potential user faces is &amp;quot;How much hardware do I need?&amp;quot;. And people who have Moodle running often want to know about the scalability.&lt;br /&gt;
&lt;br /&gt;
The answer to this simple question is complicated because&lt;br /&gt;
:a) various possible configurations of operating system, webserver, database server, PHP, Moodle itself&lt;br /&gt;
:b) different bottlenecks, CPU, RAM, disk, network, etc.&lt;br /&gt;
:c) the user behaviour, the expected peaks, acceptable response&lt;br /&gt;
:d) which feature of Moodle being used. etc.&lt;br /&gt;
&lt;br /&gt;
This project takes the approach of a test bench:&lt;br /&gt;
# do a fresh installation of Moodle&lt;br /&gt;
# import the test data provided&lt;br /&gt;
# install the server monitoring tools provided&lt;br /&gt;
# run regression tests provided on client(s)&lt;br /&gt;
# plot the measuered performance (client) and server load vs. requested load&lt;br /&gt;
# Tune, change parameters and back to step 4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentors&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=41095 Visvanath Ratnaweera], [http://moodle.org/user/view.php?id=18123  Wen Hao Chuang]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;: [http://moodle.org/mod/forum/discuss.php?d=93515 Forum &amp;quot;Student Projects&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
=== XML templates for admin settings ===&lt;br /&gt;
One of the disadvantages of the proliferation of settings --although part of Moodle&#039;s increasing flexibility and power-- is that a particular combination of settings may be difficult to reproduce from one site to the other. Also, administrators who want to &amp;quot;play with the settings&amp;quot; are afraid to be unable to restore the settings to their original values.&lt;br /&gt;
&lt;br /&gt;
The proposed solution is to implement a simple interface allowing administrators to export the settings in an XML file, which could later be restored. The features will include:&lt;br /&gt;
# Selection of settings to export (grouped in a tree format as displayed in the administrator panel)&lt;br /&gt;
# Naming and saving of XML files as special &amp;quot;templates&amp;quot; to be applied to a new install of Moodle for specific situations.&lt;br /&gt;
# An interface listing the templates (XML exported files with the &amp;quot;template&amp;quot; attribute set)&lt;br /&gt;
# A way to record the registered templates (beyond detecting the filesystem)&lt;br /&gt;
# A view of the settings available for restore in a given XML file&lt;br /&gt;
# Partial export/import&lt;br /&gt;
&lt;br /&gt;
Note: This needs to work nicely with the command-line installer code.&lt;br /&gt;
&lt;br /&gt;
Other ideas:&lt;br /&gt;
*An option to mark certain admins settings as is_sensitive() - a method in the admin setting base class. This would be true for passwords and things. Then you could have an option for exporting all the non-sensitive settings to attach to a forum post when you ask for help.&lt;br /&gt;
*Use YAML instead of XML (sam opinion: ugh, no!)&lt;br /&gt;
*Very detailed logging of admin setting changes - to allow for undos, among other things - or just simple logging of each set_config change with its new and previous value in the info field would be a good start&lt;br /&gt;
*A text field, like CVS commit messages, for people making admin changes&lt;br /&gt;
*The ability to &amp;quot;switch&amp;quot; a template on/off. While on, it overrides the original settings without replacing them. When off, the original settings are restored&lt;br /&gt;
*In addition to the previous point: ability to switch several templates on/off, and to organise them by priority. If a setting is defined in two templates, the one in the template with the highest priority overrides the other one.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)]&lt;br /&gt;
&lt;br /&gt;
===Create Moodle Plugin Templates===&lt;br /&gt;
&lt;br /&gt;
The M in Moodle is for Modular, meaning that it is designed to be extended, either for sharing with others or for customization within an institution.  There are, in fact, at least [https://docs.moodle.org/en/Developer_documentation#Make_a_new_plugin 20 different plugin types].  &lt;br /&gt;
&lt;br /&gt;
Your job is to create a template version of each of these plugins, with lots of inline documentation and examples of common Moodle code practices.  The example plugins should install correctly in Moodle 1.9 but not actually do very much, just show placeholders etc.  These template plugins should be useful starting points for new developers to start editing to create their own plugins.&lt;br /&gt;
&lt;br /&gt;
Some examples already exist but will need to be brought up to date and improved.&lt;br /&gt;
&lt;br /&gt;
* Activity modules:  http://cvs.moodle.org/contrib/plugins/mod/NEWMODULE/&lt;br /&gt;
* Blocks:  http://cvs.moodle.org/contrib/plugins/blocks/NEWBLOCK/&lt;br /&gt;
&lt;br /&gt;
Other plugin types don&#039;t have anything yet.&lt;br /&gt;
&lt;br /&gt;
* http://cvs.moodle.org/contrib/plugins/&lt;br /&gt;
&lt;br /&gt;
There is also a lot of scattered documention here in the [https://docs.moodle.org/en/Development Development wiki] such as this [https://docs.moodle.org/en/Development:Blocks Block Tutorial] (oldish).&lt;br /&gt;
&lt;br /&gt;
Requirements:&lt;br /&gt;
&lt;br /&gt;
* The initial scope of the project should be templates for /mod, /blocks, /enrol, /auth, /admin/report, /course/report, /grade/import, /grade/export, /grade/report, /question/type and /mod/assignment/type, although expanding it to more or all would be helpful if time permits and it does not diminish the quality and testing of the initial examples.&lt;br /&gt;
* Full consideration should be given to standards (such as using language packs, check for access permissions, XHTML, styles, etc.)  See the [[Coding guide]].&lt;br /&gt;
* Current examples in the core code should be considered in the development of each plugin when applicable.&lt;br /&gt;
* Each template should be documented in the form of a step-by-step tutorial such that a beginner to intermediate php programmer could recreate the steps for construction.  These instructions should be placed on https://docs.moodle.org under [[Development]].&lt;br /&gt;
* Field tested with real beginning/intermediate level developers and changes made based on reports from that field experience (we can help in finding these testers).&lt;br /&gt;
* Designed for Moodle 1.9.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;:  [https://docs.moodle.org/en/User:Gary_Anderson Gary Anderson]&lt;br /&gt;
&lt;br /&gt;
==Other ideas still being considered 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;
===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;
===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;
[[User:Martin Dougiamas|Martin Dougiamas]] 20:32, 25 March 2008 (CDT) :  I would rather see some base work being done first to allow &amp;quot;user profile plugins&amp;quot; similar to facebook applications so that ideas like this can be added easily later.&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;
&#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;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=140206&amp;amp;course=5 Ken Wilson]&lt;br /&gt;
&lt;br /&gt;
(I can&#039;t see a way of doing this securely.  You&#039;d basically have to give your PHP script the ability to rewrite themselves.  It might be possible to just do the checking part (extension of existing environment scripts probably) and at least give admins a neat report with links and information to do the upgrade more easily.  [[User:Martin Dougiamas|Martin Dougiamas]] 09:32, 31 March 2008 (CDT))&lt;br /&gt;
&lt;br /&gt;
===Enhance the current Reports feature===&lt;br /&gt;
&lt;br /&gt;
As I mentioned in this discussion thread:&lt;br /&gt;
http://moodle.org/mod/forum/post.php?reply=416580&lt;br /&gt;
&lt;br /&gt;
I think it might be a good idea to enhance the current Reports feature in moodle so that it could have some &amp;quot;data visualization&amp;quot; features and help administrators or teachers to analyze the trends as well as usage/learning pattern, etc.&lt;br /&gt;
&lt;br /&gt;
The spec needs to be worked on a little bit more, but there would be two approaches:&lt;br /&gt;
&lt;br /&gt;
(1) Enhance the current Reports features (codes will be integrated with future moodle version)&lt;br /&gt;
&lt;br /&gt;
(2) External integration with other open-source data mining solutions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=18123&amp;amp;course=1 Wen Hao Chuang]&lt;br /&gt;
&lt;br /&gt;
===Enhance the current Functional/Regression Testing Practice and Build a Framework===&lt;br /&gt;
&lt;br /&gt;
For moodle, other than the current build-in unit tests (based on SimpleTest framework, see: https://docs.moodle.org/en/Development:Unit_tests) and the existing limited Test Cases that are located at https://docs.moodle.org/en/Development:Tests. For larger institutions who has their own development teams, there is a missing link for good functional/regression testing tools/process/practice to automate some of QA efforts. There are some discussion about using Selenium IDE for such efforts (see http://moodle.org/mod/forum/discuss.php?d=43569) but it is not really organized or systematic. This project has the following goals:&lt;br /&gt;
&lt;br /&gt;
(1) To improve the existing test cases &amp;quot;system&amp;quot; (https://docs.moodle.org/en/Development:Tests) and to create a more comprehensive test plan and/or to modularized the test plan so that we could coordinate the testing efforts among different volunteer institutions to assure better quality of moodle (for future versions).&lt;br /&gt;
&lt;br /&gt;
(2) To investigate open-source functional/regression test tools (e.g. TestNG, JMeter, Selenium IDE/RC, etc.) to see if we could come up with scripts to automate most of the functional/regression tests.&lt;br /&gt;
&lt;br /&gt;
Also see: http://www.opensourcetesting.org/functional.php&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=18123&amp;amp;course=1 Wen Hao Chuang]&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>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Projects_for_new_developers&amp;diff=34675</id>
		<title>Projects for new developers</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Projects_for_new_developers&amp;diff=34675"/>
		<updated>2008-04-07T22:05:49Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* Enhance the current Reports feature */&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;
The student application period is now open. The (revised [http://groups.google.com/group/google-summer-of-code-announce/browse_thread/thread/9fa88f31aa401f70?hl=en]) deadline for applications is 00:00 UTC 8th April 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.&lt;br /&gt;
&lt;br /&gt;
===Web 2.0 language editing interface===&lt;br /&gt;
&lt;br /&gt;
Moodle is [[Translation|designed to be translated]] into many languages, and currently has over 70 language packs.&lt;br /&gt;
&lt;br /&gt;
The existing [[Language editing|language editing]] interface enables translators to check for untranslated words or phrases and also enables Moodle administrators to change words or phrases used in Moodle. However, it could really benefit from some improvements.&lt;br /&gt;
&lt;br /&gt;
This project will involve creating a Web 2.0 language editing interface which will:&lt;br /&gt;
&lt;br /&gt;
* Make use of Ajax technology&lt;br /&gt;
* Detect syntax errors and common problems in translated strings&lt;br /&gt;
* Include a search and replace feature for changing a particular word, for example the word &amp;quot;Course&amp;quot;, in every language string&lt;br /&gt;
* Display the differences between local and parent language packs&lt;br /&gt;
&lt;br /&gt;
In addition, the project may also include:&lt;br /&gt;
* A local modification import/export feature&lt;br /&gt;
* Further language pack import improvements&lt;br /&gt;
* Work on other long-standing language-related issues&lt;br /&gt;
&lt;br /&gt;
In general new ideas and fresh air in this area are welcome :-)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential mentors&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)], Koen Roggemans&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 (similar to http://buytaert.net/garland). 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.  The theme should be usable in Moodle 1.9 (although some thought about how it can work better in Moodle 2.0 would be good).&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; [http://moodle.org/user/view.php?id=423027&amp;amp;course=5 Mathieu Petit-Clair]&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;Mentors:&#039;&#039;&#039; [http://moodle.org/user/view.php?id=1 Martin Dougiamas], [http://moodle.org/user/view.php?id=152257 Jonathan Newman]&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.   The key thing is to gather together all the ideas generated by the community so far, carefully develop a Roles UI roadmap for changes in consultation with the community (screenshots will be most helpful) always making sure that the interface improves in usability, and then carefully implement the Roles UI roadmap. &lt;br /&gt;
&lt;br /&gt;
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 support for capability presets to simplify the interface and allow some things to be set from the &amp;quot;mod/edit&amp;quot; page.&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;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)]&lt;br /&gt;
&lt;br /&gt;
=== Usability review ===&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 thoughts).&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;
=== Animated grade statistics report ===&lt;br /&gt;
&lt;br /&gt;
Use the [http://flare.prefuse.org/ Flare library] to develop some cool and useful visualisation of information in the Moodle gradebook.  This can be designed as a Grade Report plugin (grade/report/visual) for Moodle 1.9.  To be really flexible and extensible, this should be built in several modular parts: &#039;&#039;harvesters&#039;&#039; to collect information (e.g., &amp;quot;grade entered&amp;quot;), &#039;&#039;reporters&#039;&#039; to summarize and normalize information, and &#039;&#039;adapters&#039;&#039; to feed that information into different visualization engines (so that if anyone ever wants to replace Flare, or if Flare changes, damage will be localized).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flare etc Mentor&#039;&#039;&#039;:  [mailto:gvwilson@cs.utoronto.ca Greg Wilson] ([http://www.cs.utoronto.ca/~gvwilson web site])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Moodle Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)]&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;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=17383&amp;amp;course=1 Penny Leach]&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;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;Co-mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=51473&amp;amp;course=5 Anthony Borrow]&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;
=== 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;Join the [http://moodle.org/mod/forum/discuss.php?d=92861 discussion thread]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Benchmark-Framework for Moodle===&lt;br /&gt;
&lt;br /&gt;
Moodle is developing rapidly - in terms of acceptance and features. One of the initial questions a potential user faces is &amp;quot;How much hardware do I need?&amp;quot;. And people who have Moodle running often want to know about the scalability.&lt;br /&gt;
&lt;br /&gt;
The answer to this simple question is complicated because&lt;br /&gt;
:a) various possible configurations of operating system, webserver, database server, PHP, Moodle itself&lt;br /&gt;
:b) different bottlenecks, CPU, RAM, disk, network, etc.&lt;br /&gt;
:c) the user behaviour, the expected peaks, acceptable response&lt;br /&gt;
:d) which feature of Moodle being used. etc.&lt;br /&gt;
&lt;br /&gt;
This project takes the approach of a test bench:&lt;br /&gt;
# do a fresh installation of Moodle&lt;br /&gt;
# import the test data provided&lt;br /&gt;
# install the server monitoring tools provided&lt;br /&gt;
# run regression tests provided on client(s)&lt;br /&gt;
# plot the measuered performance (client) and server load vs. requested load&lt;br /&gt;
# Tune, change parameters and back to step 4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentors&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=41095 Visvanath Ratnaweera], [http://moodle.org/user/view.php?id=18123  Wen Hao Chuang]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;: [http://moodle.org/mod/forum/discuss.php?d=93515 Forum &amp;quot;Student Projects&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
=== XML templates for admin settings ===&lt;br /&gt;
One of the disadvantages of the proliferation of settings --although part of Moodle&#039;s increasing flexibility and power-- is that a particular combination of settings may be difficult to reproduce from one site to the other. Also, administrators who want to &amp;quot;play with the settings&amp;quot; are afraid to be unable to restore the settings to their original values.&lt;br /&gt;
&lt;br /&gt;
The proposed solution is to implement a simple interface allowing administrators to export the settings in an XML file, which could later be restored. The features will include:&lt;br /&gt;
# Selection of settings to export (grouped in a tree format as displayed in the administrator panel)&lt;br /&gt;
# Naming and saving of XML files as special &amp;quot;templates&amp;quot; to be applied to a new install of Moodle for specific situations.&lt;br /&gt;
# An interface listing the templates (XML exported files with the &amp;quot;template&amp;quot; attribute set)&lt;br /&gt;
# A way to record the registered templates (beyond detecting the filesystem)&lt;br /&gt;
# A view of the settings available for restore in a given XML file&lt;br /&gt;
# Partial export/import&lt;br /&gt;
&lt;br /&gt;
Note: This needs to work nicely with the command-line installer code.&lt;br /&gt;
&lt;br /&gt;
Other ideas:&lt;br /&gt;
*An option to mark certain admins settings as is_sensitive() - a method in the admin setting base class. This would be true for passwords and things. Then you could have an option for exporting all the non-sensitive settings to attach to a forum post when you ask for help.&lt;br /&gt;
*Use YAML instead of XML (sam opinion: ugh, no!)&lt;br /&gt;
*Very detailed logging of admin setting changes - to allow for undos, among other things - or just simple logging of each set_config change with its new and previous value in the info field would be a good start&lt;br /&gt;
*A text field, like CVS commit messages, for people making admin changes&lt;br /&gt;
*The ability to &amp;quot;switch&amp;quot; a template on/off. While on, it overrides the original settings without replacing them. When off, the original settings are restored&lt;br /&gt;
*In addition to the previous point: ability to switch several templates on/off, and to organise them by priority. If a setting is defined in two templates, the one in the template with the highest priority overrides the other one.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)]&lt;br /&gt;
&lt;br /&gt;
===Create Moodle Plugin Templates===&lt;br /&gt;
&lt;br /&gt;
The M in Moodle is for Modular, meaning that it is designed to be extended, either for sharing with others or for customization within an institution.  There are, in fact, at least [https://docs.moodle.org/en/Developer_documentation#Make_a_new_plugin 20 different plugin types].  &lt;br /&gt;
&lt;br /&gt;
Your job is to create a template version of each of these plugins, with lots of inline documentation and examples of common Moodle code practices.  The example plugins should install correctly in Moodle 1.9 but not actually do very much, just show placeholders etc.  These template plugins should be useful starting points for new developers to start editing to create their own plugins.&lt;br /&gt;
&lt;br /&gt;
Some examples already exist but will need to be brought up to date and improved.&lt;br /&gt;
&lt;br /&gt;
* Activity modules:  http://cvs.moodle.org/contrib/plugins/mod/NEWMODULE/&lt;br /&gt;
* Blocks:  http://cvs.moodle.org/contrib/plugins/blocks/NEWBLOCK/&lt;br /&gt;
&lt;br /&gt;
Other plugin types don&#039;t have anything yet.&lt;br /&gt;
&lt;br /&gt;
* http://cvs.moodle.org/contrib/plugins/&lt;br /&gt;
&lt;br /&gt;
There is also a lot of scattered documention here in the [https://docs.moodle.org/en/Development Development wiki] such as this [https://docs.moodle.org/en/Development:Blocks Block Tutorial] (oldish).&lt;br /&gt;
&lt;br /&gt;
Requirements:&lt;br /&gt;
&lt;br /&gt;
* The initial scope of the project should be templates for /mod, /blocks, /enrol, /auth, /admin/report, /course/report, /grade/import, /grade/export, /grade/report, /question/type and /mod/assignment/type, although expanding it to more or all would be helpful if time permits and it does not diminish the quality and testing of the initial examples.&lt;br /&gt;
* Full consideration should be given to standards (such as using language packs, check for access permissions, XHTML, styles, etc.)  See the [[Coding guide]].&lt;br /&gt;
* Current examples in the core code should be considered in the development of each plugin when applicable.&lt;br /&gt;
* Each template should be documented in the form of a step-by-step tutorial such that a beginner to intermediate php programmer could recreate the steps for construction.  These instructions should be placed on https://docs.moodle.org under [[Development]].&lt;br /&gt;
* Field tested with real beginning/intermediate level developers and changes made based on reports from that field experience (we can help in finding these testers).&lt;br /&gt;
* Designed for Moodle 1.9.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;:  [https://docs.moodle.org/en/User:Gary_Anderson Gary Anderson]&lt;br /&gt;
&lt;br /&gt;
==Other ideas still being considered 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;
===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;
===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;
[[User:Martin Dougiamas|Martin Dougiamas]] 20:32, 25 March 2008 (CDT) :  I would rather see some base work being done first to allow &amp;quot;user profile plugins&amp;quot; similar to facebook applications so that ideas like this can be added easily later.&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;
&#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;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=140206&amp;amp;course=5 Ken Wilson]&lt;br /&gt;
&lt;br /&gt;
(I can&#039;t see a way of doing this securely.  You&#039;d basically have to give your PHP script the ability to rewrite themselves.  It might be possible to just do the checking part (extension of existing environment scripts probably) and at least give admins a neat report with links and information to do the upgrade more easily.  [[User:Martin Dougiamas|Martin Dougiamas]] 09:32, 31 March 2008 (CDT))&lt;br /&gt;
&lt;br /&gt;
===Enhance the current Reports feature===&lt;br /&gt;
&lt;br /&gt;
As I mentioned in this discussion thread:&lt;br /&gt;
http://moodle.org/mod/forum/post.php?reply=416580&lt;br /&gt;
&lt;br /&gt;
I think it might be a good idea to enhance the current Reports feature in moodle so that it could have some &amp;quot;data visualization&amp;quot; features and help administrators or teachers to analyze the trends as well as usage/learning pattern, etc.&lt;br /&gt;
&lt;br /&gt;
The spec needs to be worked on a little bit more, but there would be two approaches:&lt;br /&gt;
&lt;br /&gt;
(1) Enhance the current Reports features (codes will be integrated with future moodle version)&lt;br /&gt;
&lt;br /&gt;
(2) External integration with other open-source data mining solutions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=18123&amp;amp;course=1 Wen Hao Chuang]&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>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Projects_for_new_developers&amp;diff=34674</id>
		<title>Projects for new developers</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Projects_for_new_developers&amp;diff=34674"/>
		<updated>2008-04-07T22:02:20Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* Other ideas still being considered for GSOC */&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;
The student application period is now open. The (revised [http://groups.google.com/group/google-summer-of-code-announce/browse_thread/thread/9fa88f31aa401f70?hl=en]) deadline for applications is 00:00 UTC 8th April 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.&lt;br /&gt;
&lt;br /&gt;
===Web 2.0 language editing interface===&lt;br /&gt;
&lt;br /&gt;
Moodle is [[Translation|designed to be translated]] into many languages, and currently has over 70 language packs.&lt;br /&gt;
&lt;br /&gt;
The existing [[Language editing|language editing]] interface enables translators to check for untranslated words or phrases and also enables Moodle administrators to change words or phrases used in Moodle. However, it could really benefit from some improvements.&lt;br /&gt;
&lt;br /&gt;
This project will involve creating a Web 2.0 language editing interface which will:&lt;br /&gt;
&lt;br /&gt;
* Make use of Ajax technology&lt;br /&gt;
* Detect syntax errors and common problems in translated strings&lt;br /&gt;
* Include a search and replace feature for changing a particular word, for example the word &amp;quot;Course&amp;quot;, in every language string&lt;br /&gt;
* Display the differences between local and parent language packs&lt;br /&gt;
&lt;br /&gt;
In addition, the project may also include:&lt;br /&gt;
* A local modification import/export feature&lt;br /&gt;
* Further language pack import improvements&lt;br /&gt;
* Work on other long-standing language-related issues&lt;br /&gt;
&lt;br /&gt;
In general new ideas and fresh air in this area are welcome :-)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential mentors&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)], Koen Roggemans&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 (similar to http://buytaert.net/garland). 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.  The theme should be usable in Moodle 1.9 (although some thought about how it can work better in Moodle 2.0 would be good).&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; [http://moodle.org/user/view.php?id=423027&amp;amp;course=5 Mathieu Petit-Clair]&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;Mentors:&#039;&#039;&#039; [http://moodle.org/user/view.php?id=1 Martin Dougiamas], [http://moodle.org/user/view.php?id=152257 Jonathan Newman]&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.   The key thing is to gather together all the ideas generated by the community so far, carefully develop a Roles UI roadmap for changes in consultation with the community (screenshots will be most helpful) always making sure that the interface improves in usability, and then carefully implement the Roles UI roadmap. &lt;br /&gt;
&lt;br /&gt;
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 support for capability presets to simplify the interface and allow some things to be set from the &amp;quot;mod/edit&amp;quot; page.&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;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)]&lt;br /&gt;
&lt;br /&gt;
=== Usability review ===&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 thoughts).&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;
=== Animated grade statistics report ===&lt;br /&gt;
&lt;br /&gt;
Use the [http://flare.prefuse.org/ Flare library] to develop some cool and useful visualisation of information in the Moodle gradebook.  This can be designed as a Grade Report plugin (grade/report/visual) for Moodle 1.9.  To be really flexible and extensible, this should be built in several modular parts: &#039;&#039;harvesters&#039;&#039; to collect information (e.g., &amp;quot;grade entered&amp;quot;), &#039;&#039;reporters&#039;&#039; to summarize and normalize information, and &#039;&#039;adapters&#039;&#039; to feed that information into different visualization engines (so that if anyone ever wants to replace Flare, or if Flare changes, damage will be localized).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flare etc Mentor&#039;&#039;&#039;:  [mailto:gvwilson@cs.utoronto.ca Greg Wilson] ([http://www.cs.utoronto.ca/~gvwilson web site])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Moodle Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)]&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;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;:  [http://moodle.org/user/view.php?id=17383&amp;amp;course=1 Penny Leach]&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;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;Co-mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=51473&amp;amp;course=5 Anthony Borrow]&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;
=== 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;Join the [http://moodle.org/mod/forum/discuss.php?d=92861 discussion thread]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Benchmark-Framework for Moodle===&lt;br /&gt;
&lt;br /&gt;
Moodle is developing rapidly - in terms of acceptance and features. One of the initial questions a potential user faces is &amp;quot;How much hardware do I need?&amp;quot;. And people who have Moodle running often want to know about the scalability.&lt;br /&gt;
&lt;br /&gt;
The answer to this simple question is complicated because&lt;br /&gt;
:a) various possible configurations of operating system, webserver, database server, PHP, Moodle itself&lt;br /&gt;
:b) different bottlenecks, CPU, RAM, disk, network, etc.&lt;br /&gt;
:c) the user behaviour, the expected peaks, acceptable response&lt;br /&gt;
:d) which feature of Moodle being used. etc.&lt;br /&gt;
&lt;br /&gt;
This project takes the approach of a test bench:&lt;br /&gt;
# do a fresh installation of Moodle&lt;br /&gt;
# import the test data provided&lt;br /&gt;
# install the server monitoring tools provided&lt;br /&gt;
# run regression tests provided on client(s)&lt;br /&gt;
# plot the measuered performance (client) and server load vs. requested load&lt;br /&gt;
# Tune, change parameters and back to step 4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentors&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=41095 Visvanath Ratnaweera], [http://moodle.org/user/view.php?id=18123  Wen Hao Chuang]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Discussion&#039;&#039;&#039;: [http://moodle.org/mod/forum/discuss.php?d=93515 Forum &amp;quot;Student Projects&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
=== XML templates for admin settings ===&lt;br /&gt;
One of the disadvantages of the proliferation of settings --although part of Moodle&#039;s increasing flexibility and power-- is that a particular combination of settings may be difficult to reproduce from one site to the other. Also, administrators who want to &amp;quot;play with the settings&amp;quot; are afraid to be unable to restore the settings to their original values.&lt;br /&gt;
&lt;br /&gt;
The proposed solution is to implement a simple interface allowing administrators to export the settings in an XML file, which could later be restored. The features will include:&lt;br /&gt;
# Selection of settings to export (grouped in a tree format as displayed in the administrator panel)&lt;br /&gt;
# Naming and saving of XML files as special &amp;quot;templates&amp;quot; to be applied to a new install of Moodle for specific situations.&lt;br /&gt;
# An interface listing the templates (XML exported files with the &amp;quot;template&amp;quot; attribute set)&lt;br /&gt;
# A way to record the registered templates (beyond detecting the filesystem)&lt;br /&gt;
# A view of the settings available for restore in a given XML file&lt;br /&gt;
# Partial export/import&lt;br /&gt;
&lt;br /&gt;
Note: This needs to work nicely with the command-line installer code.&lt;br /&gt;
&lt;br /&gt;
Other ideas:&lt;br /&gt;
*An option to mark certain admins settings as is_sensitive() - a method in the admin setting base class. This would be true for passwords and things. Then you could have an option for exporting all the non-sensitive settings to attach to a forum post when you ask for help.&lt;br /&gt;
*Use YAML instead of XML (sam opinion: ugh, no!)&lt;br /&gt;
*Very detailed logging of admin setting changes - to allow for undos, among other things - or just simple logging of each set_config change with its new and previous value in the info field would be a good start&lt;br /&gt;
*A text field, like CVS commit messages, for people making admin changes&lt;br /&gt;
*The ability to &amp;quot;switch&amp;quot; a template on/off. While on, it overrides the original settings without replacing them. When off, the original settings are restored&lt;br /&gt;
*In addition to the previous point: ability to switch several templates on/off, and to organise them by priority. If a setting is defined in two templates, the one in the template with the highest priority overrides the other one.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mentor:&#039;&#039;&#039; [http://moodle.org/user/view.php?id=12863&amp;amp;course=5 Petr Skoda (Skodak)]&lt;br /&gt;
&lt;br /&gt;
===Create Moodle Plugin Templates===&lt;br /&gt;
&lt;br /&gt;
The M in Moodle is for Modular, meaning that it is designed to be extended, either for sharing with others or for customization within an institution.  There are, in fact, at least [https://docs.moodle.org/en/Developer_documentation#Make_a_new_plugin 20 different plugin types].  &lt;br /&gt;
&lt;br /&gt;
Your job is to create a template version of each of these plugins, with lots of inline documentation and examples of common Moodle code practices.  The example plugins should install correctly in Moodle 1.9 but not actually do very much, just show placeholders etc.  These template plugins should be useful starting points for new developers to start editing to create their own plugins.&lt;br /&gt;
&lt;br /&gt;
Some examples already exist but will need to be brought up to date and improved.&lt;br /&gt;
&lt;br /&gt;
* Activity modules:  http://cvs.moodle.org/contrib/plugins/mod/NEWMODULE/&lt;br /&gt;
* Blocks:  http://cvs.moodle.org/contrib/plugins/blocks/NEWBLOCK/&lt;br /&gt;
&lt;br /&gt;
Other plugin types don&#039;t have anything yet.&lt;br /&gt;
&lt;br /&gt;
* http://cvs.moodle.org/contrib/plugins/&lt;br /&gt;
&lt;br /&gt;
There is also a lot of scattered documention here in the [https://docs.moodle.org/en/Development Development wiki] such as this [https://docs.moodle.org/en/Development:Blocks Block Tutorial] (oldish).&lt;br /&gt;
&lt;br /&gt;
Requirements:&lt;br /&gt;
&lt;br /&gt;
* The initial scope of the project should be templates for /mod, /blocks, /enrol, /auth, /admin/report, /course/report, /grade/import, /grade/export, /grade/report, /question/type and /mod/assignment/type, although expanding it to more or all would be helpful if time permits and it does not diminish the quality and testing of the initial examples.&lt;br /&gt;
* Full consideration should be given to standards (such as using language packs, check for access permissions, XHTML, styles, etc.)  See the [[Coding guide]].&lt;br /&gt;
* Current examples in the core code should be considered in the development of each plugin when applicable.&lt;br /&gt;
* Each template should be documented in the form of a step-by-step tutorial such that a beginner to intermediate php programmer could recreate the steps for construction.  These instructions should be placed on https://docs.moodle.org under [[Development]].&lt;br /&gt;
* Field tested with real beginning/intermediate level developers and changes made based on reports from that field experience (we can help in finding these testers).&lt;br /&gt;
* Designed for Moodle 1.9.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;:  [https://docs.moodle.org/en/User:Gary_Anderson Gary Anderson]&lt;br /&gt;
&lt;br /&gt;
==Other ideas still being considered 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;
===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;
===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;
[[User:Martin Dougiamas|Martin Dougiamas]] 20:32, 25 March 2008 (CDT) :  I would rather see some base work being done first to allow &amp;quot;user profile plugins&amp;quot; similar to facebook applications so that ideas like this can be added easily later.&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;
&#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;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=140206&amp;amp;course=5 Ken Wilson]&lt;br /&gt;
&lt;br /&gt;
(I can&#039;t see a way of doing this securely.  You&#039;d basically have to give your PHP script the ability to rewrite themselves.  It might be possible to just do the checking part (extension of existing environment scripts probably) and at least give admins a neat report with links and information to do the upgrade more easily.  [[User:Martin Dougiamas|Martin Dougiamas]] 09:32, 31 March 2008 (CDT))&lt;br /&gt;
&lt;br /&gt;
===Enhance the current Reports feature===&lt;br /&gt;
&lt;br /&gt;
As I mentioned in this discussion thread:&lt;br /&gt;
http://moodle.org/mod/forum/post.php?reply=416580&lt;br /&gt;
&lt;br /&gt;
I think it might be a good idea to enhance the current Reports feature in moodle so that it could have some &amp;quot;data visualization&amp;quot; features and help administrators or teachers to analyze the trends as well as usage/learning pattern, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Potential Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=18123&amp;amp;course=1 Wen Hao Chuang]&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>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=System_Monitoring_and_Server_Statistic_Software&amp;diff=33532</id>
		<title>System Monitoring and Server Statistic Software</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=System_Monitoring_and_Server_Statistic_Software&amp;diff=33532"/>
		<updated>2008-03-12T22:19:15Z</updated>

		<summary type="html">&lt;p&gt;Chuang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article started off as a brain-dump by Wen Hao Chuang. Hopefully more people will contribute to this article in the near future.&lt;br /&gt;
&lt;br /&gt;
The [http://www.mrunix.net/webalizer/ Webalizer]&lt;br /&gt;
The Webalizer is a fast, free web server log file analysis program. It produces highly detailed, easily configurable usage reports in HTML format, for viewing with a standard web browser.&lt;br /&gt;
&lt;br /&gt;
[http://www.nagios.org/ Nagios]&lt;br /&gt;
Nagios is a host and service monitor designed to inform you of network problems before your clients, end-users or managers do. It has been designed to run under the Linux operating system, but works fine under most *NIX variants as well. The monitoring daemon runs intermittent checks on hosts and services you specify using external &amp;quot;plugins&amp;quot; which return status information to Nagios. When problems are encountered, the daemon can send notifications out to administrative contacts in a variety of different ways (email, instant message, SMS, etc.). Current status information, historical logs, and reports can all be accessed via a web browser.&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Administrator_documentation&amp;diff=33483</id>
		<title>Administrator documentation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Administrator_documentation&amp;diff=33483"/>
		<updated>2008-03-11T21:54:03Z</updated>

		<summary type="html">&lt;p&gt;Chuang: /* Security, Performance and Roles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The purpose of this page is to list useful links by general topics for administrators.&lt;br /&gt;
&lt;br /&gt;
== Installation &amp;amp; Upgrading ==&lt;br /&gt;
&lt;br /&gt;
*[[Installation Quickstart]] for an overview of the installation steps&lt;br /&gt;
*[[Installing Moodle]] for detailed installation instructions&lt;br /&gt;
*[[Installation FAQ]]&lt;br /&gt;
*[[Installing AMP|Installing Apache, MySQL and PHP]]&lt;br /&gt;
*[[Upgrading|Upgrading Moodle]]&lt;br /&gt;
&lt;br /&gt;
== System-specific Instructions &amp;amp; Packages ==&lt;br /&gt;
&lt;br /&gt;
* [[SUSE Linux Server 10|Automated Installation Guide for SUSE Linux Enterprise Server 10]] operating system&lt;br /&gt;
* [[RedHat Linux installation|Step by Step Installation Guide for RedHat]] operating system&lt;br /&gt;
* [[Debian GNU/Linux installation|Step by Step Installation Guide for Debian GNU/Linux]] operating system&lt;br /&gt;
* [[Step-by-step Install Guide for Ubuntu]]&lt;br /&gt;
* [[Windows installation|Complete Install Packages for Windows XP and instructions for Windows NT/2000/2003 servers]]&lt;br /&gt;
* [[Complete Install Packages for Mac OS X | Complete Install Packages for Mac OS X 10.3/10.4/10.5]]&lt;br /&gt;
* [[Step-by-step Guide for Installing Moodle on Mac OS X 10.4 Client|Step by Step Installation on a Mac OS X 10.4 Client using the internal web server]]&lt;br /&gt;
* [[Step by Step Installation on a Mac OS X 10.5 Server]]&lt;br /&gt;
* [[1and1_MySQL_installation | Installation on 1and1 web hosting]]&lt;br /&gt;
* [[OLPC XS installation|Step by Step Installation Guide for the One Laptop per Child XS Server (Beta)]]&lt;br /&gt;
&lt;br /&gt;
==Security, Performance and Roles==&lt;br /&gt;
&lt;br /&gt;
*[[Security]] contains important security procedures for a production site&lt;br /&gt;
*[[Performance | Performance and optimization]] for ideas on improving the speed of your installation&lt;br /&gt;
*[[Manage roles | Managing roles]] For Moodle 1.7 and later.&lt;br /&gt;
*[[suhosin]] is an advanced protection system for PHP installation. It was designed to protect servers and users from known and unknown flaws in PHP applications and the PHP core.&lt;br /&gt;
&lt;br /&gt;
== FAQs ==&lt;br /&gt;
&lt;br /&gt;
*[[Installation FAQ]]&lt;br /&gt;
*[[Administration FAQ]]&lt;br /&gt;
*[[Backup FAQ]]&lt;br /&gt;
&lt;br /&gt;
== Configuration Settings ==&lt;br /&gt;
*[[Site administration block]] contains configuration setting links&lt;br /&gt;
*[[Notification page]] used to update versions&lt;br /&gt;
*[[Variables]]&lt;br /&gt;
*[[Site settings]]&lt;br /&gt;
*[[Themes]]&lt;br /&gt;
*[[Language]]&lt;br /&gt;
*[[Activity modules administration]]&lt;br /&gt;
*[[Blocks administration]]&lt;br /&gt;
*[[Filters]]&lt;br /&gt;
*[[Backup settings]]&lt;br /&gt;
*[[Editor settings]]&lt;br /&gt;
*[[Calendar settings]]&lt;br /&gt;
*[[Maintenance mode]]&lt;br /&gt;
&lt;br /&gt;
* See also: [[Location of admin settings in 1.7|Comparison between configuration settings in Moodle 1.6 &amp;amp; 1.7]]&lt;br /&gt;
&lt;br /&gt;
==User Management==&lt;br /&gt;
&lt;br /&gt;
*[[Authentication]]&lt;br /&gt;
*[[Edit user accounts]] &lt;br /&gt;
*[[Add new user|Add a new user]] - on a site&lt;br /&gt;
*[[Flat file|Upload users]] - from a file to a site&lt;br /&gt;
*[[Enrolment plugins]]&lt;br /&gt;
*[[Roles and capabilities|Assigning user a role]] - typical assignments include:&lt;br /&gt;
**[[Students|Enrol students in a course]]&lt;br /&gt;
**[[Courses (administrator)|Assign teachers]] - to a course&lt;br /&gt;
**[[Assign creators|Assign course creators]] - in a site&lt;br /&gt;
**[[Assign administrators]] - in a site&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
&lt;br /&gt;
*[[Courses (administrator)|Courses]] and [[Course formats|course formats]]&lt;br /&gt;
*[[Reports (administrator)]] and [[Logs]]&lt;br /&gt;
*[[Site files]]&lt;br /&gt;
*[[Moodle database|Database]]&lt;br /&gt;
*[[Environment]]&lt;br /&gt;
*[[Moodle Network]] and Moodle Community Hub&lt;br /&gt;
*[[Streaming Media]]&lt;br /&gt;
*[[Case studies (administrator)]]&lt;br /&gt;
*[[Anti-virus]]&lt;br /&gt;
*[[System Monitoring and Server Statistic Software]]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[:Category:Administrator | Index of all Administrator-related pages]]&lt;br /&gt;
*[[Integrations]]&lt;br /&gt;
*[[CVS for Administrators]]&lt;br /&gt;
*[[Email processing]]&lt;br /&gt;
*[[Search engine optimization]]&lt;br /&gt;
*[[Messaging]]&lt;br /&gt;
*[[Migration]]&lt;br /&gt;
*[[Metacourses]]&lt;br /&gt;
*[[Block layout]]&lt;br /&gt;
*[[Customizing Moodle]]&lt;br /&gt;
*[[Administrator do&#039;s and don&#039;ts]]&lt;br /&gt;
*[http://download.moodle.org/docs/using_moodle/ch16_server_admin.pdf Using Moodle Chapter 16: Moodle Administration]&lt;br /&gt;
&lt;br /&gt;
[[Category: Administrator]]&lt;br /&gt;
[[cs:Rukověť správce]]&lt;br /&gt;
[[es:Documentación para Administradores]]&lt;br /&gt;
[[eu:Kudeatzaileentzako dokumentazioa]]&lt;br /&gt;
[[fr:Documentation administrateur]]&lt;br /&gt;
[[ja:管理者ドキュメント]]&lt;br /&gt;
[[ko:관리자 문서]]&lt;br /&gt;
[[nl:Documentatie voor beheerders]]&lt;br /&gt;
[[pt:Documentação para administradores]]&lt;br /&gt;
[[ru:Администраторам]]&lt;br /&gt;
[[zh:管理员文档]]&lt;br /&gt;
[[pl:Administrator documentation]]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=suhosin&amp;diff=33463</id>
		<title>suhosin</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=suhosin&amp;diff=33463"/>
		<updated>2008-03-11T00:08:34Z</updated>

		<summary type="html">&lt;p&gt;Chuang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Suhosin is an advanced protection system for PHP installations. It was designed to protect servers and users from known and unknown flaws in PHP applications and the PHP core. Suhosin comes in two independent parts, that can be used separately or in combination. The first part is a small patch against the PHP core, that implements a few low-level protections against bufferoverflows or format string vulnerabilities and the second part is a powerful PHP extension that implements all the other protections.&lt;br /&gt;
&lt;br /&gt;
For more information about suhosin, please see: http://www.hardened-php.net/suhosin/&lt;br /&gt;
&lt;br /&gt;
Some moodle bug tracker tickets and moodle discussions also mentioned about suhosin:&lt;br /&gt;
&lt;br /&gt;
http://tracker.moodle.org/browse/MDL-9602&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=System_Monitoring_and_Server_Statistic_Software&amp;diff=33103</id>
		<title>System Monitoring and Server Statistic Software</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=System_Monitoring_and_Server_Statistic_Software&amp;diff=33103"/>
		<updated>2008-03-01T00:49:50Z</updated>

		<summary type="html">&lt;p&gt;Chuang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [http://www.mrunix.net/webalizer/ Webalizer]&lt;br /&gt;
The Webalizer is a fast, free web server log file analysis program. It produces highly detailed, easily configurable usage reports in HTML format, for viewing with a standard web browser.&lt;br /&gt;
&lt;br /&gt;
[http://www.nagios.org/ Nagios]&lt;br /&gt;
Nagios is a host and service monitor designed to inform you of network problems before your clients, end-users or managers do. It has been designed to run under the Linux operating system, but works fine under most *NIX variants as well. The monitoring daemon runs intermittent checks on hosts and services you specify using external &amp;quot;plugins&amp;quot; which return status information to Nagios. When problems are encountered, the daemon can send notifications out to administrative contacts in a variety of different ways (email, instant message, SMS, etc.). Current status information, historical logs, and reports can all be accessed via a web browser.&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=System_Monitoring_and_Server_Statistic_Software&amp;diff=33102</id>
		<title>System Monitoring and Server Statistic Software</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=System_Monitoring_and_Server_Statistic_Software&amp;diff=33102"/>
		<updated>2008-03-01T00:49:15Z</updated>

		<summary type="html">&lt;p&gt;Chuang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [http://www.mrunix.net/webalizer/ Webalizer]&lt;br /&gt;
&lt;br /&gt;
[http://www.nagios.org/ Nagios]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=System_Monitoring_and_Server_Statistic_Software&amp;diff=33101</id>
		<title>System Monitoring and Server Statistic Software</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=System_Monitoring_and_Server_Statistic_Software&amp;diff=33101"/>
		<updated>2008-03-01T00:48:12Z</updated>

		<summary type="html">&lt;p&gt;Chuang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [http://www.mrunix.net/webalizer/ Webalizer]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=Webalizer&amp;diff=33100</id>
		<title>Webalizer</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=Webalizer&amp;diff=33100"/>
		<updated>2008-03-01T00:45:47Z</updated>

		<summary type="html">&lt;p&gt;Chuang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Webalizer is a fast, free web server log file analysis program. It produces highly detailed, easily configurable usage reports in HTML format, for viewing with a standard web browser.&lt;br /&gt;
&lt;br /&gt;
It was written to solve several problems that I had with currently available analysis packages. A vast majority of them were written in Perl or some other scripting language, and took forever to run. Some were not free. Some even produced wrong results, or results that were not in a format I found very useful.&lt;br /&gt;
&lt;br /&gt;
In order to get the stats I wanted, in a format that I liked, I wrote The Webalizer, and have made it available here, to anyone who wants it, for any purpose. Starting as a simple Perl script with limited capabilities, it has grown into a full featured, robust and fast analysis tool, being used by thousands of systems around the globe.&lt;br /&gt;
&lt;br /&gt;
For more info please see http://www.mrunix.net/webalizer/&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/test/index.php?title=System_Monitoring_and_Server_Statistic_Software&amp;diff=33099</id>
		<title>System Monitoring and Server Statistic Software</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/test/index.php?title=System_Monitoring_and_Server_Statistic_Software&amp;diff=33099"/>
		<updated>2008-03-01T00:45:10Z</updated>

		<summary type="html">&lt;p&gt;Chuang: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [Webalizer]&lt;/div&gt;</summary>
		<author><name>Chuang</name></author>
	</entry>
</feed>