Hi All
Pitching for ideas here. We started using Moodle in the summer last year and are convinced that it was the right choice. Martin's enthusiasm and drive have produced a superb product, which is maturing at an unprecidented rate - a fact that hasn't gone unrecognised by the 600 or so other sites that have adopted Moodle since we first started to evaluate.
As a medium sized FE college in the UK, we felt it unrealistic to undertake administration manually and wanted to dynamically pre-load Moodle with Teachers, Students, Courses and Enrolements. We have relatively sound database skills but lacked any PHP coding experience, so we plumped for 'data stuffing' direct into the mySQL database. Basically, we set up triggers on the Oracle based student enrolement system, and programmed a management machine to replicate enrolements, withdrawals, transfers, new courses etc directly into the Moodle database - this has worked well and we now have something like 20000 students on 2500 courses (only a fraction of which are active I hasten to add)
Here's the rub - 'data stuffing' can't really be a long term solution. It's been fine for our first year, and with the advent of 1.2, we'll need to revisit the code to make sure that we don't break anything in the revised database structures. We will amend to take account of groups, but that's it really.
What Moodle could really use to support scalability is some way of interfacing directly with external systems to replicate data real-time - or maybe it's already there and I've missed it. The batch import scripts I've seen look good, but manual batching isn't generally timely enough. I recall that this has come up in the forums from time to time, but haven't seen a solution.
In my opinion, 'data stuffing' is too external to the system (not to mention downright dangerous), and to be really successful, the solution needs to be part of Moodle itself. I can think of two possibilities, although there are undoubtedly others:-
- Moodle gets taught how to interface with external databases directly - probably a coding nightmare!
- Possibly an extension to the batch process where a CRON job looks for a data-file to process every few minutes. Some 'MiddleWare', either on the Moodle server or on an external machine could fill the data-file with transactions.
In either case, the process would ideally need to handle new users (teachers and students - probably from separate sources), new courses, add students to courses, assign teachers to courses, assign to groups, and probably be able unenrol/delete as well - basically, an external script calling the internal routines for pretty well eveything that can be done manually within Moodle.
The questions that come to mind are:-
- Does anyone know of a current solution?
- Is a solution planned? and if so, anytime soon?
- Is someone already working on this?
- Martin might take this as a commission, but his time seems pretty well mapped out for the next few months. If he didn't have time, would someone with the PHP coding skills like to take it on? We'd certainly be willing to contribute in any way that's useful/helpful.
Any thoughts or comments anyone has would be extremely useful.
Ta
Paul