Friday, 18 May 2012

1. Building a Booking System With Google AppScript

Berrick Saul Building Photo credit: Paul Kelly

We had an interesting enquiry for a mini "booking system" come in this week. The need is for a simple online way for research students ( 200ish of them ) to book hot desks (between 30 and 100 ) in the Berrick Saul Treehouse. They call them "perches".

Having looked at our ENTERPRISE room booking system, they were wondering if there was anything simpler that could be done with Google Apps perhaps. Maybe it could be done with a Calendar?

The Illusion of the Simple Problem

If someone puts it to you, like that, it sounds perfectly feasible doesn't it? How hard could it be? During my spare time this week it was suggested I take a look and see whether it would be possible... not to actually do it, just to see if what looked like a simple problem really was as simple as it sounded.

The person who requested this was on leave this week, so I've not been able to ask questions to get to the bottom of what they really want. So I've had to have a think about it one afternoon whilst juggling a massive collection of assumptions ( all of which will probably prove to be wrong ).

Getting Started

Anyway, so my initial thoughts were that there were three ways of doing this:

  1. Google App Engine: Too complex. Who wants to write another booking system from scratch? I haven't got the time or the ability.
  2. Google Spreadsheet(s) with an AppScript UI. Difficult to visualise/manage for non-technical staff, for example, if someone wanted to add a collection of "perch bookings" by hand
  3. Google Calendar with an AppScript UI. It would seem sensible to use a calendar for dates ( isn't it? ). Maybe we'd be able to connect with students' calendars so that their bookings would appear for them and they'd also get reminders etc. I'm not sure what having 70ish bookings on one day would look like though... it might be a mess too far.

And so, with a pad and paper I doodle some questions, or gotchas, or worries. It wasn't long before it was full... it included:

  • How do people currently book a perch?
  • How are perches identified? 
  • Have you EVER been too full? - What happens then?
  • How many perches is a student likely to want to book? Every day for a term, twice etc?
  • Would you expect people to be able to book a range of dates?
  • Would you expect people to be able to choose their perch?
  • What is the duration of a booking? By the hour? By the day?
  • Is there a personal limit on the number of bookings you can make? Per day? Per term?
  • Is there a "fairness" policy, randomness or just first come, first served arrangement for bookings?
  • Are there penalties for unused bookings?
  • Can students see who has booked other perches?
  • How far ahead can people book a perch? Next week, next month, a term, forever?

Given that they're called "perches", I think the best method should be flapping about until one becomes available. Based on what would be easiest  simplest, I worked on the assumptions that:

  • Perch booking are for an entire day
  • You are assigned perches at random ( you don't get to choose which perch )
  • There aren't any limits on how many you can book
  • You can't book ranges ( however admin staff may be able to do this to you )
  • I would leverage the CalendarEvent as much as possible. 
  • The user interface ( UI ) will need to take a back seat to it "just kinda working". 

But also, I wanted to not get too far with a solution. Partly because of all the unanswered questions and assumptions at the beginning but also because this exercise, if successful might be actually created by someone else who I might work with for an hour or so, included in which I'd teach them everything I know about Google AppScript... 

Here goes...

1 comment:

  1. This comment has been removed by the author.