Seed a new event
This page is for the organiser only. It creates a new event in the live Firebase
project, either from the standard beach cup template or from a previous Cup as it actually ran,
and seeds everything a fresh Cup needs: the crew teams with
their role targets (including the boat-driver counts your safety and umpire boats need), pairing
codes for admin, timing and every team lead, and the work-back task list. It is safe to open
again later: each step skips anything that already exists, so re-running only fills in what is
missing. The status panel and the rotate-a-code utility below follow whichever event is named in
the page URL (?e=) until you create or update a different one from the
template form, at which point they follow that event instead.
Live mode only
This page seeds the real Firebase project, so it is disabled in demo mode. Open it on the live site once the Firebase config is in place, and it will let you create and finish setting up the event.
Current status
Create event from template
Start from Beach Cup (default), the standard starter structure, or from a previous Cup as it actually ran. An "(as run)" entry copies that event's live team structure: its teams, their role targets and headcounts, the shifts behind each role, and the arrival times the organising committee set. Everything stays editable below before anything is written, so each stop can build on the last instead of starting from the same skeleton every year.
Two things are not copied from a previous event. Work-back tasks always come from the standard task template, because the task board is not publicly readable and this page has no pairing to read another event's. Volunteers are never copied either: a new event starts with an empty pool.
Checking which previous events can be used as a template...
Event details
Lower case letters, numbers and hyphens only. This is the id used in every
page link (?e=) for this event. If an event with this id already exists,
nothing about it is overwritten: only the pieces it is missing get filled in. The preview above
says which case you are in before you press the button.
Work-back tasks are due this many days before this date. Stored on the event so other pages can compute due dates the same way.
Boats and driver targets
Drives the driver-target preview below and each team's arrival time.
Arrival skeleton
When each team is expected to arrive, prefilled from the template. Edit any that differ for this stop, or clear one if it does not apply.
| Team | Arrival |
|---|
Pairing codes
Roster admin devices pair with this code. Choose something not easy to guess.
Timing devices pair with this code. It must be different from the admin code.
Team lead codes
One pairing code per team. A lead uses theirs to open Volunteer management scoped to just their own team. Edit any of these first if you would rather choose your own.
| Team | Lead code |
|---|
Write log
Steps appear here as the event is written.
Kingston role rename
The Boats team's old "Boat Handler" slots are renamed to Lane Delegate
going forward (see the Lane Delegate role card - the name is deliberately different from World
Rowing's "boat handler" crew term, so nobody confuses the two). kingston-2026
was seeded before this rename existed, so this is a one-time cleanup for that event: it only
changes the role label text on its existing slots (and team role targets, if that collection
exists) - it does not add, remove or reassign anyone.
Add shifts and arrival times to an existing event
Role targets now carry shifts - the real Friday and Saturday
windows from the volunteer slot inventory - and each shift can carry its own arrival time.
Both live events were created before that existed, so their teams have role targets with no
shifts behind them. kingston-2026 also has no arrival times at all.
This adds them from the template, and it is safe to run more than once.
It only fills gaps. A role that already has shifts is left exactly as it is, and any arrival time already set by hand is kept. Nobody is added, removed or reassigned, and no headcount changes: each role keeps the number it already needs.
Apply the agreed shift set to an event
Every Cup runs the same roles, the same number of shifts and the same shift times. That agreed set lives in one place in the code, taken from Kingston's own times and cleaned up. This writes it to whichever event you pick, so the two Cups cannot drift apart and nobody has to retype forty shift labels.
This one does change headcounts, unlike the backfill above. It shows you every change first and writes nothing until you confirm. Roles a venue added for itself, like Ottawa's Workboat Operator, are kept. Nobody is added, removed or reassigned, and no volunteer's own assignment is touched.
Results and Athletes, and Umpiring, are left without shift times because those have not been decided yet. Their roles and counts are set; their times stay blank until there is a real answer.
Rotate a code
If a pairing code has been shared more widely than you meant it to be, rotate it. The old code stops working for any new pairing and a new one takes its place. Devices that already paired with the old code stay paired; rotating only stops new ones.