Archive for the 'FreeMIS' Category
I was rather shocked this evening when I realised that the last official release of FreeMIS was in June 2006! This release has been downloaded over 3000 times, but I have done quite a bit of work on the application since then, so I really ought to put together a more up-to-date package.
It’s now officially on my to-do list! Anyone impatient for the latest code can always download it from the subversion repository
Tags: FreeMIS
Ruby on Rails – avoiding browser timeout during long tasks
5 Comments Published March 11th, 2007 in FreeMIS, Ruby on RailsApologies to those of my readers who are not web developers – what follows may well make no sense to you whatsoever!
I am so please with myself! For nigh on a year now, I have been aware of a potential problem with FreeMIS (the Ruby-on-Rails based management information system for schools that I have developed) and today I solved that problem.
The problem is that the printing of a full set of reports for all the pupils in a year group is a huge task, which can take Rails anything up to 130 seconds to complete. By the time it has done this, the browser and or web server have got bored and given up waiting. I have played around with the configuration of Apache and FastCGI, and tried using mongrel instead, but none managed to fix the problem 100%.
In PHP, it would be easily solved by purging the data produced out to the browser repeatedly through the task, but Rails does not have this option.
Last night as I was drifting off to sleep I realised that I could solve the problem by doing the reports one pupil at a time!
Obvious, you might think, but the system needs a “one-click” solution for printing all the reports for a register class – it would not be acceptable to require user input to print out each individual pupil’s reports.
What I realised last night was that if I did the printing of reports via Ajax and RJS, then I get exactly what I wanted.
I start by submitting a form via Ajax to print the reports for a register class.
The action renders the reports for the first pupil in the register class at the bottom of the relevant div, then puts a hidden variable into the form, with the id of the next pupil in the register class. It then tells the browser to “click” on the submit button of the form. All the reports for the register class then come out, pupil by pupil, and no individual browser<->server cycle lasts more than a couple of seconds, so no chance of timing out. I can even put a percentage progress bar at the top of the page. Happy happy joy joy
The account hosting the FreeMIS demo site got hacked just after Christmas, and I stripped out all the sites I was hosting on that account until I worked out where the vulnerability was. It turned out that the vulnerability was in a old Joomla extension, but I have not yet got around to switching the FreeMIS demo site back on. It’s on my list of things to do this weekend
Tags: FreeMIS
Someone asked me today “how famous do you think FreeMIS is?” – a question that was clearly going somewhere. I mumbled some non-comittal waffle, and was then presented with a copy of issue 65 of Linux User. There’s an article about this year’s FLOSSIE, which mentions my 5 minute slot about FreeMIS. At the risk of consuming too much of your precious bandwidth, allow me to reproduce my mention in its entirety:
Robert Jones' (sic) FreeMIS, developed with Ruby-on-Rails, had come from a different direction - based on the need to report to parents. As it is currently used in Scotland, it uses Shibboleth for single sign-on. (c) R Smedley
Shibboleth SSO for FreeMIS is actually “in development”, but apart from that it’s all true ![]()
The article has a link to the demo site – this explains the recent spike in visits to the demo.
Hereafter follows the first installment of the long and winding tale of how a maths and computing teacher came to be the developer of a web based open source school management information system called FreeMIS.
It began when I arrived at North Berwick High School, and took on a whole school IT role. The school needed a report writing solution, so I made one, using the most readily available tool in school – Filemaker Pro. I didn’t know much about databases, and taught myself as I went along. This solution caught the attention of East Lothian Council, and I then spent some time on a working group that put together a solution for reporting and target setting. This was based on my previous work, and Dave Rawson did the target setting side. This solution was picked up by most of the high schools in East Lothian. I soon realised, though, that maintaining 6 different versions of a Filemaker Pro database and trying to apply upgrades to them was a complete nightmare. I needed an solution that kept data and application separate, and a means of keeping physically remote versions of the application synchronised with any upgrades made centrally. At this stage I had no idea that these problems had already been solved by others before me.
Meanwhile, I became a masterclasser, and was given a laptop to use. By some wierd quirk of the purchasing and issue of these laptops, I was given full admin rights to the machine. This contrasts dramatically with the normal situation in East Lothian, where I don’t have any rights to install software or customise settings at all. I took full advantage of these rights, and installed Mandrake Linux as a dual boot with windows on the machine.
This was the moment of revelation. Suddenly I had an operating system that was designed by the developers of open source software, and was therefore perfectly set up to facilitate such development. I played around and realised that what I needed was a web based application. I also discovered the wonders of version control. All (!!) I had to do was set up a database on a web server and then write scripts to build web pages from this database and create forms that would allow users to put data into the database. MySQL and PHP seemed to be best choice of database and scripting languages available at the time (in March 2003) so I bought a book (first version!) and got stuck in……..
Recent Comments