Contest Lifecycle

Background

Contest sanctioning was previously handled by a dedicated application written by Randy Owens and running under the usnationalaerobatics.org domain. While the app was quite useful, the different web address and separate user credentials caused frequent confusion. In addition, it could not be integrated with the new web site's functionality. Contest pre-registration was handled by another dedicated application written by Doug Lovell and running under the iacusn.org domain. It suffered from the same lack of integration and was decomissioned at the end of the 2016 contest season.

Sanctioning and pre-registration are now incorporated in the www.iac.org Drupal platform.

Overview

The following diagram illustrates the data flow between the IAC web site, JaSPer, IACCDB, and various human players.

Note: The flow starts at the upper left with "Sanction Request".

 

Step by Step

  1. Any current member or site editor can create a new Contest node, subject to the following validations that parallel those in the IACCDB Rails model for contests:
    1. Title must be between 4 and 48 characters in length
    2. City must be no more than 24 characters
    3. State must be exactly two characters
    4. Contest Director name must be no more than 48 characters
    5. Region  must be no more than 16 characters
  2. Once the node is successfully created, the web site directs the user to the EAA web site to fill out the event insurance form
  3. When the contest node is first saved, a Drupal rule tells the IAC Contest Database (IACCDB) to create a corresponding Contest record. IACCDB responds with a unique ID number that's used by the web site, the JaSPer scoring software, and IACCDB
  4. When the contest is saved or updated, a Drupal rule automatically sends email to IAC's Executive Director.
  5. If the submitter has filled out the Supplemental Rule section, another Drupal rule sends an email to the Sanction Committee Chair.
  6. Waiver approvals are handled manually via email.
  7. Once EAA approves the insurance application and the Rules Committee approves any waiver request, the Executive Director updates the Contest record to indicate that sanction has been granted.
  8. A Drupal rule (TBS) sends an email to the CD and person who created the Contest node, indicating that sanction has been granted. The contest becomes visible on the contests calendar.
    • A weekly batch script sends a list of unsanctioned contests to the Executive Director, along with the date on which each listing was created. This allows the ED to nag CDs as appropriate.
  9. Current members may pre-register for the contest until the specified deadline; if none is provided, pre-registration ends the day before practice begins. Note: Pre-registration is a fairly involved process on the web server, and thus has its own page within the Webmaster's Guide.
  10. Ten days before the contest start date, a cron job sends an email reminder to the Executive Director to send the Unknowns to the recipient designated in the contest record.
  11. The contest scorer initializes JaSPer. As part of that process JaSPer downloads the list of upcoming contests and current members from web site. The scorer selects selects the contest from the list, then JaSPer fetches the pre-registrations from the web site.
  12. As the contest progresses, the Judges send score sheets to the Scorer.
  13. The Scorer enters the score sheets into JaSPer.
  14. JaSPer uploads the results to IACCDB when instructed by the Scorer to do so.
  15. Two days after the contest ends, a cron job checks to see if scores are present in IACCDB.
  16. If no scores are found, the web site sends an email to the Contest Director reminding them to upload the scores. This will repeat daily until the task is completed.
  17. Once scores are found, the web site emails an invoice (number of contestants x per-contestant sanction fee) to the Contest Director.