I was asked to help develop a booking system for a local university and
discovered MRBS in my initial searching. This system already does a lot of
what is needed however it looks like I may be requested to do some additions
so I thought I would outline my thoughts and see what others had to say.
This seems to have been covered in a few other emails to the list. Is there
official effort to include this in the system? One complicating factor is
that the system will cover both rooms and some equipment. In this case, the
rooms will contribute to the quota while the equipment will not, I will need
to implement some method of flagging what resources are included in the
2. Integrated User Management.
We will require integrated user management (or if not integrated then
closely related). Given the plugin style of the authentication scheme this
actually is relatively simple. I propose creating a table to hold
information about the users (an ID, password hash, first and last names,
their "role(s)", their quota etc. etc.). This will form the basis of an
authentication module. I will need to develop forms to add/edit/delete
users and have also been requested to implement a bulk insert by uploading a
CSV text file. Not overly complicated stuff, but has anyone already done
this (or started to do it)?
3. User Roles
The proposed system requires different types of restrictions for different
types of users. For example, first year students will not be able to book
resources after normal working hours. I suspect the best way to achieve
this would be to define "roles" for users that define a set of rules to be
applied to any requests before acceptance. How to define these roles then
becomes the problem, one which I don't care to ponder too heavily right now.
4. Logout Option
Currently you need to close your browser to cancel the authentication.
There is a way to force a re-authentication so that the user is prompted for
a new user/pass. Most browsers will also remove the authentication if you
then cancel the auth request providing a logout function (not really
something that can be relied on to work).
5. Multiple resource booking.
We would like to be able to book a set of resources as one booking.
Currently you are able to create a multi-resource booking and that
essentially creates individual booking for each resource. If you attempt to
edit one of these and reselect the same resources then it fails with a
resource conflict. Looking at the code it's pretty obvious why this happens
and there are several ways to approach fixing it. Probably the simplest is
to infer the linkage between the booking based on name, start time, end
time, create_by and timestamp. When you edit any one of the linked items it
should also update any of the other linked items. The more complicated (and
probably better) option is to create an extra sequence field to identify
There is probably more to come yet, but this is a good portion of the
initial changes I would need to make. I would like to know if anyone has
done (or is working on) any of this already and if any of these changes are
planned already. I'm more than happy to coordinate with others to add some
of these functions.