Creating a rapidly redeployable booking system for UNOLS

I recently worked with Blue Dot Lab to build a rapidly redeployable, interactive booking system for the University-National Oceanographic Laboratory System (UNOLS) based in the US. UNOLS is a consortium of over 60 academic institutions involved in oceanographic research, and individual institutions can require their own system for organizing research expeditions and booking the necessary equipment and boats. Such new systems need to be ready to go with the minimum of fuss and at reasonably short notice.

Blue Dot Lab and I based our solution on a makefile build, a custom Drupal install profile, and site configuration in Features: these all did the heavy lifting of setting up the site's codebase and database. Customizations during and after installation ensured the resulting site was ready to go, and permitted the site's administrator(s) to follow an initial two-stage setup, to both lock down site security and also configure it for the particular institution wanting the new site.


The superuser (uid=1) logs in only once, ensures the installation is
self-consistent, creates other user accounts, and locks down the site.


Any new administrator (created by superuser) logs in from that point onwards, customizes
the site for their institution, and blocks the superuser account for security reasons.

Along with building the custom makefile and install profile, and featurizing and checking all the configuration from an existing prototype, we tested, iterated and confirmed straightforward (re-)deployment on Omega8cc, a strongly makefile-oriented hosting platform. We also converted a substantial body of custom code, inherited from the earlier prototyping phase, into a more stable platform for booking-specific functionality: complicated workflowing between different administrative states; display/permission rules to check who has permission to do what; and integration with external feeds like Ship Time Request Services (STRS). Our test harness was a script of of "manual BDD" tests: gherkin-like tests, written retrospectively (the prototype already existed) and carried out manually (with the option to automate the system at a later date.)

All in all, it was great to be involved in this project to improve the capacity for potentially many institutions, to manage administrative tasks vital to their research excursions. The finished product feels like a robust and specialized system, with Drupal as its backbone and the customizations providing the rest of the structure, tailored to institutional needs.