ADMIN PANEL REQUIRES SIGN IN. YOUR ACCOUNT MUST HAVE ADMIN PERMISSIONS.
ADMIN CREDENTIALS REQUIRED
โ VERIFYING... ONE MOMENT
โ
ACCESS DENIED
Your account does not have admin permissions.
MANAGING:โ
โถ RECENT SESSIONS โ MANAGE & DELETE
Delete removes a session and all associated game data. You have 10 seconds to undo before it's permanent.
โ
LOADING SESSIONS...
โถ BOWLER ROSTER
The app auto-matches truncated screen names (WAYN โ Wayne, DARN โ Darnell). Add or remove bowlers here.
โ
LOADING...
โถ SCREEN NAME MAPPINGS
Known truncations the AI has encountered. These train the matching algorithm.
โ
LOADING...
โถ AUTHORIZED USERS โ THIS LEAGUE
Users listed here can sign in and upload scores for this league only. Super admins (set in Code.gs โ SUPER_ADMIN_EMAILS) can access and upload to all leagues regardless of this list.
โ
LOADING USERS...
โถ ADD USER
GMAIL ADDRESS *
DISPLAY NAME
ROLE
โถ DATABASE OVERVIEW
โ
TOTAL SESSIONS
โ
TOTAL GAMES
โ
ACTIVE BOWLERS
โ
WEEKS TRACKED
โถ APPROVED UPLOAD USERS
These are stored securely in your Apps Script โ never in any public file. Edit Code.gs to change them.
โ SECURITY STATUS
โ Approved emails stored server-side only
โ Google ID tokens verified on every request
โ Frontend never receives the approved list
โ Admin routes require separate admin check
โ All deletes are logged with user + timestamp
โถ WEEKLY EMAIL
Automatic weekly digest fires every Monday at 8am via Apps Script time trigger. Configure recipients in Code.gs โ EMAIL_CONFIG.
โถ GUTTER GAZETTE
Click when everyone's done bowling for the week. Generates the recap from this league's scores for the current week only, then publishes it to the Weekly tab.
โถ DATA EXPORT
โถ LEAGUE MANAGEMENT
Create and manage leagues. Each league gets its own isolated Google Sheet. Users select their league on the main site.
โถ CREATE NEW LEAGUE
LEAGUE NAME *
LEAGUE DAY
ADMIN EMAILS (comma-separated)
BOWLERS (comma-separated)
PRIMARY COLOR
SECONDARY COLOR
ACCENT COLOR
โถ EXISTING LEAGUES
Loading leagues...
โ CONFIRM DELETE
This will permanently remove this session and all game scores from the database. You'll have 10 seconds to undo.