A basic introduction to the Moodle architecture


Published on

I had to give a quick explanation of how Moodle works to a group of non-developers at the OU. This was my attempt.

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

A basic introduction to the Moodle architecture

  1. 1. A ‘lies to children’ introduction to how Moodle works http://en.wikipedia.org/wiki/Lie-to-children
  2. 2. UI Libraries DB libs DB User HTTP PHP function calls PHP function calls SQL Moodle Using a web browser Moodle follows a fairly classic three-layer architecture. But it is not strongly enforced. Developers can make a mess if they try. File libs Files moodledata
  3. 3. Core UI Libs (formslib, commenting, YUI, …) Core libraries (for handling roles, categories, courses, users, …) DB libs File libs Forum UI Quiz UI … Plugins Moodle core Core UI roles, categories, courses, users, … Forum lib Quiz lib … Core data Forum data Quiz data Plugins implement specific functionality. They slice through all three layers. The use the facilities provided by Moodle core.
  4. 4. Types of plugin <ul><li>Moodle has many different types of plugin, each designed for a specific purpose. </li></ul><ul><li>Activity modules </li></ul><ul><li>Admin reports </li></ul><ul><li>Assignment types </li></ul><ul><li>Authentication plugins </li></ul><ul><li>Blocks </li></ul><ul><li>Content editors </li></ul><ul><li>Course formats </li></ul><ul><li>Course reports </li></ul><ul><li>Course importers </li></ul><ul><li>Database fields </li></ul><ul><li>Database presets </li></ul><ul><li>Enrolment plugins </li></ul><ul><li>Filters </li></ul><ul><li>Gradebook report </li></ul><ul><li>Gradebook export </li></ul><ul><li>Gradebook import </li></ul><ul><li>Message senders </li></ul><ul><li>Mnet services </li></ul><ul><li>Plagiarism detection plugins </li></ul><ul><li>Portfolio plugins </li></ul><ul><li>Question types </li></ul><ul><li>Question import/export formats </li></ul><ul><li>Quiz reports </li></ul><ul><li>Repository plugins </li></ul><ul><li>Resource types </li></ul><ul><li>Search engine adapters </li></ul><ul><li>Themes </li></ul><ul><li>User profile fields </li></ul><ul><li>Web services </li></ul><ul><li>Workshop allocators </li></ul><ul><li>Workshop forms </li></ul><ul><li>Workshop evaluators </li></ul>
  5. 5. Users, roles and permissions <ul><li>Typical question: </li></ul><ul><ul><ul><li>Paul wants to attempt Quiz 1, should we let him? </li></ul></ul></ul>
  6. 6. Being a Student does let you attempt quizzes Is Paul allowed to attempt Quiz 1? User (Paul) Context (Course PM100) Context (Category OUBS) Context (Site OU VLE) Capability (Attempt quiz) Role (Logged-in) Role (Student) Paul is logged in to the VLE Paul is a student in PM100 Just being logged-in does not let you attempt quizzes So: Paul can do this quiz  Context (Activity Quiz 1)
  7. 7. Users, roles and permissions <ul><li>OK, that was terribly complex. Just remember: </li></ul><ul><li>Specify functionality in terms of Capabilities </li></ul><ul><li>then the rest is somebody else’s problem, but very flexible. </li></ul><ul><li>Users come from student-information system </li></ul><ul><li>Contexts are defined by the structure of the site </li></ul><ul><li>Roles set up by the admins according to need </li></ul><ul><li>Role-assignments from student-information system, or set by admins </li></ul>
  8. 8. … and <ul><li>Actually, it’s even more complicated than that. Access to activities also depends on: </li></ul><ul><li>groups and groupings , </li></ul><ul><li>whether the category, course or activity is hidden , and </li></ul><ul><li>conditional activities , </li></ul>but you don’t need to worry about this, it is all standard. Except that you may need to think about how groups relate to the functionality you are specifying.
  9. 9. So, I had better explain groups <ul><li>Three Group mode s for an activity/course: </li></ul><ul><li>Separate groups – Groups work on their own, unaware of other groups. </li></ul><ul><li>Visible groups – Groups work on their own, but can see, but not interfere with what other groups are doing. </li></ul><ul><li>No groups – all students work together. </li></ul><ul><li>Can be different sets of groups ( Groupings ), for example tutor groups and regional groups. </li></ul>
  10. 10. Ways to learn more <ul><li>Moodle Docs http://docs.moodle.org/ </li></ul><ul><li>Cole & Foster Using Moodle O’Reilly 2007 </li></ul><ul><li>Cooch Moodle 2.0 First Look Packt 2010 </li></ul><ul><li>Using Moodle forums http://moodle.org/course/view.php?id=5 </li></ul>