Yoyo's Amazing Bingo — Event Day Guide
Pre-Event Setup
1. Seed the Database
Run this once before the event to initialise all teams & activities. This nukes all existing data. The teams are defined manually in src/db/data/teamsData.ts, edit that file to match the teams attending the event before seeding.
This creates activities with dummy placeholder data. Names, descriptions, and answer codes are all auto-generated and must be updated before the event.
2. Update Dummy Data with Real Event Data
After seeding, all activity names, descriptions and answer codes will be placeholders. Update these to match the actual event clues directly in Neon. Special Activity numbers of each team can also be updated if you want to prescribe specific clues to be worth a bonus point for a specific team
Activity descriptions specifically can also be updated via the Activity Editor on the admin page (/admin) as an alternative to editing Neon directly.
3. Retrieve Team Login Codes
After seeding, open Drizzle Studio to view team codes:
Navigate to the teams table. The code column is what teams enter on the login screen. Distribute these to the respective teams before the event starts.
4. Retrieve Activity Answer Codes
In Drizzle Studio, open the activities table. The code column is the 6-character answer code teams must enter to complete each activity. These are what you give to facilitators or place at activity stations if needed.
Admin Page (/admin)
Navigate to the app root (/) and enter the ADMIN_CODE value from the environment config. You will be redirected to /admin.
Game Status
Use the Game Status dropdown to control the game state:
| Status | Effect |
|---|---|
running |
Game is live |
yoyover |
Game concluded. Let teams know to return |
finished |
Play credits |
Resetting Team Progress
If a team needs to be reset (e.g. an error during play):
Via the admin UI:
-
Go to
/admin -
Use the Reset Progression panel — check individual teams or "Select All"
-
Confirm in the dialog
Via CLI:
pnpm db:reset # Reset all teams (prompts for confirmation)
pnpm db:reset <teamId1> <teamId2> # Reset specific teams by ID
Leaderboard
A link to /leaderboard is available from the admin page. As admin you see all teams ranked. Regular team logins only see teams ranked 6th and below.
Activity Editor
Select an activity from the dropdown and edit its description using the markdown editor. Changes are saved to the database and should propagate to all clients in real time.
Scoring
Points are calculated as follows:
- Each completed activity awards its
basePoints(1 pt by default — editable per activity in Neon) - Each team has one special activity — completing it awards
basePoints + 1 - Completing a full row, column, or diagonal on the 4×4 board awards +1 pt each (max +10: 4 rows + 4 columns + 2 diagonals)
Troubleshooting
Admin Activity Editor Displaying Incorrectly
Refreshing the page usually fixes this
Teams not seeing updates in real time
The WebSocket connection may have dropped. Teams can hard-refresh their browser to re-establish the connection.
Team entered correct code but it didn't work
Codes are case-sensitive and exactly 6 characters. Confirm the code from the activities table in Drizzle Studio matches what the team is entering.