We have an existing learning app, but it was written from scratch and is not adaptable to the direction we want to go (web-based with potential for mobile in the future). As a result, we're exploring other platforms, as well as considering rolling our own solution using an application framework.
I guess our primary areas of concern are:
- Can we set up different levels of permissions? For example let's say we have companies in our LMS (our customers) that have managers that have instructors who have students, can we manage this type of relationship? If I'm a manager, can I see my instructors and their students, while limiting instructors from seeing each others students/courses?
- We do a lot of sessions consisting of content with videos, lessons, etc., with quizzes and some custom logic around the quizzes (highlighting questions and going back through topics, various custom workflows around a student taking a session/class and needing to revisit certain material based on test results). I'm assuming all of this is customizable and more complex workflows can be managed with some custom software development?
- How extensible is the UI? I know it can be themed, but I'm trying to understand if we'll be limited if we want to do some more complex things. This could include everything from how users enter quiz answers (clicking checkboxes vs. an interface that looks and feels more like a scantron with radio buttons you click to shade in, etc.) to special session tools outside of just normal video and text.
- How customizable is the calendar? We might want to allow students to select their schedule, or instructors, and have some complex logic around various sessions. Is this doable?
With open source anything is possible. Out of the box, probably not exactly everything you want. This is when you should be looking to hire a developer or working with a Moodle partner to develop your customized learning platform.
The sky is the limit when you talk about customizations. You have access to the full code and an incredible starting point in Moodle core.
To build a custom learning platform as you describe will take time and money, just like everything else in life.
Thanks for the response! I guess I was referring more to the extensibility of Moodle when it comes to extending or overwriting existing features with more functionality via custom development.
As you mentioned, it's open source, but I would want to avoid modifying the original source since that essentially forks the Moodle source and creates a situation where upgrading Moodle (as new updates come out) is very difficult (if not impossible). For example in Wordpress, you can extend Wordpress to do just about anything you want without having to edit WP source code. I'm hoping there's similar capabilities within Moodle?
Moodle is massively customisable throught its modular design that allows the creation of plugins. You can utterly transform how Moodle looks and behaves without touching the core code. It is what I do for a living for one of Moodle partners, as do many other developers.
Be aware that Moodle is significantly more complex than Wordpress. A fresh install of Wordpress creates around 12 tables (or it did a year or so ago). A fresh install of Moodle installs around 300 tables. The number of tables is not a perfect metric of complexity but it does give you a broad idea.
I am teacher and cannot program anything, even HTML. But I have managed to customize Moodle by hiring a programmer to do what I explain to him/her. I mostly design activity modules, blocks, course formats and question types for quizzes. Those plugins do not touch Moodle core code, but I do have to spend about $500/year to update 5-10 plugins to new versions of Moodle. Things like permissions are very powerful and can be customized within core Moodle interfaces. I don't know about the Calendar block, but as it is a plugin (even though it is a core block), it would be easy to make your custom calendar that would not touch any of the main Moodle core. The only thing I regret is that I don't have much time to document the customizations and therefore share them with the rest of the community, with one exception--the Sharing Cart--which is downloadable from the Moodle plugins database for anyone to use.