Admin Console¶
What it does¶
The Admin Console is the organiser's hub for running a league. From one screen you share the join code, review who wants to join, configure the league's rules and finances, manage the roster and schedule, pull season stats, and decide what the league shows to the outside world. It's the command centre that keeps everything else — scoring, standings, the ledger — pointed at the right people and settings.
How it works¶
- Open the Admin Console from the menu (visible only if you hold an admin role in the league).
- At the top, your league's join code is shown large. Copy it, share a QR code or link, or generate a fresh code if the old one should be retired.
- If anyone is waiting to join, a pending requests card appears. Tap it to review each request and approve or decline.
- Use the Configure section for league settings (summary, points, fines) and the public dashboard.
- Use the Manage section for the competition schedule, the roster, season stats, and data import.
- If you're the finance manager, a Finance section opens The Ledger for transactions, balances, and fines.
Key details¶
- Pending join requests. Each request shows the person's name, verified email, handicap, and gender. You can approve someone as a brand-new member, or — if they're already on your roster under a slightly different name — link the request to that existing record so their history carries over. The app suggests likely matches, and you can also search the roster yourself. Declining a request lets you add an optional reason, and the person is notified and can request again later.
- Join code. Share the league's short code by copy, QR code, or a shareable link. Generating a new code immediately retires the old one — useful if a code has been shared too widely.
- Public dashboard. Choose whether your league is viewable online without signing in. When enabled, you pick a custom web address for it and control what's shown: whether handicaps and fine totals appear, whether members get public profile pages (everyone, opt-in only, or off), and whether members can see each other's balances. The web address locks once set so shared links keep working; you can deliberately unlock it to change it.
- Season stats. A ranked, season-wide leaderboard generator. Switch between metrics — average points, average net, wins, top-three finishes, fines (total or by type), low gross and low net, commitment, and weekly winners — each shown as a ranked list with proportional bars.
- Role gating. Organisers (commissioners) see the Configure and Manage sections; the finance manager sees the Finance section. Ordinary members don't see the Admin Console at all. Anyone reaching a restricted screen without the right role is turned away with a message.
Technical notes¶
Built with Flutter/Dart. League configuration, roster, and join requests are stored in Firestore, and who can see or change each part is enforced by role checks and Firebase security rules. The public dashboard, when enabled, is served by Firebase Hosting and shows the same standings and figures you see in the app. Smart matching of join requests to existing members runs in the app over your roster.
Related features¶
- Authentication & Onboarding — where members request to join before they reach this console.
- The Ledger — the finance surface opened from the console.
- Scoring Engine — produces the season stats the console ranks.
- Smart Import — the data-import tool reached from the Manage section.
- Leagues — the competition format the console runs.
Last updated: 2026-06-03