BCOEM Homebrew Competition Guide

This page is intended to document and share some of GTA Brews homebrew club’s best practices with using BCOEM for running homebrew competitions.

Email Accounts

Each of our competitions are run by a large-ish “Crew” that works together to coordinate the various areas of the competition. We have one email account that is setup to forward to the entire Crew for that specific competition, functioning as an internal distribution list of sorts.

Eg.

  • brewslam@gtabrews.ca
  • seasonal@gtabrews.ca

The email account above is not intended to be public facing since we don’t want to expose the entire Crew to questions from entrants, judges, stewards. We use the same public facing email account for all our competitions, and it only forwards to the Competition Organizer, Head Judge, and Head Steward. This preserves the anonymity of the entries, and allows other members of the Crew to serve as judges or stewards in the competition.

Eg.

  • comp@gtabrews.ca

In addition to the email accounts above, we have one more that is used to facilitate several Crew members working together to solicit competition sponsors. Each of these Crew members sets up their email client to be able to “send email as” this shared email account, and the email account is setup to forward incoming mail to each of them. This way each member of the sponsorship team is able to see replies from sponsors without that person having to remember to forward.

Eg.

  • sponsorship@gtabrews.ca

Competition Website

Our preference is use our centralize as much information as we can on our competition website, and limit the info we put into BCOEM. Most of our BCOEM text boxes simply contain links back to our competition website for rules, volunteer info, sponsors & prizes, etc.

Each competition has a homepage which is intended to the main public facing page, with links to other pages for detailed info, and also a link to the BCOEM install.

BCOEM Install and Config

Based on BCOEM Installation Instructions with GTA Brews specific configuration choices.

This article assumes the website is hosted with a premium host service that can handle most of the background technical details like updating PHP, MySQL versions, and obtaining the correct SSL certificates, etc… We use SiteGround and have been happy with their technical support.

Backup Any Previous Configuration

If you have a existing installation from a previous competition, you’ll want to backup your configuration files you know what was working before:

site/config.php
paths.php
site/config.mail.php

Create Sub-Domain

Create a sub-domain dedicated to your competition. Eg. seasonal.gtabrews.ca

Using a sub-domain helps to eliminate cross contamination between your competitions’s BCOEM instance, your main website (WordPress installation), and any other BCOEM instances you may have.

Database Setup

  1. Create MySQL user & password for database
    • User: <db_username>
    • Password: <autogenerated+saved>
    • If username is autogenerated, apply a label instead to remind you what it’s for
  2. Create MySQL database for the competition
    • Database: <db_name>
    • If DB name is autogenerated, apply a label (Eg. gtabrews_seasonal_2021) instead to remind you what it’s for
  3. Link the user to the database

Download Latest Stable BCOEM Version

The latest release of BCOEM can be found here, however it’s usually a good idea to check with some other competition organizers what version they used, and if there were any issues.

As a competition organizer, it’s also a good idea to keep tabs on the BCOEM GitHub Issues. Sometimes there are small bugfixes submitted without prompting a major release, and you may wish to apply those fixes yourself. In the few months around competition time, you may even wish to go as far as subscribing to GitHub notifications to be aware when issues are reported and/or fixed.

Upload BCOEM to Your Website

Upload the .zip to the public_html section on your subdomain.

Extract the .zip, then move all the files contained in the extracted folder back into the public_html directory.

Configure BCOEM Files

In site/config.php:

$username = "<db_username>";
$password = "<autogenerated+saved>";
$database = "<db_name>";
$session_expire_after = 90;
$setup_free_access = TRUE;
$sub_directory = "";

We have experienced issues with BCOEM sending emails for Confirmation, Password Reset, and Contact Form. The root issue is because PHP mail() function is unreliable. We use SMTP mailing instead.

In paths.php, Enable SMTP (PHPMailer):

define('ENABLE_MAILER', TRUE);

In your site/config.mail.php, Setup your SMTP Mailing:

$mail_default_from = "comp@gtabrews.ca";
$smtp_host = "gtabrews.ca";
$smtp_auth = TRUE;
$smtp_username = "comp@gtabrews.ca";
$smtp_password = "<email_password>";

Note: The value for $stmp_host will vary based on your webhost.

Setup BCOEM Installation

TODO