Room Management System
One of my first projects at PRI was to create a web-based room management system for one of our customers. This system was built the web was very new so the only option for development web applications was CGI. The room management system kept track of a set of rooms, organized into a map. Each room had an associated schedule and could be reserved by users.
With the intention of building more applications in the future, I built the RMS using an extensible library that used the concepts of rules and actions. Rules were triggered by user input while actions did work to update data or return user interface components. Rules can also act based on output from an action.
The rules/actions model worked by writing description files. These files were processed with a Perl script that output Objective-C source code. For the RMS these source files were then compiled into the individual CGI scripts required by the application.