â›ĩ DYC Race Officer & Governor's Guide

Invitational Regatta Hub Operations Manual & Institutional Memory

đŸ“Ĩ Download .MD File 🌐 Open Live Hub
â„šī¸
Permanent Institutional Memory: This manual provides the complete operational reference for the DYC Race Governor, Race Committee, and Principal Race Officers (PRO) managing Dahlgren Yacht Club Invitational Regattas (including the Dahlgren Cup and Under the Guns Regatta). You can bookmark this page, keep it open on committee boats via phone or tablet, or download the markdown source below.

🧭 Quick Reference & Key Links

Resource Link / Access Purpose
Live Regatta Hub dahlgrenyachtclub.org/race/invitational-hub.html Public notice board, registration form, live scratch sheet, scores, photo gallery.
Race Officer Console Hub → âš™ī¸ Race Officer tab Update race status, broadcast AP delays, send batch emails, archive regattas.
Race Officer PIN 7171 (or 1369) Unlocks the management console on phone, tablet, or laptop.
Google Sheets Roster DYC Regatta Management Sheet Master database: registrations, standing prospective list, scoring, and history.
Google Drive Photos DYC Regatta Photos Folder Stores full-resolution competitor uploads and finish-line photos.
Apps Script Web API .../AKfycbw0e_OS5X4_foLgUyLxp2DtXR2V3Kv3rUGnZNBTricLrJRIIAbWEPo841JKZXTnJqfY/exec Backend API bridging web forms to Google Sheets & Drive.

đŸ›ī¸ System Architecture Overview

The DYC Invitational Hub uses a modern serverless architecture hosted on GitHub Pages / public web servers with Google Apps Script serving as a zero-cost, maintenance-free database and email engine.

 [Competitors & Visiting Clubs]
         │ (Mobile Browser)
         â–ŧ
 ┌────────────────────────────────────────────────────────┐
 │   DYC Invitational Regatta Hub                         │
 │   (/race/invitational-hub.html)                        │
 │                                                        │
 │  đŸ“ĸ Notice Board       📝 Online Registration          │
 │  â›ĩ Scratch Sheet      🏆 Results & Scoring             │
 │  📸 Photo Gallery      âš™ī¸ Race Officer Console          │
 └───────────────────────────â”Ŧ────────────────────────────┘
                             │ JSONP / REST
                             â–ŧ
 ┌────────────────────────────────────────────────────────┐
 │   Google Apps Script Web App Engine                    │
 │   (/race/invitationals-apps-script.gs)                 │
 └─────────────â”Ŧ───────────────────────────â”Ŧ──────────────┘
               │                           │
               â–ŧ                           â–ŧ
 ┌───────────────────────────┐ ┌──────────────────────────┐
 │   Google Sheets Database  │ │   Google Drive Media     │
 │   ("DYC Regatta Mgmt")    │ │   ("DYC Regatta Photos") │
 │                           │ │                          │
 │ â€ĸ Config                  │ │ Full-resolution boat &   │
 │ â€ĸ Registrations (Active)  │ │ finish line photographs  │
 │ â€ĸ ProspectiveRacers (★)   │ └──────────────────────────┘
 │ â€ĸ Announcements (Live)    │
 │ â€ĸ Results (Scoring)       │
 │ â€ĸ Archives (History)      │
 └───────────────────────────┘

📋 The Standing Tab: ProspectiveRacers

In the Google Sheet, there is a permanent standing tab named ProspectiveRacers.

What It Is & Why It Matters

Sheet Structure (Row 1 Headers)

name email club notes
Mark Liersch liersch.mark@gmail.com DYC Race Governor
Chip Warder 4warders@gmail.com DYC Freedom 35
Jane Doe jane.doe@example.com DISC J/24 Skipper
John Smith jsmith@example.org MVYC Express 27
💡
Flexible Headers: The email extractor is case-insensitive and recognizes email, Email, emailAddress, or skipperEmail. Any valid email address found in that row will be automatically included in announcements.

🚀 Phase 1: Announcing an Upcoming Regatta (3–4 Weeks Out)

  1. Open the Regatta Hub.
  2. Switch to the âš™ī¸ Race Officer tab and enter PIN 7171 (or 1369).
  3. Scroll to the 📨 Announce Race / Email Prospective Racers card.
  4. Select the target recipient audience:
    • 📋 Prospective Racers Standing List: Sends to the master contact list in Google Sheets.
    • đŸ“ĸ Combined List: Sends to both the standing list and any early entrants (automatically deduplicated).
  5. The system pre-fills an invitation email containing:
    • Regatta Title & Date
    • Notice of Race (NOR) hyperlink
    • VHF Working Channel
    • Registration & Scratch Sheet link
  6. (Optional) Personalize or add custom notes to the email body.
  7. Leave "Also post this announcement to the Live Notice Board" checked.
  8. Click 🚀 Dispatch Race Announcement Email.
⚡
Spam Safe Batching: The backend delivers emails in batches of 15 recipients with 1.5-second pauses, preventing email providers from blocking your address as bulk spam.

📝 Phase 2: Monitoring Registrations & Scratch Sheet

  1. Skippers visit the public 📝 Register Boat tab from mobile or desktop.
  2. They choose their home yacht club from the dropdown (DYC, DISC, MVYC, ODBC, QYC, SMCM) or enter a custom club name.
  3. Upon clicking Submit Registration & Sign Waiver:
    • The boat is immediately rendered on the public â›ĩ Scratch Sheet tab.
    • A confirmation email is automatically dispatched to the skipper.
    • A new row is appended to the Registrations sheet tab.
  4. Assigning PHRF Ratings: If an entrant specifies an unknown or provisional rating, the Race Governor can open the Google Sheet and edit the rating cell directly.

📡 Phase 3: Race Morning & On-the-Water Logistics

The Race Officer console is mobile-responsive and designed for operation directly from the RC boat or dock.

1. Default VHF Channels

2. Posting Weather Bulletins or Delays (AP Flag)

  1. Open âš™ī¸ Race Officer tab → Enter PIN 7171.
  2. Under 📡 Broadcast Status Update to Fleets, select the current condition:
    đŸŸĸ ON SCHEDULE 🟡 POSTPONED / AP FLAG UP 🔴 ABANDONED / RESCHEDULED đŸ”ĩ RACING COMPLETED
  3. Enter the Bulletin Title (e.g. "1-Hour AP Delay due to light wind").
  4. Enter the Instructions (e.g. "Next announcement at 11:30 AM on VHF 72. Starting area moving south.").
  5. Check "Dispatch automated batch email alert" and choose â›ĩ Current Registered Skippers Only.
  6. Click đŸ“ĸ Post Bulletin & Update Status.

🏆 Phase 4: Scoring & Publishing Results

  1. Open the Google Sheet (DYC Regatta Management).
  2. Click the Results tab.
  3. Enter the finish data:
    • fleet (e.g., PHRF Spinnaker, PHRF Non-Spinnaker)
    • place (1, 2, 3...)
    • boatName, sailNumber, skipperName, club
    • elapsedTime, correctedTime, points
  4. On the website's âš™ī¸ Race Officer tab:
    • Set Race Status to đŸ”ĩ COMPLETED (Scores Posted).
    • Post a final announcement congratulating the winners and thanking participants.
  5. The public 🏆 Results tab immediately displays the formatted scoreboard broken down by fleet.

📸 Phase 5: Participant Photo Dropzone

  1. Competitors and spectators can tap the 📸 Photos tab on the hub.
  2. They pick photos from their phone or camera, enter their name and caption, and tap Upload to Regatta Gallery.
  3. Photos are automatically routed to the Google Drive Photo Folder and rendered in the interactive web lightbox gallery.

đŸ“Ļ Phase 6: Archiving & Resetting for the Next Regatta

When the regatta is finished and you are ready to prepare the website for the next event:

  1. Open the âš™ī¸ Race Officer console.
  2. Scroll down to đŸ—„ī¸ Archive Event & Prepare Next Race.
  3. Enter the next regatta details:
    • Next Event Title: e.g., Dahlgren Cup 2027
    • Next Event Date: e.g., Saturday, August 21, 2027
  4. Click đŸ“Ļ Archive & Reset for Next Race.
đŸ›Ąī¸
Data Preservation: The backend automatically archives the current registrations, announcements, and results into the Archives sheet for posterity. The active tabs are reset clean for the new race, while ProspectiveRacers is 100% preserved.

đŸ› ī¸ Troubleshooting & Google Cloud Administration

1. Board Members See "Someone needs access to 'DYC Regatta Management'"

Cause: Google Drive permissions on the spreadsheet are restricted to a single account.

Resolution:

  1. Open the Google Sheet.
  2. Click the blue Share button in the upper-right corner.
  3. Under General access, change to "Anyone with the link" and set permission to Editor (or explicitly invite BOG member email addresses).
  4. Repeat for the Google Drive Photo Folder (set to Viewer or Editor).

2. Website Shows "0 contacts" for Prospective Racers

Cause: Google Apps Script web apps run immutable deployments. When new code is saved, a new deployment version must be minted.

Resolution:

  1. In the Google Sheet, click Extensions → Apps Script.
  2. Verify the script code matches race/invitationals-apps-script.gs.
  3. Click Deploy → Manage deployments.
  4. Click the Pencil (Edit) icon.
  5. Under Version, select "New version".
  6. Click Deploy.

3. Changing the Race Officer PIN

In the Google Sheet Config tab, change the value corresponding to key adminPin (defaults are 7171 and 1369). The web app immediately honors the new PIN.

📅 Annual DYC Invitational Racing Calendar

Regatta Typical Timeframe Fleets Default VHF Notice of Race
Dahlgren Cup Mid-to-Late August PHRF Spinnaker, Non-Spin, Cruising VHF 71 DahlgrenCupNOR.html
Under the Guns Regatta Early-to-Mid October PHRF Spinnaker, Non-Spin VHF 72 UtgNOR.html
📄 View Raw Markdown Source (RaceOfficersGuide.md) Click to expand
Plain text markdown format: đŸ“Ĩ Download .MD File
Loading markdown source...