Browse files

Significant improvements to distributed documentation

  • Loading branch information...
1 parent 1ff53f2 commit 175ccb493f1214bd6dac5024a189b275fd41632e martin committed Aug 19, 2002
Showing with 304 additions and 31 deletions.
  1. +26 −6 doc/background.html
  2. +4 −2 doc/contents.html
  3. +2 −2 doc/credits.html
  4. +224 −12 doc/developer.html
  5. +34 −0 doc/features.html
  6. +13 −8 doc/future.html
  7. +1 −1 doc/intro.html
32 doc/background.html
@@ -8,12 +8,32 @@
-<P>Right now, Moodle is still in early development. Some features are unfinished,
- and there is a way to go yet before it could be compared to commercial tools
- such as WebCT or Blackboard.</P>
-<P>That said, it has already been used to successfully conduct a postgraduate
- course at Curtin University of Technology, and many improvements are planned
- in the near future.</P>
+<P>Moodle is an active and evolving work in progress.</P>
+<P>I've been working on it, in some way or other, for several years. It started
+ in the 90's when I was webmaster at <a href="">Curtin University
+ of Technology</a> and a system administrator of their WebCT installation. I
+ encountered many frustrations with the WebCT beast and developed an itch that
+ needed scratching - there had to be a better way (no, not Blackboard :-)</P>
+<P>I also know a lot of people in schools and smaller institutions (and some big
+ ones!) who want to make better use of the Internet but don't know where to start
+ in the maze of technologies and pedagogies that are out there. I've always hoped
+ there would be a Free alternative that such people could use to help them move
+ their teaching skills into the online environment.</P>
+<P>My strong beliefs in the unrealised possibilities of Internet-based education
+ led me to complete a Masters and then a PhD in Education, combining my former
+ career in Computer Science with newly constructed knowledge about the nature
+ of learning and collaboration.</P>
+<P>Since then Moodle has progressed through several very different prototypes
+ to achieve something I'm ready to call version 1.0 and release upon an unsuspecting
+ world (August 20, 2002). I've been using it in several courses and find it an
+ extremely usable and reliable tool for building high-quality online courses
+ - others are reporting the same. Given the context in which it's been designed,
+ it works particularly well for smaller institutions, or for smaller, more intimate
+ classes.</P>
+<P>When compared to the big commercial tools such as WebCT or Blackboard I think
+ it still falls short in some areas (such as scalability and standards support),
+ but it comes out ahead in many others (see <a href="features.html">Features</a>).
<P ALIGN="CENTER"><FONT SIZE="1"><A HREF="index.html" TARGET="_top">Moodle Documentation</A></FONT></P>
6 doc/contents.html
@@ -8,8 +8,10 @@
<FONT SIZE=2 FACE="san-serif">
<P><B>Moodle Documentation</B></P>
<LI><A TARGET="main" HREF="intro.html">Introduction</A>
- <LI><A TARGET="main" HREF="background.html">Background</A>
- <LI><A TARGET="main" HREF="install.html">Installation</A>
+<LI><A TARGET="main" HREF="background.html">Background</A>
+<LI><a href="features.html">Features</a>
+<LI><A TARGET="main" HREF="install.html">Installation</A>
<LI><A TARGET="main" HREF="teacher.html">Teacher Manual</A>
<LI><A TARGET="main" HREF="developer.html">Developer Manual</A>
4 doc/credits.html
@@ -8,8 +8,8 @@
-<P><B>Moodle </B>itself is Copyright &copy; 2001, <A HREF="">
- Martin Dougiamas</A>. &nbsp;It is distributed under the <A HREF="licence.html">
+<P><B>Moodle </B>itself is Copyright &copy; 2001-2002, <A HREF="">
+ Martin Dougiamas</A>. &nbsp;It is distributed under the <A HREF="licence.html">
GNU Public License</A>.</P>
<H3>Other contributors</H3>
236 doc/developer.html
@@ -4,20 +4,232 @@
<H2>Developers Manual</H2>
-<H3>Moodle architecture</H3>
-<P>This section will describe the overall architecture for Moodle and some of
- the major design decisions that were made during development.</P>
-<H3>Plug-in modules</H3>
-<P>Moodle has been designed to be modular, so that new learning activities can
- be easily written and &quot;plugged-in&quot; to a Moodle installation by the
- system administrator.</P>
-<P>This section will describe the Plug-in API and provide a simple example of
- a Moodle plug-in.</P>
+<P>This document describes some of Moodle's design and how you can contribute.</P>
+<P>Sections in this document:</P>
+ <LI><A HREF="#architecture">Moodle architecture</A></LI>
+ <LI><A HREF="#contribute">How you can contribute</A>
+ <ol>
+ <li><A HREF="#activities">Learning activities</A></li>
+ <li><A HREF="#themes">Themes</A></li>
+ <li><A HREF="#languages">Languages</A></li>
+ <li><A HREF="#database">Database Schemas</A></li>
+ <li><a href="#courseformats">Course formats</a></li>
+ <li><a href="#doc">Documentation and articles</a></li>
+ <li><a href="#bugs">Participating in the bug tracker</a></li>
+ </ol>
+ </LI>
+<H3><a name="architecture"></a>Moodle architecture</H3>
+<P>From a system administrator's perspective, Moodle has been designed according
+ to the following criteria:</P>
+ <li><strong>Moodle should run on the widest variety of platforms</strong><br>
+ <br>
+ The web application platform that runs on most platforms is PHP combined with
+ MySQL, and this is the environment that Moodle has been developed in (on Linux,
+ Windows, and Mac OS X). Moodle also uses the ADOdb library for database abstraction,
+ which means Moodle can use <a href="">more
+ than ten different brands of database</a> (unfortunately, though, it can not
+ yet <em><strong>set up tables</strong></em> in all these databases - more
+ on this later). <br>
+ </li>
+ <li><strong>Moodle should be easy to install, learn and modify</strong><br>
+ <br>
+ Early prototypes of Moodle (1999) were built using <a href="">Zope</a>
+ - an advanced object-oriented web application server. Unfortunately I found
+ that although the technology was pretty cool, it had a very steep learning
+ curve and was not very flexible in terms of system administration. The PHP
+ scripting language, on the other hand, is very easy to get into (especially
+ if you've done any programming using any other scripting language). Early
+ on I made the decision to avoid using a class-oriented design - again, to
+ keep it simple to understand for novices. Code reuse is instead achieved by
+ libraries of clearly-named functions and consistent layout of script files.
+ PHP is also easy to install (binaries are available for every platform) and
+ is widely available to the point that most web hosting services provide it
+ as standard.<br>
+ </li>
+ <li><strong>It should be easy to upgrade from one version to the next</strong><br>
+ <br>
+ Moodle knows what version it is (as well as the versions of all plug-in modules)
+ and a mechanism has been built-in so that Moodle can properly upgrade itself
+ to new versions (for example it can rename database tables or add new fields).
+ If using CVS in Unix for example, one can just do a &quot;cvs update -d&quot;
+ and then visit the site home page to complete an upgrade.<br>
+ </li>
+ <li><strong>It should be modular to allow for growth</strong><br>
+ <br>
+ Moodle has a number of features that are modular, including themes, activities,
+ interface languages, database schemas and course formats. This allows anyone
+ to add features to the main codebase or to even distribute them separately.
+ More on this below in the next section.<br>
+ </li>
+ <li><strong>It should be able to be used in conjunction with other systems</strong><br>
+ <br>
+ One thing Moodle does is keep all files for one course within a single, normal
+ directory on the server. This would allow a system administrator to provide
+ seamless forms of file-level access for each teacher, such as Appletalk, SMB,
+ NFS, FTP, WebDAV and so on. Otherwise, there is work yet to do. Features planned
+ for Moodle in future versions include: flexible connection to existing databases
+ of user details and grades; import and export of Moodle data using XML-based
+ formats; and increased use of style sheets for interface formatting (so that
+ it can be integrated visually into other web sites).</li>
+<H3><a name="contribute" id="contribute"></a>How you can contribute</H3>
+<P>As mentioned above, Moodle has a number of features that are modular. Even
+ if you are not a programmer there are things you can change or help with.</P>
+<P><strong><a name="activities" id="activities"></a>Learning Activities</strong></P>
+ <p>These are by far the most important modules, and reside in the 'mod' directory.
+ There are six default modules: assignment, choice, forum, journal, reading,
+ and survey. Each module is in a separate subdirectory and consists of the
+ following mandatory elements (plus extra scripts unique to each module):</p>
+ <ul>
+ <li>mod.html: a form to set up or update an instance of this module</li>
+ <li>version.php: defines some meta-info and provides upgrading code</li>
+ <li>icon.gif: a 16x16 icon for the module</li>
+ <li>db/: SQL dumps of all the required db tables and data (for each database
+ type) </li>
+ <li>index.php: a page to list all instances in a course</li>
+ <li>view.php: a page to view a particular instance</li>
+ <li>lib.php: any/all functions defined by the module should be in here. If
+ the modulename if called widget, then the required functions include:
+ <ul>
+ <li>widget_add_instance() - code to add a new instance of widget</li>
+ <li>widget_update_instance() - code to update an existing instance</li>
+ <li>widget_delete_instance() - code to delete an instance</li>
+ <li>widget_user_outline() - given an instance, return a summary of a user's
+ contribution</li>
+ <li>widget_user_complete() - given an instance, print details of a user's
+ contribution<br>
+ </li>
+ <li>To avoid possible conflict, any module functions should be named starting
+ with widget_ and any constants you define should start with WIDGET_
+ </li>
+ </ul>
+ </li>
+ <li>Lastly, each module will have some language files that contain strings
+ for that module. See below.<br>
+ </li>
+ </ul>
+<p> <strong><a name="themes" id="themes"></a>Themes</strong></p>
+ <p>Themes (or skins) define the look of a site. A number of simple themes are
+ provided in the main distribution, but you may want to copy one of these and
+ customise it to suit your own needs (eg local logo, colours, styles, graphics
+ etc)</p>
+ <p>Each theme is in a subdirectory of the &quot;theme&quot; directory. You can
+ copy the &quot;standard&quot; theme as a template.<br>
+ </p>
+<p><strong><a name="languages" id="languages"></a>Languages</strong></p>
+ <p>Moodle has been designed for internationalisation. Each 'string' or 'page'
+ of text that is displayed as part of the interface is drawn from a set of
+ language files. Each language is a subdirectory of the directory 'lang'. The
+ structure of the lang directory is as follows:</p>
+ <p><strong>lang/en</strong> - directory containing all files for one language
+ (eg English)</p>
+ <ul>
+ <li>moodle.php - strings for main interface</li>
+ <li>assignment.php - strings for assignment module</li>
+ <li>choice.php - strings for choice module</li>
+ <li>forum.php - strings for forum module</li>
+ <li>journal.php - strings for journal module </li>
+ <li>reading.php - strings for reading module</li>
+ <li>survey.php - strings for reading module</li>
+ <li>.... plus other modules if any.<br>
+ <br>
+ A string is called from these files using the <strong><em>get_string()</em></strong><em>
+ </em>or<em> <strong>print_string()</strong> </em>functions. Each string
+ supports variable substitution, to support variable ordering in different
+ languages.<em><br>
+ <br>
+ </em>eg $strdueby = get_string(&quot;assignmentdueby&quot;, &quot;assignment&quot;,
+ userdate($date)); <br>
+ <br>
+ If a string doesn't exist in a particular language, then the equivalent
+ in English will automatically be used instead.</li>
+ </ul>
+ <p><strong>lang/en/help</strong> - contains whole help pages (for popup context-sensitive
+ help)</p>
+ <blockquote>
+ <p>Main help pages are situated here, while help pages specific to each module
+ are located in subdirectories with the module's name.</p>
+ <p>You can insert a helpbutton in a page with the helpbutton function.</p>
+ <p>eg helpbutton(&quot;text&quot;, &quot;Click here for help about text&quot;);</p>
+ <p>and for modules:</p>
+ <p>helpbutton(&quot;forumtypes&quot;, &quot;Forum types&quot;, &quot;forum&quot;);</p>
+ </blockquote>
+ <strong><a name="database" id="database"></a>Database Schemas</strong></p>
+ <p>Given a working database with defined tables, the intentionally simple SQL
+ used in Moodle should work fine with a wide variety of database brands.</p>
+ <p>A problem exists with <strong>automatically creating</strong> new tables
+ in a database, which is what Moodle tries to do upon initial installation.
+ Because every database is very different, there doesn't yet exist any way
+ to do this in a platform-independent way. To support this automation in each
+ database, schemas can be created that list the required SQL to create Moodle
+ tables in a particular database. These are files in <strong>lib/db</strong>
+ and inside the <strong>db</strong> subdirectory of each module.</p>
+ <p>Currently, only MySQL is supported because that's what I know. If you are
+ familiar with another database (especially open source databases) and are
+ willing to help port the MySQL schema, please get in contact with me (<a href=""></a>).</p>
+<p><strong><a name="courseformats" id="courseformats"></a>Course Formats</strong></p>
+ <p>Moodle 1.0 supports three different course formats: weekly, topics and social.
+ </p>
+ <p>These are a little more connected to the rest of the code (and hence, less
+ &quot;pluggable&quot;) but it is still quite easy to add new ones.</p>
+ <p>If you have any ideas for different formats that you need or would like to
+ see, get in touch with me and I'll do my absolute best to have them available
+ in future releases.</p>
+<p><strong><a name="doc" id="doc"></a>Documentation and articles</strong></p>
+ <p>If you feel like writing a tutorial, an article, an academic paper or anything
+ else about Moodle, please do! Put it on the web and make sure you include
+ links to <a href=""></a></p>
+ </blockquote>
+<p><strong><a name="bugs" id="bugs"></a>Participating in the bug tracker</strong></p>
+ <p>Finally, I would like to invite you to register on the &quot;bug tracker&quot;
+ at <a href=""></a> so you can file any
+ bugs that you find and perhaps participate in discussing and fixing them.
+ </p>
+ <p>&quot;Bugs&quot; not only includes software bugs with current versions of
+ Moodle, but also new ideas, feature requests and even constructive criticism
+ of existing features. The beauty of open source is that anyone can participate
+ in some way and help to create a better product for all of us to enjoy. In
+ this project, your input is very welcome!</p>
+ <blockquote>
+ <blockquote>
+ <p align="center">Thanks for using Moodle!</p>
+ <p align="center">Cheers,<br>
+ <a href="" target="_top">Martin Dougiamas</a></p>
+ </blockquote>
+ </blockquote>
+ <p>&nbsp;</p>
<P ALIGN="CENTER"><FONT SIZE="1"><A HREF="index.html" TARGET="_top">Moodle Documentation</A></FONT></P>
-<P ALIGN="CENTER"><FONT SIZE="1">Version: $Id$</FONT></P>
+<P ALIGN="CENTER"><FONT SIZE="1">Version: $Id: developer.html,v 1.2 2001/12/09
+ 10:34:19 martin Exp $</FONT></P>
34 doc/features.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <TITLE>Moodle Docs: Background</TITLE>
+ <LINK REL="stylesheet" HREF="../theme/standard/styles.css" TYPE="TEXT/CSS">
+<BODY BGCOLOR="#ffffff">
+Here is a big list of some of the features in Moodle 1.0:
+<UL><LI>Supports a social constructionist pedagogy (collaboration, activities, critical reflection, etc)</LI><LI>Suitable for 100% online classes as well as supplementing face-to-face learning<LI>Simple, lightweight, browser-compatible interface</LI><LI>Plug-in "themes" allow you to customise the colours, fonts, layout etc</LI><LI>Easy to install on most platforms</LI><LI>Easy administration - students can create their own accounts. Email addresses are verified.</LI><LI>One account works for the whole server</LI><LI>Security - teachers can add an "enrolment key" to their courses to keep out non-students. They can give out this key face-to-face or via personal email etc</LI><LI>Students are encouraged to build an online profile including photos, description etc</LI><LI>Every user can specify their own timezone, and every date in Moodle is translated to that timezone (eg posting dates, assignment due dates etc)</LI><LI>Choice of course formats such as by week, by topic or a discussion-focussed social format</LI><LI>Flexible array of course modules - Forums, Journals, Readings, Choices, Surveys, Assignments.</LI><LI>New modules can be written and plugged in to existing Moodle installations</LI><LI>The code is clearly-written PHP under a GPL license - easy to modify and localise</LI><LI>Full database abstraction supports all major brands of database (except for initial table definition)</LI><LI>Ready for internationalisation - supports plug-in languages and locale-based date formats etc</LI><LI>Mail integration - copies of forum posts, teacher feedback etc can be mailed in HTML or plain text.</LI><LI>Recent changes to the course since the last login are displayed on the course home page</LI><LI>Full user logging and tracking - activity reports for each student are available with graphs and details about each module (last access, number of times read) as well as a detailed "story" of each students involvement including postings, journal entries etc on one page.</LI>
+<B>Forum Module</B>
+<UL><LI>Different types of forums are available, such as teacher-only, course news, open-to-all, and one-thread-per-user.</LI><LI>All postings have the authors photo attached.</LI><LI>Discussions can be viewed nested, flat or threaded, oldest or newest first.</LI><LI>Individual forums can be subscribed to by each person so that copies are forwarded via email, or the teacher can force subscription for all</LI>
+<B>Survey Module</B>
+<UL><LI>Built-in surveys (COLLES, ATTLS) have been proven as instruments for analysing online classes</LI><LI>Online survey reports always available, including many graphs. Data is downloadable as an Excel spreadsheet or CSV text file.</LI><LI>Survey interface prevents partly-finished surveys.</LI><LI>Feedback is provided to the student of their results compared to the class averages</UL>
+<B>Readings Module</B>
+<UL><LI>Supports display of any electronic content</LI><LI>Files can be uploaded and managed on the server, or created on the fly using web forms (text or HTML)</LI><LI>External content on the web can be linked to or seamlessly included within the course interface.</LI></UL>
+<B>Choice Module</B>
+<UL><LI>Like a poll. Can either be used to vote on something, or to get feedback from every student (eg research consent)</LI></UL>
+<B>Journal Module</B>
+<UL><LI>Journals are private between student and teacher.</LI><LI>Each journal entry can be directed by an open question.</LI><LI>For each particular journal entry, the whole class can be assessed on one page in one form.</LI><LI>Teacher feedback is appended to the journal entry page, and notification is mailed out.</LI></UL>
+<B>Assignment Module</B>
+<UL><LI>Assignments can be specified with a due date and a maximum grade.</LI><LI>Students can upload their assignments (any file format) to the server - they are date-stamped.</LI><LI>Late assignments are allowed, but the amount of lateness is shown clearly to the teacher</LI><LI>For each particular assignment, the whole class can be assessed (grade and comment) on one page in one form.</LI><LI>Teacher feedback is appended to the assignment page for each student, and notification is mailed out.</LI></UL>
+<P ALIGN="CENTER"><FONT SIZE="1"><A HREF="index.html" TARGET="_top">Moodle Documentation</A></FONT></P>
+<P ALIGN="CENTER"><FONT SIZE="1">Version: $Id: features.html,v 1.2 2001/12/09
+ 10:34:19 martin Exp $</FONT></P>
21 doc/future.html
@@ -6,14 +6,19 @@
-<P>I'm committed to continuing my work on Moodle and on keeping it Open and Free.
- I have a deeply-held belief in the importance of unrestricted
- education, and Moodle is the main way I can contribute to these ideals.
-<P>As Moodle gains in maturity, I hope its directions are influenced
- by the community of developers and users. A dynamic database of proposed
- features and their status can be found at <A TARGET=_top HREF=""></A>.
- Your contributions in the form of ideas, code, feedback and promotion are all very welcome.
+<P>I'm committed to continuing my work on Moodle and on keeping it Open and Free.
+ I have a deeply-held belief in the importance of unrestricted education and
+ empowered teaching, and Moodle is the main way I can contribute to the realisation
+ of these ideals.
+<P>As Moodle gains in maturity, I hope its directions are influenced by the community
+ of developers and users. A dynamic database of proposed features and their status
+ can be found at <A TARGET=_top HREF=""></A>.
+ Your <a href="developer.html">contributions</a> in the form of ideas, code,
+ feedback and promotion are all very welcome.
+<P>Now that 1.0 has been released, most of my efforts will concentrate on the
+ macro level (supporting larger classes and integrating into larger institutions)
+ and the micro level (improving support for decisions and processes, for both
+ teachers and learners).
<P ALIGN="CENTER">&nbsp;</P>
<P ALIGN="CENTER"><FONT SIZE="1"><A HREF="index.html" TARGET="_top">Moodle Documentation</A></FONT></P>
<P ALIGN="CENTER"><FONT SIZE="1">Version: $Id$</FONT></P>
2 doc/intro.html
@@ -19,7 +19,7 @@
license to any derivative work.
<P>Moodle will run on any computer that can run <A HREF="">
- PHP</A>, and supports almost every brand of database.</P>
+ PHP</A>, and can support many types of database (particularly <a href="">MySQL</a>).</P>
<P>The word Moodle is an acronym for Modular Object-Oriented Dynamic Learning
Environment, which is mostly useful to programmers and education theorists.&nbsp;

0 comments on commit 175ccb4

Please sign in to comment.