MoodleBites for Developers Level 1

Updated in 2019 for Moodle 3.6

What do others say having taken this course...

"I was really enjoying the challenges that the course provided." (Anonymous feedback)

"Will definitely recommend this course to others and look at doing other courses in the future." (Anonymous feedback)

"At the end of the day - great course, fun and interesting and thanks for putting it together so well." (Anonymous feedback)

If you are interested in Moodle development, but do not have a background in development, experience with php, and experience in development environments, then this MoodleBites for Developers Level 1 is for you !  It will give you a gentle introduction to Moodle development, and provide a good grounding should you wish to progress to the MoodleBites for Developers Level 2 course at a later time.


Because this course is quite specialist, it runs just twice each year (numbers are limited, so please register in plenty of time):

  • 1st February
  • 1st July

This course is 8 weeks in duration, asynchronous, and completely online. Each week contains approximately 2-4 hours work, although this varies depending on your experience with Moodle and development in general, and how much extension work you wish to complete smile

This is an 8 week entry level course on Moodle development. It is focused on building new plugins. After successfully completing this course

  • You will be able to create new plugins from templates or from existing plugins.
  • You will be able to customize the content of Moodle sites by customizing themes and overriding renderers.
  • You will be able to use simple debugging tools and understand important aspects of the Moodle API including internationalization, capabilities and roles and outputting HTML.
There are no live sessions, but participants are encouraged to participate in forums and to post the results of their practical assignments for others to see and learn from.
MoodleBites for Developers Level 1

OpenBadges logo

Richard JonesLead facilitator for this course is Richard Jones, senior e-learning consultant and developer with HRDNZ. Richard's international background includes computer science and programming, and he has been involved with Moodle and e-learning for many years. His latest Moodle plugin is the Simple Lesson - extending the capabilities of Moodle's sophisticated Lesson module.

Justin Hunt

Co-advisor is Justin Hunt, well-known in the Moodle community for his outstanding contributions to Moodle including PoodLL - an extensive and integrated plugin suite of modules and filters that allows students to record audio or video, or draw/upload pictures as assignment submissions, with a repository, feedback, and questions types.


MoodleBites for Developers Level 1 is USD $599 per person at this time we are able to offer a discount to a special rate of USD $499 but places are limited - so book early to avoid disappointment! If you wish to translate this value to your local currency please visit: All invoices are in US Dollars (Euro invoices available by special request). You can register for the course using the "Register Now" link on the Front Page.

This is a technical course, designed for people with interest in development and Moodle Administrators. This course is not suitable for the average Teacher using Moodle.

Course outline

Pre-requisites: Participants should have: a good knowledge of Moodle, some knowledge of PHP / HTML / CSS and Javascript, and a fearless attitude !

Technical requirements

  • A web server with Moodle 3.4 or greater installed SSH or command line access to the server If you have web server that you rent from bluehost, godaddy or similar services then you can use that for development. Or you can set up a web server on your windows or mac using XAMPP. See: ;
  • The course author has also provided a “how to” guide for setting up a Moodle development environment on the free cloud IDE, cloud9. You can see that here: Information on how to install Moodle on your server can be found here:
  • It's OK to use the same server for several Moodle sites, but don’t try to develop on a production Moodle site.

In this course you will learn the basics of developing for Moodle including:

  • Week 1In week one we cover setting up a development environment for Moodle and talk about debugging and how to decide when to write a plugin.
    • Your development environment
    • Customising Moodle without plugins
    • Debugging and getting help
  • Week 2In Week 2 we talk about a tool called Git which developers use in Moodle to manage source code. In subsequent weeks we will use Git to keep our development environments up to date with the course.
    • Introducing GIT
    • Using GIT with Moodle
  • Week 3Moodle’s international focus is one of its great strengths. Learning how to tie into that in your plugin is an important skill.
    • Localising and language strings
    • Anatomy of a plugin
    • Building a block by renaming an existing one
  • Week 4In this week we cover some basic Moodle APIs and objects that you will need for all your plugins.
    • Setting up a page for display
    • Moodle global objects
    • Adding an admin settings page
  • Week 5In week 5 we cover how to send output back to the browser, in a way that that your end users (think students, teachers, developers and admins) will appreciate.
    • Renderers
    • Using the html_writer class
    • CSS in Moodle
  • Week 6Getting data from users, putting it into the database, and retrieving it, is a basic skill. Moodle has APIs for all of this, and in week 6 we introduce these.
    • An introduction to Moodle forms
    • Moodle and the Database
  • Week 7Moodle has an advanced permissions system. Good Moodle developers need to know how to use this, so their work can be used by organisations of all sizes.
    • Moodle contexts
    • Moodle Permissions and Capabilities
  • Week 8This final week provides some time at the end of the course to consolidate learning, catch-up, and ask questions.
    • Review and consolidation
There is no need to use a specific Operating System, editor or IDE. The course is generic on these points and and aims at basic concepts that will be present in any OS or development environment. Since the course is neutral with respect to OS and development environment, effort has been made to ensure that the practical tasks and examples given are generally applicable. Anyone attending this course however will need to become familiar with their own Operating System and development environment. We cannot answer in-depth questions specific to your own choice of OS and development environment.

*Please note this course outline is subject to change to keep pace with Moodle development.

Last modified: Monday, 17 December 2018, 3:31 PM