From: martin Date: Mon, 19 Aug 2002 13:19:07 +0000 (+0000) Subject: Significant improvements to distributed documentation X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=175ccb493f1214bd6dac5024a189b275fd41632e;p=moodle.git Significant improvements to distributed documentation --- diff --git a/doc/background.html b/doc/background.html index 79d4f6c1bc..e25fc178fa 100755 --- a/doc/background.html +++ b/doc/background.html @@ -8,12 +8,32 @@

Background

-

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.

-

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.

+

Moodle is an active and evolving work in progress.

+

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 Curtin University + of Technology 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 :-)

+

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.

+

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.

+

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.

+

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 Features). +

 

Moodle Documentation

diff --git a/doc/contents.html b/doc/contents.html index 6e7503f0a6..527d3f11b5 100755 --- a/doc/contents.html +++ b/doc/contents.html @@ -8,8 +8,10 @@

Moodle Documentation

  • Introduction -
  • Background -
  • Installation + +
  • Background +
  • Features +
  • Installation
  • Teacher Manual
  • Developer Manual diff --git a/doc/credits.html b/doc/credits.html index 36ca2ab4da..951d855b26 100755 --- a/doc/credits.html +++ b/doc/credits.html @@ -8,8 +8,8 @@

    Credits

    -

    Moodle itself is Copyright © 2001, - Martin Dougiamas.  It is distributed under the +

    Moodle itself is Copyright © 2001-2002, + Martin Dougiamas.  It is distributed under the GNU Public License.

    Other contributors

    diff --git a/doc/developer.html b/doc/developer.html index 69e9a6e1ed..d1c4f95da9 100755 --- a/doc/developer.html +++ b/doc/developer.html @@ -4,20 +4,232 @@ -

    Developers Manual

    -

    Moodle architecture

    -

    This section will describe the overall architecture for Moodle and some of - the major design decisions that were made during development.

    -

     

    -

    Plug-in modules

    -

    Moodle has been designed to be modular, so that new learning activities can - be easily written and "plugged-in" to a Moodle installation by the - system administrator.

    -

    This section will describe the Plug-in API and provide a simple example of - a Moodle plug-in.

    +

    This document describes some of Moodle's design and how you can contribute.

    +

    Sections in this document:

    +
      +
    1. Moodle architecture
    2. +
    3. How you can contribute +
        +
      1. Learning activities
      2. +
      3. Themes
      4. +
      5. Languages
      6. +
      7. Database Schemas
      8. +
      9. Course formats
      10. +
      11. Documentation and articles
      12. +
      13. Participating in the bug tracker
      14. +
      +
    4. +

     

    +

    Moodle architecture

    +

    From a system administrator's perspective, Moodle has been designed according + to the following criteria:

    +
      +
    1. Moodle should run on the widest variety of platforms
      +
      + 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 more + than ten different brands of database (unfortunately, though, it can not + yet set up tables in all these databases - more + on this later).
      +
    2. +
    3. Moodle should be easy to install, learn and modify
      +
      + Early prototypes of Moodle (1999) were built using Zope + - 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.
      +
    4. +
    5. It should be easy to upgrade from one version to the next
      +
      + 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 "cvs update -d" + and then visit the site home page to complete an upgrade.
      +
    6. +
    7. It should be modular to allow for growth
      +
      + 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.
      +
    8. +
    9. It should be able to be used in conjunction with other systems
      +
      + 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).
    10. +
    +

     

    +

    How you can contribute

    +

    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.

    +

    Learning Activities

    +
    +

    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):

    +
      +
    • mod.html: a form to set up or update an instance of this module
    • +
    • version.php: defines some meta-info and provides upgrading code
    • +
    • icon.gif: a 16x16 icon for the module
    • +
    • db/: SQL dumps of all the required db tables and data (for each database + type)
    • +
    • index.php: a page to list all instances in a course
    • +
    • view.php: a page to view a particular instance
    • +
    • lib.php: any/all functions defined by the module should be in here. If + the modulename if called widget, then the required functions include: +
        +
      • widget_add_instance() - code to add a new instance of widget
      • +
      • widget_update_instance() - code to update an existing instance
      • +
      • widget_delete_instance() - code to delete an instance
      • +
      • widget_user_outline() - given an instance, return a summary of a user's + contribution
      • +
      • widget_user_complete() - given an instance, print details of a user's + contribution
        +
      • +
      • To avoid possible conflict, any module functions should be named starting + with widget_ and any constants you define should start with WIDGET_ +
      • +
      +
    • +
    • Lastly, each module will have some language files that contain strings + for that module. See below.
      +
    • +
    +
    +

    Themes

    +
    +

    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)

    +

    Each theme is in a subdirectory of the "theme" directory. You can + copy the "standard" theme as a template.
    +

    +
    +

    Languages

    +
    +

    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:

    +

    lang/en - directory containing all files for one language + (eg English)

    +
      +
    • moodle.php - strings for main interface
    • +
    • assignment.php - strings for assignment module
    • +
    • choice.php - strings for choice module
    • +
    • forum.php - strings for forum module
    • +
    • journal.php - strings for journal module
    • +
    • reading.php - strings for reading module
    • +
    • survey.php - strings for reading module
    • +
    • .... plus other modules if any.
      +
      + A string is called from these files using the get_string() + or print_string() functions. Each string + supports variable substitution, to support variable ordering in different + languages.
      +
      +
      eg $strdueby = get_string("assignmentdueby", "assignment", + userdate($date));
      +
      + If a string doesn't exist in a particular language, then the equivalent + in English will automatically be used instead.
    • +
    +

    lang/en/help - contains whole help pages (for popup context-sensitive + help)

    +
    +

    Main help pages are situated here, while help pages specific to each module + are located in subdirectories with the module's name.

    +

    You can insert a helpbutton in a page with the helpbutton function.

    +

    eg helpbutton("text", "Click here for help about text");

    +

    and for modules:

    +

    helpbutton("forumtypes", "Forum types", "forum");

    +
    +
    +


    + Database Schemas

    +
    +

    Given a working database with defined tables, the intentionally simple SQL + used in Moodle should work fine with a wide variety of database brands.

    +

    A problem exists with automatically creating 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 lib/db + and inside the db subdirectory of each module.

    +

    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 (martin@moodle.com).

    +
    +

     

    +

    Course Formats

    +
    +

    Moodle 1.0 supports three different course formats: weekly, topics and social. +

    +

    These are a little more connected to the rest of the code (and hence, less + "pluggable") but it is still quite easy to add new ones.

    +

    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.

    +
    +

     

    +

    Documentation and articles

    +
    +

    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 http://moodle.com/

    +
    +

     

    +

    Participating in the bug tracker

    +
    +

    Finally, I would like to invite you to register on the "bug tracker" + at bugs.moodle.org so you can file any + bugs that you find and perhaps participate in discussing and fixing them. +

    +

    "Bugs" 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!

    +
    +

     

    +
    +
    +
    +

    Thanks for using Moodle!

    +

    Cheers,
    + Martin Dougiamas

    +
    +
    +
    +

     

    +

     

    +
    +

     

    +

    Moodle Documentation

    -

    Version: $Id$

    +

    Version: $Id: developer.html,v 1.2 2001/12/09 + 10:34:19 martin Exp $

    diff --git a/doc/features.html b/doc/features.html new file mode 100755 index 0000000000..848c95cede --- /dev/null +++ b/doc/features.html @@ -0,0 +1,34 @@ + + + + Moodle Docs: Background + + + + +

    Features

    + +Here is a big list of some of the features in Moodle 1.0: +
    • Supports a social constructionist pedagogy (collaboration, activities, critical reflection, etc)
    • Suitable for 100% online classes as well as supplementing face-to-face learning
    • Simple, lightweight, browser-compatible interface
    • Plug-in "themes" allow you to customise the colours, fonts, layout etc
    • Easy to install on most platforms
    • Easy administration - students can create their own accounts. Email addresses are verified.
    • One account works for the whole server
    • 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
    • Students are encouraged to build an online profile including photos, description etc
    • Every user can specify their own timezone, and every date in Moodle is translated to that timezone (eg posting dates, assignment due dates etc)
    • Choice of course formats such as by week, by topic or a discussion-focussed social format
    • Flexible array of course modules - Forums, Journals, Readings, Choices, Surveys, Assignments.
    • New modules can be written and plugged in to existing Moodle installations
    • The code is clearly-written PHP under a GPL license - easy to modify and localise
    • Full database abstraction supports all major brands of database (except for initial table definition)
    • Ready for internationalisation - supports plug-in languages and locale-based date formats etc
    • Mail integration - copies of forum posts, teacher feedback etc can be mailed in HTML or plain text.
    • Recent changes to the course since the last login are displayed on the course home page
    • 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.
    • +
    +Forum Module +
    • Different types of forums are available, such as teacher-only, course news, open-to-all, and one-thread-per-user.
    • All postings have the authors photo attached.
    • Discussions can be viewed nested, flat or threaded, oldest or newest first.
    • Individual forums can be subscribed to by each person so that copies are forwarded via email, or the teacher can force subscription for all
    • +
    +Survey Module +
    • Built-in surveys (COLLES, ATTLS) have been proven as instruments for analysing online classes
    • Online survey reports always available, including many graphs. Data is downloadable as an Excel spreadsheet or CSV text file.
    • Survey interface prevents partly-finished surveys.
    • Feedback is provided to the student of their results compared to the class averages
    +Readings Module +
    • Supports display of any electronic content
    • Files can be uploaded and managed on the server, or created on the fly using web forms (text or HTML)
    • External content on the web can be linked to or seamlessly included within the course interface.
    +Choice Module +
    • Like a poll. Can either be used to vote on something, or to get feedback from every student (eg research consent)
    +Journal Module +
    • Journals are private between student and teacher.
    • Each journal entry can be directed by an open question.
    • For each particular journal entry, the whole class can be assessed on one page in one form.
    • Teacher feedback is appended to the journal entry page, and notification is mailed out.
    +Assignment Module +
    • Assignments can be specified with a due date and a maximum grade.
    • Students can upload their assignments (any file format) to the server - they are date-stamped.
    • Late assignments are allowed, but the amount of lateness is shown clearly to the teacher
    • For each particular assignment, the whole class can be assessed (grade and comment) on one page in one form.
    • Teacher feedback is appended to the assignment page for each student, and notification is mailed out.
    +

     

    + +

    Moodle Documentation

    +

    Version: $Id: features.html,v 1.2 2001/12/09 + 10:34:19 martin Exp $

    + + + diff --git a/doc/future.html b/doc/future.html index f9c4e87826..713e15a62d 100755 --- a/doc/future.html +++ b/doc/future.html @@ -6,14 +6,19 @@

    Future

    -

    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. -

    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 bugs.moodle.org. - Your contributions in the form of ideas, code, feedback and promotion are all very welcome. - +

    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. +

    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 bugs.moodle.org. + Your contributions in the form of ideas, code, + feedback and promotion are all very welcome. +

    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).

     

    Moodle Documentation

    Version: $Id$

    diff --git a/doc/intro.html b/doc/intro.html index d349f59012..c4b2708600 100755 --- a/doc/intro.html +++ b/doc/intro.html @@ -19,7 +19,7 @@ license to any derivative work.

    Moodle will run on any computer that can run - PHP, and supports almost every brand of database.

    + PHP, and can support many types of database (particularly MySQL).

    The word Moodle is an acronym for Modular Object-Oriented Dynamic Learning Environment, which is mostly useful to programmers and education theorists.