Internal Documentation · Club Admins & Coaches

Club Admin
Coach Guide

Your club admin panel is everything you need to run a chess club on Elements of Chess — manage your roster, send invites, post announcements, review games, and keep an eye on activity. The platform handles the chess. You handle the people.

🔐

Access & Login

01
URL

Your club admin panel lives at /admin. Every club on the platform shares this URL — the panel scopes itself to your club automatically based on your login credentials.

http://localhost:3000/admin
https://elementschess.com/admin
Requirements

You must be logged in as a user with is_club_admin = true in the database, assigned to your club. Your account is created by a super admin when your club is onboarded — you'll receive an email with your credentials.

Resetting Your Password

Use the Forgot Password flow on your club's login page at /{your-club-slug}. If you're locked out completely, contact your platform super admin to reset your password directly.

Pro tip: Keep your admin panel open in a pinned browser tab. The session persists until you explicitly sign out — no need to log in every time.
🗺️

Panel Overview

02

The club admin panel has 7 views accessible from the left sidebar. Each view loads data for your club only — you cannot see data from other clubs.

◈ Dashboard

A snapshot of your club's health: active players, games played, new signups this week, and recent activity.

♟ Players

Your full roster. See ELO, verification status, engagement state, and take actions like suspend or promote.

⊕ Invites

Generate invite links for new members. Set expiry dates and usage limits. Perfect for distributing at meetings.

⊞ Games

Full game history for your club. Download PGNs, void games if needed, and search by player name.

📢 Announcements

Post announcements that appear in the club lobby for all your players. Good for upcoming events or schedule changes.

✦ Message of Day

A short message that displays prominently in the lobby when players log in. Resets when you post a new one.

Dashboard

03

The Dashboard is your landing page when you sign in. It shows four key stats for your club at a glance:

Total Players — all registered accounts in your club
Active This Week — players who played at least one game in the last 7 days
Games This Week — total rated games played in the last 7 days
New This Week — newly registered members in the last 7 days

Recent Activity

Below the stats, the dashboard shows your most recent game results — who played, the outcome, the time control, and how long ago. This is a quick way to confirm the platform is being used between coaching sessions.

What to check at the start of each week: Active This Week should be growing. If it's flat or declining two weeks in a row, post an announcement or use the Message of Day to re-engage your roster.

Players

04

The Players view shows your full club roster as a searchable table. Each row shows: username, email, ELO rating, verification status, registration date, and available actions.

Verification Status

Every new player must verify their email before they can play rated games. The status badge shows:

verified — Email confirmed, player can play games
unverified — Account created, waiting on email click
suspended — Account suspended by admin action

If a player says they didn't receive their verification email, use the Resend Verification action on their row. Note that some school email systems quarantine external emails — ask them to check their spam folder, or have IT whitelist your platform domain.

Player Actions

Clicking the action buttons on a player row lets you:

Suspend — Immediately revokes their ability to log in or play games. Use for conduct issues.
Unsuspend — Restores access for a previously suspended player.
Promote to Admin — Grants is_club_admin access. Use for a co-coach or assistant.
Demote — Removes admin access without deleting their account.

Before suspending a player: Suspension is immediate and the player will be kicked from any active game. Make sure you're acting on the correct account — search by email, not just username, to avoid accidental suspension.
ELO Ratings

Every player starts at 1200 ELO. Ratings update automatically after each rated game using a standard Elo formula. You cannot manually edit a player's ELO — contact super admin if a correction is needed due to a system error.

Invite Links

05

Invite links are the primary way to onboard new players to your club. Anyone with the link can register a new account scoped to your club — no email domain required.

Creating an Invite Link
1
Choose Your Club
If you manage multiple clubs (super admin only), select the target club from the dropdown. Regular club admins will only see their own club.
2
Set a Label (optional)
A label helps you remember what the invite was for — e.g. "Fall 2025 Tryouts" or "Tournament Sign-up". It's for your reference only, not visible to players.
3
Set Expiry & Usage Limit
Choose when the link expires (default 7 days) and optionally cap how many times it can be used. Leave usage limit blank for unlimited uses within the expiry window.
4
Copy & Share
The generated URL appears immediately. Copy it and share via text, email, Google Classroom, or print it on a sign-up sheet.
Revoking a Link

Any active invite can be revoked by clicking Revoke on its row in the active invites table. Revoked links stop working immediately — players who already used the link keep their accounts.

Best practice: Create a new invite link for each recruiting event and label it clearly. This way you can see exactly how many players each event generated, and you can revoke old links when they're no longer needed.

Games

06

The Games view shows your club's full game history — up to 50 results by default. Each row shows: both players, the result, time control, ELO changes, and when the game was played.

Filtering Games

Use the search bar to filter by player username. The club dropdown (visible to super admins) lets you scope results to a specific club. Press Search to apply filters.

Downloading PGN

Every completed game has a PGN button that downloads the full Portable Game Notation file. PGN files can be opened in any chess analysis tool — Lichess, Chess.com Analysis, or desktop engines like Stockfish/Arena.

Great use case: download a student's recent game before a coaching session to walk through it together.

Voiding a Game

If a game needs to be removed from the record (e.g. a technical error, disconnection mid-game, or conduct violation), click Void on the game row. You'll be asked for a reason — this is logged for audit purposes. Voided games don't count toward ELO changes.

Voiding is permanent. Once a game is voided, ELO changes from that game are not automatically reversed — the system only prevents future recalculation. Contact super admin for manual ELO corrections if needed.
📢

Announcements

07

Announcements appear in the lobby for all players in your club. They're persistent — players see them each time they load the club page until the announcement is deleted.

Posting an Announcement

Fill in a Title (shown prominently) and Message body. The club selector lets super admins post platform-wide — as a club admin, your announcements go to your club only.

Good uses: upcoming tournament dates, schedule changes, maintenance windows, congratulating a player on a milestone.

Deleting Announcements

Old announcements clutter the lobby. Delete them when they're no longer relevant using the Delete button on each announcement row. Deletion is immediate and cannot be undone.

Keep it short and actionable. Announcements that are too long get ignored. If you have a lot to communicate, post a short announcement with a link to a Google Doc or your school communication channel.

Message of the Day

08

The Message of the Day (MoTD) is a single-line message displayed prominently in the lobby — typically as a banner or highlighted callout when players first land on the club page. It's designed for time-sensitive, short-form communication.

Difference from Announcements

Announcements are multi-line, persist until deleted, and stack if you post multiple. The Message of the Day is a single short message — posting a new one replaces the old one. Think of it as the "today" message vs. a bulletin board.

Use it for: "Club meets today at 3:30pm in Room 104" or "Tournament brackets are live — check the leaderboard!"

Removing the Message

Once the day or event is over, delete the MoTD using the Delete button so the lobby stays clean for the next session. If you forget, the next MoTD you post will replace it automatically.

Audit Log

09

The Audit Log records every admin action taken in your club — suspensions, promotions, invite creation, game voids, announcements, and more. The 100 most recent entries are shown, sorted newest first.

What Gets Logged
ActionWhen It's Logged
user_suspendedA player is suspended by an admin
user_unsuspendedA player is reinstated
user_promotedA player is made a club admin
user_demotedAdmin rights are removed from a player
invite_createdA new invite link is generated
invite_revokedAn invite link is manually revoked
game_voidedA game is voided by an admin
announcement_postedAn announcement is created
announcement_deletedAn announcement is removed
motd_postedA Message of the Day is set
Why this matters: If a player disputes an action (e.g., "I was suspended for no reason"), the audit log is your source of truth. It records the acting admin's username and timestamp for every action.
🛡️

Roles & Permissions

10

The platform has three distinct roles. Understanding them helps you manage your roster and know when to contact the super admin for help.

Player
Default role for all new registrations. Can play games, view the leaderboard, and receive announcements. Cannot access the admin panel.
Club Admin (Coach)
You. Full access to your club's admin panel. Can manage players, invites, games, and comms within your club only. Cannot affect other clubs.
Super Admin
Platform-level access. Can manage all clubs, run platform analytics, configure email templates, and view the full event log. Operated by the Elements of Chess team.
Suspended
Not a role but a state. A suspended user exists in the database but cannot log in or play games. Suspension can be reversed at any time.
What Club Admins Cannot Do

As a club admin, a few actions are reserved for super admins only:

• Change your club's name, slug, colors, or logo
• Delete your club or create a new club
• Edit platform-wide email templates
• View data from other clubs
• Manually adjust a player's ELO rating
• Access platform-wide analytics or the growth reports

For any of the above, reach out to your platform super admin.