Last updated 12 January 2009. Created on 28 December 2008.
Edited by kay_v. Log in to edit this page.

Note: this recipe is not yet complete. Please feel free to implement it as is for testing purposes at this stage and let me know your suggestions. Gaps are being filled in on a bi-weekly basis at the moment, so check back for additional information.

Objectives, and invitation to contribute

This recipe is intended to grow over time, so please contribute your thoughts via the contact form or in the comments. I will incorporate good suggestions and instructions into the recipe, and will also place specific requests for help in the comments.

The recipe is currently in the early stages. It initially focused on scoring. It has now moved onto linking together the following three basic needs of race organization:

  • Registrations & Payment Tracking
  • Schedules
  • Scoring

More will follow, especially with your suggestions and help.

Intended End Users

The goal of this recipe is to create a site that lets regatta organizers compile and disseminate the plethora of information required for running a regatta.

This first phase is focused on allowing scorers to read scores of multiple one-design fleets from a results sheet and enter them directly into a web form. This form is then automatically published to various pages (e.g. pages of results from the day/series/season, fleet pages and individual boat pages). It is intended to eliminate the need for scorers to create html, cvs imports, styles, etc. in their effort to publish scores quickly. The parameters are simplicity and efficiency for scorers.

Initial Approach to Scoring

There are a lot of variations in regatta formats, as well as in scoring philosophies. The initial approach here matches that of my frostbiting fleet (what's frostbiting, you say?):

  • low-point scoring for a multi-day series
  • each day's score is automatically totaled; a throwout can be entered manually, and it is automatically calculated in the score
  • the total from each day is used to calculate the series and season standings.

Intended capabilities include entering/calculating/ordering scores, distinguishing the winner of tie breakers, and calculating penalties (calculating BYEs are slated for a future phase). This version is intended to handle multiple one-design fleets. A few items that will eventually be automated are done manually for now, and eventually the site recipe should describe ways to handle all online regatta needs.

Please feel free to propose solutions for other regatta/scoring formats and how to prepare a site for them (but perhaps in the comments, we can avoid the debate about which is 'best' :-) ).


Please grab the latest Drupal 6 build, along with the most recent versions of:

All of these modules are available for Drupal 5, as well, so following the recipe for D5 should also not be complicated (others should feel free to submit modifications for a D5 version of this recipe).

Place the module folders on your server at /sites/all/modules. Enable them at Administer > Site Building > Modules (admin/build/modules).

Create Content Type and Fields for Scoring

I called my content type 'finisher', since a new node of this type will be created for each boat that participates in a given day of racing (logical enough, right?). Also, since the title of each Finisher node can follow the same pattern, I decided to eliminate a few steps for the scorer by setting up an automatic node title. Instructions are included in the following steps.

  1. Create a new content type at Administer > Content management > Content types (admin/content/types).
  2. Name the type whatever makes sense to you and your scorers, of course, and give it an appropriate Type and Description. I used the following:
    Name - Finisher
    Type - finisher
    Description - A list of finishing positions of a given boat over the course of a day of racing.
  3. Create an automatic nodetitle
    "Interclub 820 racing on 11/30/2008"
  4. Add fields
    (Note that fields R1-R6 are for individual races; add one of these fields for each of the races you intend to hold in a day; if you don't know how many there will be, put more than you expect to run - unrun races will automatically be counted as zero and have no impact on scoring).
    field label: Fleet; field name: fleet; field type: Text; Required;
    field label: Sail number; field name: sailnum; field type: Text; Required;
    field label: Skipper; field name: skipper; field type: Text;
    field label: Crew; field name: crew; field type: Text;
    field label: Date of race; field name: dor; field type: Date; Required;
    field label: R1; field name: r1; field type: Integer;
    field label: R2; field name: r2; field type: Integer;
    field label: R3; field name: r3; field type: Integer;
    field label: R4; field name: r4; field type: Integer;
    field label: R5; field name: r5; field type: Integer;
    field label: R6; field name: r6; field type: Integer;
    field label: Throwout; field name: throwout; field type: Integer;
    field label: Points; field name: rdtot; field type: Computed;
    field label: Tie breaker; field name: tiebreaker; field type: Integer;
    field label: Place; field name: position; field type: Integer; Required.

Create Action to Continue Adding More Finishers

Create View of Results

The view will show a given day of racing, with all boats and information arranged in a table.

  1. Create a new View at Administer > Site building > Views (admin/build/views).

Initial Approach to Schedules and Linking Scores to Race Dates

Initial Approach to Collecting Competitor Signup Information

Next phases

Once this initial phase (focused on one regatta format and its approach to scoring) is complete, it would be useful to include the following items - please add to the list via the contact form:

  • Other scoring approaches/regatta formats
  • Race Committee signup
  • Crew pool

Looking for support? Visit the forums, or join #drupal-support in IRC.