History of OpenBrewComp
OpenBrewComp grew out of the competition systems used for the 2008 Dixie Cup and Fall Classic homebrew competitions. While both competitions had many of the same requirements, there were some differences between them, and not just in the size of the competitions (821 entries for the Dixie Cup, down from 904 in 2007 thanks to Hurricane Ike, and 227 entries for the Fall Classic), but also in how the competitions were managed.
For example, due to its size, the Dixie Cup has, for many years, split several of the standard BJCP categories into multiple award categories. As a result, the competition software has to handle BJCP categories with multiple awards. But that’s not all. It also has to accomodate special non-BJCP categories (e.g., cereal beer, gruit, malt liquor) as well as a first-time entrant category. The Dixie Cup also has separate best-of-show awards for beer and mead/cider. The Fall Classic has none of these requirements.
Another difference is with judge registration. The Dixie Cup does not bother with pre-registration of judges but the Fall Classic encourages judges to pre-register. The Fall Classic also sends invitations to potential judges, so the competition software needed to be able to automatically send email, both invitations and reminders, to judges.
A couple of other differences are that the Dixie Cup is a MCAB qualifying event while the Fall Classic is not. The Dixie Cup also belongs to a regional group of competitions that recognize a homebrewer, homebrew team, and homebrew club of the year, so reporting results to MCAB and the Lone Star Circuit is required.
As a result of these differing requirements, the original code, which began life as a replacement for the online registration system that was used for the Dixie Cup for several years prior to 2007, has undergone many changes since it’s birth. The new-for-2007 online registration system was started with Ruby on Rails 1.2. Even though Rails 2.0 was released between the time the project started and when the Dixie Cup registration period opened, the migration to Rails 2.0 was not made until after the 2007 Dixie Cup was over.
Up to, and including, 2007, the Dixie Cup used a separate program for managing the competition. As a result, the 2007 online registration system, like its predecessors, provided the means of exporting a subset of the database to CSV files that were then loaded into the competition management program. The CSV export functionality is still included, but not recommended for use, and will most likely be removed in a future release.
After the 2007 Dixie Cup, it was decided that the competition management program needed to be replaced, and work was begun to extend the online registration system to be the replacement. So more functionality was added, a migration to Rails 2.0 was undertaken, and the result was successfully deployed for Dixie Cup XXV.
About the time that online registration was beginning for Dixie Cup XXV, a project to adapt the system to the Fall Classic was begun. As mentioned previously, the Fall Classic had some requirements of its own so more features were added to a forked copy of the code.
Since the 2007 Dixie Cup, some other clubs have expressed interest in using the system for their own competitions, but the code was tied a bit too closely to the Dixie Cup to be easily used for another competition. The fork of the code for the Fall Classic helped remove many of the Dixie Cup dependencies. The result was a codebase that could more easily be adapted for other competitions.
A few more tweaks, another migration of the code base, this time to Rails 2.2, and OpenBrewComp was born. It still has some rough edges, and some bits of legacy code that have not yet been excised, but it should be in good enough form that a competent Rails programmer could easily adapt it for another homebrew competition (not unlike what was done for the Dixie Cup).
Update: OpenBrewComp has been updated to work with Rails 2.3.4.