This is Snoopy!

Edinburgh University Gliding Club


This is the documentation for the EUGC database system known as Martin's Magical Monkey Manager, or MonkeyMan for short.


  1. Introduction
  2. How do I…?
  3. Notes

1. Introduction


This is where Martin is busily working away on the new database, website and associated technical fluff. This site is hosted on TARDIS, a student run computing facility with somewhat more enthusiastic administrators than Holyrood.

Currently you can see the prototype database here, which should begin to make gradually more sense as it gets worked on. There is flight data in it now, imported automatically from spreadsheets provided by Kevin at the SGU. Various other things are making their way in now.

For those interested, the current code is written in Perl using lots of code modules from CPAN. The database is managed through Alzabo, and the schema for the EUGC database can be viewed and edited on the fly. The web interface is produced using Maypole, for which I have been working on the Alzabo-based model class.

The web pages are produced from a set of Template Toolkit templates which again are mostly generic with a few custom tweaks.

In short this means it's all done by magic. It should thus be quite easy to maintain.


The main person behind all this is Martin Ling. Gareth is helping by continually finding new ways to break things. Lots of other people have offered suggestions, some of which were even helpful.

2. How do I…?



In order to use most of the functions of the database it needs to know who you are. If you are reading this then presumably you have already managed to navigate your way to the website. The last item in the menu should read "Login". Click it. Enter either your name (e.g. "Gareth Francis") or membership number (e.g. "E463") and password. If you don't know what your password is then it can be reset: see below.

(The URI of the login page is

Reset my password

If MonkeyMan knows your email address it can reset your password and email the new password to you. Follow the link from the login page (or below) and enter your name or membership number.

(The URI of the password reset page is


Find out what I owe (or are owed)

To find out how much money you owe, and to whom, go to the "Money Owed" menu item. The format should be pretty self explanatory.

(The URI of the money owed page is If the user is trusted it takes the optional arguments id and id2 to specify the user and restict the output to debts to a particular user.)

Find out what the club owes (or is owed)

You need to be trusted to do this. Go to the menu item "Club Finances". Again, the format should be fairly obvious.

(The URI of the club finances page is

Record a payment (add a credit)

Update: we're changing this - consult Martin for latest info.

This is the responsibility of the treasurer.

Go to the credits list page ("Credits" under the "Database" menu. To record a payment you've collected from somebody use the 'Add a new credit' form, filling the fields as follows:

Note that the payer is EUGC and the payee the person who made the payment, not the other way round. This is because what you're recording is us crediting them for the payment, not the payment itself.

Dates can be entered as day/month/year, year-month-day or whatever, it'll understand what you mean. Names aren't case sensitive, and just a first name is fine so long as there's only one person with that name. You can even use nicknames, if you tell the database about them - 'EUGC' is actually a nickname in this case.

(The URI of the credits list page is


Upload a photo

You need to be trusted to do this. Go to the photo upload page (under Admin on the menu). If the photo was taken with a digital camera the date and time can be read from the exif data in the image. Once the image has been uploaded you'll be redirected to the edit page for that image.

Please include as much metadata as possible; the whole point of having the images in a database is to make them searchable. Ideally this would include the names or callsigns of all aircraft, the names of all people, the location and, where applicable, the event. Remember that the notes are supposed to be a fairly complete description—your highly amusing caption is associated with the PhotoAlbumItem rather than the Photo.

See also the note below on multiple versions of the same photo.

(The URI of the photo upload page is

Add a photo to an existing album

Again, you need to be trusted. First, find the photo or photos you want in the list of photos and bookmark it/them. Now go to photo album items and add a new item to the album you want, choosing from the photos you just marked. The caption is optional. Sort order is a text value, items in the album being listed in alphabetical order; however, numeric values are conventional. Duplicates and null values are allowed, in which case the sort order is not defined.

Change the caption of an existing photo in an album

Either go to the photo album and follow the link at the bottom marked "List photo album items", or select "Photo album items" from the menu and search for the item you want to edit. You can then select the item you want to change.

Make a new album

Photo albums, add new. If you want it to appear on the photos page you'll need to modify the template for that as well.

Link to, resize and crop photos

Photos are retrieved from the database using /~gliding/cgi-bin/get-img.cgi. This takes the required parameter "id" which is an integer corresponding to the id column in the Photo table. If only the id is specified the full image is returned from the archive as is.

However, the script can also do cropping and resizing of images. "w" and "h" specify the maximum width and height of the resized image respectively. Aspect ratio is always retained. If you only want to resize the image this is all you need to specify. To crop the image you also need to specify "top", "left", "width" and "height". The first two specify the offset from the top left corner (must be positive), the latter two, the width and height of the cropped image. In this case "w" and "h" are still needed to specify the scaling (even if that happens to be one).


To get the full size version of the image with id 10:
To get image 63 with a maximum width of 800px and a maximum height of 600px:
To first resize image 30 to 500x500px then crop the central 300x300px square:


Add new members

This is generally the job of the membership sec. Use the "Add Members" page under the "Admin" menu (

Use the task system

The task system is, depending on how you look at it, either a sophisticated todo list or a very simple bug tracking system. Tasks are given a category, urgency, short description, details (never quite enough), and assigned to a person. Normal is the default level of urgency; critical tasks are those which must be dealt with before the feature in question can go live, or, if it is already so, ASAP; wishlist items are generally feature requests.

If you have outstanding tasks there will be an "N Tasks" item in your personal menu. Tasks can be assigned to, and viewed by, all users but can be edited and deleted only by trusted users.

3. Notes

Who is considered trusted?

In order to perform certain tasks you need to be "trusted" by the system. All current committee members and people who have the trusted flag set in the Person table (generally former committee members, hon VPs etc.) are considered to be trusted.

Access Keys

At present there is a lack of consensus as to exactly what accesskeys are actually for. It is hardly surprising therefore that there are few conventions as to how they should be used in order to achieve whatever it was they were supposed to do. Nevertheless we've had a go, in the hope that it will one day prove useful to somebody, somewhere.

Access key mappings
SSkip navigation (the beginning of the content on current page).
1Home page.
2Forthcoming events.
5Frequently Asked Questions (FAQ).
6Help (the top of this page).
9Contact details.
0Access key details (here).

Multiple photo versions

There needs to be some sort of policy on multiple versions of the same photo, e.g., Thermals over Bicester and An improvement.

I would suggest avoiding multiple copies of the same photo except where either the versions differ substantially or different versions are required elsewhere on the site and cannot be generated by get-img.cgi. Where multiple versions exist they should reference each other in their notes.

There is some difference of opinion as regards the question of whether adjusting the levels and colour balance of a photo constitutes a significant difference. If you are numbered amongst those who think that it does then please could you try to upload an edited version along with the original where necessary. OTOH could those who think that it does not please refrain from making any alteration which loses too much information—brightness and contrast adjustment are considered harmful for this reason.