Blog Aggregation Management (BAM) is a little project of mine that’s been going since 2006. It’s an example of, what I think, is a more appropriate product model for e-learning systems – essentially small pieces loosely joined/best of breed/PLE. Currently BAM is based on the infrastructure provided by Webfuse, another project of mine (which embodies and enables the better product model).
Trouble is that come 2010 Webfuse is history as my current institution cans Webfuse in favour of Moodle. There are about 5 or 6 courses at that institution that currently use BAM and many more that could probably use it. So, if there is to be a future for BAM it will have to be ported to Moodle. This is the first step in checking to see if this can be done. It will be subsequently be followed by whether or not it should be done and whether it will be done.
The following isn’t a real blog post. It’s more a unstructured collection of ad hoc, formative reflections as I confuse myself diving through the Moodle world as a ill-informed newbie.
How do you find out developing something for Moodle?
Each system embodies a way of looking at the world, a set of terms and concepts. Essentially I need to get some sort of insight into its structure, language and world view. From there I can make some vaguely informed decision as to whether the BAM worldview has any hope of living nicely with the Moodle world-view. I need some resources.
Well, the Moodle site has this pointer towards development resources. Of course, there’s also the constructivist approach recommended by Dan Poltawski. There’s a lot to be said for that approach, but it’s a little heavyweight for my current requirements.
What other stuff is there on the Moodle main site?
- FAQS! There’s a FAQ for development.
But most of that seems to be low level code related stuff. I’m looking for a bigger picture.
- There are some pointers to information about creating new modules or plugins. – apparently there are 22 different types of plugins.
- the manuals
- The coding guide
The following list of resources is something I’ll probably have to come back to at a later date when/if coding commences.
- Working with the community
- The database abstraction layer
- the roles system
- the forms library
- the file API
Absence of definitions or an overview
I’m about 4 or 5 hours into my examination of Moodle and whether BAM might go into it. The biggest problem I have is that I haven’t been able to find an overview. Something that defines terms such as blocks, activity modules etc and shows how they all link together.
All of the developer docs like “how to develop a block” just leap straight into answering the question. None seem to offer a description or pointer to a description of what a block is and how it compares to other components.
This set of powerpoint slides (by Sam Marshall) on creating Moodle modules seems to be the best so far.
Perhaps this Moodle Programming course might help fill the hole.
Nature of modules
Each module has it’s own directory. Will include a list of files, directories for specific purposes.
Each module can specify capabilities – who can do what?
As others have pointed out, Moodle already has blogs and there is also a project currently looking at improving the Moodle blog component. Actually, that’s a 2008 project. The project blog just seems to peter out – no final “it’s done” post. However, according to this it completed successfully and contributed code which is available as patches and may also be merged into Moodle 2.0
Looking into that project brings me to a thread on the Moodle site (you may have to login to see the thread) about the blog component. It starts off with a post from Martin Dougiamass explaining some of the initial rationale.
That post reinforces the point that there is a strong model underpinning Moodle and how it should work that drives the design decisions. At least on an initial read, the aim of Blogs in Moodle was to provide a blog like facility that fit within the Moodle model. The idea of integrating BAM into Moodle comes from a different perspective and there might be some interesting clashes of perspective/assumptions.
An assumption behind BAM is that you actually want the students to be posting their comments on the open web, to enable some of the serendipity related fun to happen. Moodle appears to be based on an assumption of a much tighter integration.
What type of plugin?
If implemented, I’m assuming BAM will be some kind of plugin and one of those listed here. In the following, I’m documenting my investigations about which type BAM might be.
From the initial list, without looking forward, I’m guessing that BAM might be or be related to one of the following:
- Activity module
- Assignment type
This looks potentially interesting/related. BAM is mostly used at the moment as an assignment. So it’s inclusion here probably fits current operation. However, currently BAM is separated from the assignment stuff which allows a bit more flexibility….mmm. There are examples of non standard assignment types. Which are some sort of plugin to the existing assignment component.
- Gradebook or Portfolio plugins
Well, I should perhaps follow the published guidelines. Completing the first step – make sure it’s a good idea – is first. I’ll need to
- Check to see if the blog improvements offer something close to BAM.
- Dig around a bit more in Moodle to see if BAM can be implemented.
- Ask a question on the forums.