Ctrl K
ComunidadGuías…

userguide.html

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="canonical" href="https://newtondarts.com/userguide.html">
    <title>User Guide — NewTon DC Tournament Manager</title>
    <meta name="description" content="Complete user guide for NewTon DC Tournament Manager. Learn how to set up, register players, run matches, record results, and export standings for your darts tournament.">
    <link rel="icon" type="image/jpeg" href="images/logo.jpg">
    <link rel="preload" href="fonts/Insignia-Regular.otf" as="font" type="font/otf" crossorigin>
    <link rel="preload" href="fonts/Inter-VariableFont_opsz,wght.ttf" as="font" type="font/ttf" crossorigin>
    <link rel="stylesheet" href="css/landing.css">
</head>
<body>

<a class="docs-back-link" href="/">← NewTon DC Tournament Manager</a>

<div class="docs-content">

    <h1>User Guide</h1>
    <p class="docs-subtitle">Everything you need to run a darts tournament with NewTon DC Tournament Manager.</p>

    <nav class="docs-toc">
        <h2>Contents</h2>
        <ol>
            <li><a href="#quick-start">Quick Start</a></li>
            <li><a href="#formats">Tournament Formats</a></li>
            <li><a href="#configuration">Configuration</a></li>
            <li><a href="#managing">Managing a Tournament</a></li>
            <li><a href="#running">Running Matches &amp; Match Controls</a></li>
            <li><a href="#qr">Chalker QR Workflow</a></li>
            <li><a href="#results">Results &amp; Export</a></li>
            <li><a href="#devconsole">Developer Console</a></li>
            <li><a href="#tips">Tips &amp; Tricks</a></li>
            <li><a href="#docs">Documentation</a></li>
        </ol>
    </nav>

    <h2 id="quick-start">Quick Start</h2>
    <p>NewTon DC Tournament Manager runs entirely in your browser — no installation, no account, no internet required after the first download.</p>
    <ol class="docs-quickstart">
        <li><div><strong>Download</strong> — Get the latest release from <a href="/releases/">the releases page</a>. Unzip and place the folder anywhere on your computer.</div></li>
        <li><div><strong>Open</strong> — Launch <code>tournament.html</code> in your browser. No server needed — double-clicking the file works.</div></li>
        <li><div><strong>Configure</strong> — Visit the <strong>Config</strong> tab to set your club name, logo, point values, and leg counts. You only need to do this once.</div></li>
        <li><div><strong>Create</strong> — Click <strong>New Tournament</strong> and enter a name and date.</div></li>
        <li><div><strong>Register</strong> — Add players by name. Mark payment status as players arrive. NewTon DC Tournament Manager remembers names across tournaments via the Saved Players registry.</div></li>
        <li><div><strong>Draw</strong> — In Match Controls, pick a format under <strong>Pick a format</strong> and click <strong>Draw</strong>. The bracket size follows the players; the draw is randomised automatically, or seeded.</div></li>
        <li><div><strong>Run</strong> — Manage matches from the bracket view. Assign lanes, record results, and track the tournament in real time.</div></li>
    </ol>

    <hr>

    <h2 id="formats">Tournament Formats</h2>

    <h3>Double Elimination (DE)</h3>
    <p>Every player gets two chances before they are eliminated. The bracket is split into a <strong>Frontside</strong> (winners) and a <strong>Backside</strong> (losers). A player who loses on the Frontside drops to the Backside and can still win the tournament.</p>
    <ul>
        <li><strong>Best for:</strong> most club tournaments — fair, competitive, and players stay involved longer</li>
        <li><strong>Player count:</strong> 4 to 48 players. The bracket snaps to the nearest size of 8, 16, or 32 — empty slots are filled with byes that auto-advance real players without a match. Above 32, qualifiers decide the last places (see <a href="#qualifiers">Qualifiers</a>)</li>
        <li><strong>Final:</strong> Frontside finalist vs Backside finalist — the Frontside finalist has a one-match advantage</li>
    </ul>

    <h3>Single Elimination (SE)</h3>
    <p>One loss and you're out. Straightforward bracket where winners advance and losers are eliminated immediately.</p>
    <ul>
        <li><strong>Best for:</strong> time-limited events, warm-up tournaments, or large fields where DE isn't practical</li>
        <li><strong>Player count:</strong> 4 to 48 players. Same bracket sizing as DE — byes fill the unused slots automatically, and above 32 qualifiers decide the last places</li>
        <li><strong>Includes:</strong> a bronze final (3rd place play-off)</li>
        <li><strong>Cup and Plate:</strong> pick Cup and Plate at the draw (from 5 players) and every round 1 loser plays on in the Plate, a second knockout of half the size, so everyone gets at least two matches (see <a href="#plate">Cup and Plate</a>)</li>
    </ul>

    <h3 id="plate">Cup and Plate</h3>
    <p>Single elimination where the round 1 losers play a second knockout, the Plate. A classic at darts clubs.</p>
    <ul>
        <li><strong>At the draw:</strong> pick the <strong>Cup and Plate</strong> card in Match Controls. Clubs that never play one can untick it in Global Settings &rarr; <strong>Formats to offer</strong></li>
        <li><strong>Who plays the Plate:</strong> every round 1 loser, at a fixed place: the losers of round 1 match 1 and 2 meet in the Plate's first match, 3 and 4 in its second, and so on. A Plate match can start as soon as its two round 1 matches are played. A player with a bye in round 1 isn't in the Plate (their place is a walkover)</li>
        <li><strong>In the bracket:</strong> the Cup and the Plate back to back, the Cup running left to right and the Plate mirrored from the right, their finals facing each other. Nothing joins the two finals</li>
        <li><strong>Placings:</strong> the Cup's places are as always. The Plate orders the round 1 losers in the shared places: with 8 players its finalists are 5th&ndash;6th and its bronze pair 7th&ndash;8th; with 16, its semifinalists are 9th&ndash;12th. The finished view names the Plate winner</li>
        <li><strong>Match lengths and bronze finals:</strong> as single elimination, by the Plate's own rounds</li>
    </ul>

    <h3 id="qualifiers">Qualifiers (33 to 48 players)</h3>
    <p>Double and single elimination take up to 48 players. The bracket stays a 32-player bracket, and the players above 32 make it in through qualifiers before round 1.</p>
    <ul>
        <li><strong>How many:</strong> one qualifier for each player above 32. 40 players: 8 qualifiers (16 players), 24 straight into round 1. 48 players: 16 qualifiers, one in every round 1 match</li>
        <li><strong>Who plays them:</strong> drawn at random. With seeding, the seeds go straight in; with <strong>All</strong>, the lowest-ranked play the qualifiers</li>
        <li><strong>In the bracket:</strong> a Qualifiers column before round 1. The round 1 place shows "Winner Q3" until the qualifier is played</li>
        <li><strong>Lose a qualifier:</strong> not qualified, placed 33rd–48th. they get the Taking part points when <strong>Also for qualifier losers</strong> is on (Global Settings → Points, under Taking part; on by default)</li>
        <li><strong>Nothing in a qualifier counts:</strong> only the score is entered, to decide who goes through. No achievements, no matches or legs in the statistics, and the match never goes to Analytics</li>
        <li><strong>Length:</strong> the format's regular rounds. Qualifier losers show in Match Controls' referee list, free for referee duty</li>
    </ul>

    <h3>Round Robin</h3>
    <p>Everybody plays everybody, in a fixed order, each match with a planned referee from the group. Set up in Global Settings → Round Robin.</p>
    <ul>
        <li><strong>Groups and cups:</strong> groups of up to four (or five or six: <strong>Largest group</strong>), then an <strong>A cup</strong> and a <strong>B cup</strong> (single elimination with a bronze final). 6 to 32 players</li>
        <li><strong>One group:</strong> the table decides the placings. 3 to 8 players. <strong>Play each other: Twice</strong> makes it a double round robin: a return round in the same order with the players swapped, both meetings counting in the table (4 players play 12 matches)</li>
        <li><strong>Draw the cups:</strong> in Match Controls, when the last group match is played. Nothing is drawn until you click it</li>
        <li><strong>Placings:</strong> everyone is placed; the A cup gives 1st–4th, the B cup 5th–8th</li>
    </ul>

    <h3>Swiss</h3>
    <p>A fixed number of rounds, and nobody is knocked out. Every round pairs players with the same record who haven't met yet, so the night gets more even as it goes.</p>
    <ul>
        <li><strong>At the draw:</strong> pick the Swiss card. <strong>Rounds</strong>: by players (3 for 5 to 8, 4 for 9 to 16, 5 for 17 to 32, 6 above) or a fixed number. <strong>Finish</strong>: semifinals, a bronze final and a final for the top four (the default), or the table decides. Global Settings &rarr; Swiss decide how both start</li>
        <li><strong>Pairing:</strong> round 1 at random (with seeding, the top half against the bottom half). Every later round is drawn by itself when the last match of the round before is entered: the table 1st v 2nd, 3rd v 4th, skipping anyone already played</li>
        <li><strong>Odd numbers:</strong> one bye a round, to the lowest-placed player who hasn't had one. A bye counts as a win</li>
        <li><strong>The table:</strong> wins, then opponents' wins, then leg difference, then legs won. The top four play the semifinals (1st v 4th, 2nd v 3rd); everyone else is placed by the table</li>
        <li><strong>A wrong result:</strong> undoing a result of the round just finished takes back the next round too, as long as none of its matches has started. Once one has, the earlier rounds are locked</li>
        <li><strong>Match lengths:</strong> their own, under Match length &rarr; Swiss</li>
    </ul>

    <h3>Which to Choose?</h3>
    <p>When in doubt, use Double Elimination. It rewards consistency, keeps more players engaged throughout the evening, and produces a more meaningful result. Single Elimination is the right call when you're short on time or boards. Round Robin gives everyone the same number of group matches before the cups.</p>

    <hr>

    <h2 id="configuration">Configuration</h2>
    <p>The <strong>Config</strong> tab stores global settings that apply across all tournaments. Changes take effect immediately and persist across browser sessions.</p>

    <h3>Club Identity</h3>
    <ul>
        <li><strong>Club name</strong> — Appears in exports and result sheets</li>
        <li><strong>Logo</strong> — Place <code>logo.png</code>, <code>logo.jpg</code>, <code>logo.jpeg</code>, or <code>logo.svg</code> in the application folder to replace the default logo</li>
    </ul>

    <h3>Point System</h3>
    <p>NewTon DC Tournament Manager calculates tournament standings automatically from tournament results. Configure point values to match your club's rules:</p>
    <ul>
        <li><strong>Participation</strong> — Points just for entering (default: 5). <strong>Also for qualifier losers</strong> decides whether a player who loses a qualifier gets them too (default: on)</li>
        <li><strong>Placements</strong> — 1st through 8th place (defaults: 15, 13, 11, 9, 7, 7, 5, 5)</li>
        <li><strong>Achievements</strong> — High checkouts, tons, 180s, short legs</li>
    </ul>

    <h3>Match Configuration</h3>
    <p>Set the number of legs per round independently for both formats:</p>
    <ul>
        <li><strong>Double Elimination</strong> — Configure legs for regular rounds, Frontside and Backside semifinals, Backside Final, and the Grand Final separately</li>
        <li><strong>Single Elimination</strong> — Configure legs for each round independently (quarterfinals, semifinals, bronze match, final)</li>
    </ul>
    <h4>Chalker</h4>
    <p>These settings are included in the QR assignment payload sent to the Chalker:</p>
    <ul>
        <li><strong>x01 Format</strong> — Starting score for Chalker matches (101 / 201 / 301 / 501). Default: 501</li>
        <li><strong>Max Rounds</strong> — Tiebreak threshold. If neither player has won enough legs by this round, the match is decided by highest score on the final visit. Range: 7–20</li>
        <li><strong>Short Leg Threshold</strong> — The dart count below which a leg is considered a short leg and flagged as an achievement</li>
    </ul>

    <h3>Lane Management</h3>
    <ul>
        <li><strong>Maximum lanes</strong> — Number of dartboards available at your venue</li>
        <li><strong>Excluded lanes</strong> — Boards to keep out of rotation (maintenance, reserved, etc.)</li>
        <li><strong>Require lane before start</strong> — Prevent matches from starting without a lane assigned</li>
    </ul>

    <hr>

    <h2 id="managing">Managing a Tournament</h2>

    <h3>Creating a Tournament</h3>
    <p>In the <strong>Tournament Setup</strong> tab, enter a tournament name and select a date, then click <strong>Create New Tournament</strong>.</p>
    <p>Previous tournaments are listed and can be loaded or deleted from the same screen. Tournaments can also be exported and imported as JSON &mdash; useful for backups or moving to another device. Docker users can enable <a href="automatic-backup.html">Automatic Backup</a> to save tournaments to disk and upload to a remote instance at the moment of completion.</p>

    <h3>Registering Players</h3>
    <p>Add players from the <strong>Player Registration</strong> tab before generating the bracket. Type a name and press Enter or click Add. New players are added to the register of Saved Players.</p>

    <h3>Saved Players Registry</h3>
    <p>Player names are saved to a persistent registry to keep names consistent across tournaments. Players can be removed from <strong>Saved Players</strong>.</p>
    <p>Tournament exports include the Saved Players registry. To transfer it from another device, use the <strong>Import Saved Players</strong> button in the Saved Players panel.</p>

    <h3>Payment Tracking</h3>
    <p>Each player has a payment status indicator on the Players list. Toggle it to mark who has paid the entry fee. Payment status is visible at a glance and included in the player list — useful for the person collecting fees at the door.</p>
    <p>A payment QR code image can be displayed on the Registration page — place a <code>payment.png</code> file in the <code>images/</code> folder. Need to generate one? Use NewTon's <a href="qr-generator.html">QR Code Generator</a>.</p>

    <h3>Generating the Bracket</h3>
    <p>Navigate to the <strong>Tournament Bracket</strong> tab. Match Controls open automatically if <strong>Automatically open Match Controls</strong> is enabled — otherwise click the Match Controls button to open them.</p>
    <p>Match Controls before the draw shows the players (still editable), <strong>Pick a format</strong>, the settings for the picked format, and Seeding.</p>
    <ul>
        <li><strong>Pick a format:</strong> a card for every format, each saying what it means for tonight's players (for example "16-player bracket · 4 byes" or "4 groups of 3"). It opens on the format of your last tournament</li>
        <li><strong>The picked format</strong> shows how it works, the player range, roughly how many matches tonight and how many each player gets, and its options. Round Robin's Structure and To the A cup can be changed here for this draw only; Global Settings decide how they start</li>
        <li><strong>Greyed out:</strong> a format not offered in Global Settings &rarr; Formats to offer is shown but can't be picked. One that doesn't fit tonight's players can be picked, and says why on the card and the Draw button</li>
        <li><strong>Draw:</strong> one button draws the picked format. The draw is randomised (or seeded, if ticked) and empty slots are filled with byes</li>
    </ul>
    <p><strong>The bracket cannot be regenerated once matches have started.</strong> Double-check your player list before generating. If a player arrives after the bracket is generated, Late Registration can place them into an empty bye slot — provided no live or completed matches exist downstream of that slot.</p>

    <hr>

    <h2 id="running">Running Matches</h2>

    <h3>The Bracket View</h3>
    <p>The bracket is the main view during an active tournament. It displays the full draw — Frontside and Backside — with all matches and their current status.</p>

    <h4>Navigation</h4>
    <p>The left-hand panel provides quick access to all sections:</p>
    <ul>
        <li><strong>Leaderboard</strong> — Current standings and points</li>
        <li><strong>Match Controls</strong> — Opens the match management panel</li>
        <li><strong>Setup</strong> — Return to tournament setup</li>
        <li><strong>Registration</strong> — Player list and payment status</li>
        <li><strong>Config</strong> — Global settings</li>
    </ul>

    <h4>Pan &amp; Zoom</h4>
    <p>The bracket can be panned freely by clicking and dragging. Use the mouse wheel or the <strong>+</strong> / <strong>−</strong> buttons in the top-right corner to zoom in and out. The <strong>home</strong> button between them resets the view to the default zoom and position.</p>

    <h4>Match Status</h4>
    <p>Matches progress through four states:</p>
    <ul>
        <li><strong>Pending</strong> — Waiting for players from earlier rounds</li>
        <li><strong>Ready</strong> — Both players known, match can be started</li>
        <li><strong>Live</strong> — Match is in progress</li>
        <li><strong>Completed</strong> — Result recorded, players have advanced</li>
    </ul>

    <h4>Status Panel</h4>
    <p>The bottom-right corner shows a live summary of the tournament: name, elapsed time, completed match count, bracket size, total matches, player count, date, application version, and current status (Active / Completed).</p>

    <h3>Match Controls</h3>
    <p>The Match Controls panel is the command center for running the tournament. Open it by clicking the <strong>Match Controls</strong> button at the top of the bracket view, or enable <strong>Automatically open Match Controls</strong> to have it open whenever a match completes and new ones become ready.</p>
    <p>The panel shows all active and ready matches in two columns — <strong>Frontside</strong> on the left, <strong>Backside</strong> on the right — sorted by round. Live matches appear at the top, sorted by lane number. Each match card shows the match ID, where the winner and loser will advance to, and the Best of X format configured for that round.</p>
    <p>Everything you can do in Match Controls — starting matches, assigning lanes and referees, declaring winners, entering scores and stats — can also be done directly from the bracket view by clicking individual match cards. The one thing exclusive to Match Controls is the Referee Suggestions panel.</p>

    <h3>Starting a Match</h3>
    <p>Ready matches show a lane dropdown, a referee dropdown, and a <strong>Start Match</strong> button. Select a lane and optionally a referee, then start the match. The match moves to Live status and lane is locked in.</p>
    <p>NewTon DC Tournament Manager flags conflicts with a <strong>⚠️</strong> warning on the player's name — for example, if a player is currently serving as referee for another match and has a new match ready to start. The conflict is informational; you can still proceed once the referee situation is resolved.</p>

    <h3>Lane &amp; Referee Conflict Management</h3>
    <p>NewTon DC Tournament Manager tracks all lane and referee assignments in real time:</p>
    <ul>
        <li><strong>Lane conflicts</strong> — A lane already in use does not appear as available for a new match</li>
        <li><strong>Referee conflicts</strong> — A player currently refereeing cannot be assigned as referee for another match, and is flagged with ⚠️ if they have a match ready to play</li>
    </ul>

    <h3>Referee Suggestions</h3>
    <p>The right-hand panel shows referee suggestions in priority order:</p>
    <ul>
        <li><strong>Recent Losers</strong> — Players who just lost and are free — ideal candidates</li>
        <li><strong>Recent Winners</strong> — Players who won their last match and may be available</li>
        <li><strong>Recent Assignments</strong> — Players who have refereed before, with the round noted</li>
    </ul>
    <p>This makes it easy to pick a fair referee quickly without having to track who's free manually.</p>

    <h3>Recording Results</h3>
    <p>Click a winner button on a Live match. The <strong>Confirm Match Winner</strong> dialog appears, showing the declared winner, the opponent, and the match ID. A <strong>Match Progression</strong> box confirms exactly where each player goes next — the winner's next match and the loser's next match — so you can verify before committing.</p>
    <p>Below that, enter the <strong>Final Score</strong> (optional) — the number of legs won by each player (e.g. Christian: 2, Timothy: 0). The score must give the winner more legs than the loser.</p>
    <p>Player names in the dialog are clickable — clicking a name opens the <strong>Statistics</strong> dialog for that player:</p>
    <ul>
        <li><strong>Short Legs</strong> — Enter the dart count (max 21 darts) and click Add Short Leg. Multiple short legs can be added.</li>
        <li><strong>High Out</strong> — Enter the checkout score (101+) and click Add High Out.</li>
        <li><strong>180s</strong> — Increment or decrement with the +/− buttons.</li>
        <li><strong>Tons (100+)</strong> — Increment or decrement with the +/− buttons.</li>
        <li><strong>Lollipops (three ones)</strong> — Increment or decrement with the +/&minus; buttons.</li>
    </ul>
    <p>Stats are saved per player. Click <strong>Confirm Winner</strong> when done — NewTon DC Tournament Manager advances the winner and loser to their next matches automatically.</p>

    <h3>Leaderboard</h3>
    <p>The <strong>Leaderboard</strong> button at the bottom of the Match Controls panel opens the current standings mid-tournament. Click any player to open their Statistics dialog and add stats that were missed when the match result was recorded. Players with lollipops show a 🍭 icon next to their name.</p>

    <hr>

    <h2 id="qr">Chalker QR Workflow</h2>
    <p>NewTon DC Tournament Manager can send match assignments directly to the Chalker scoring app via QR code — no typing player names, no verbal handoff, no mistakes.</p>

    <h3>Generating the QR Code</h3>
    <p>On any live match card in Match Controls, click the <strong>QR</strong> button (to the left of "Stop Match"). A modal appears with the assignment QR code. The subtitle shows the match details: players, format, and lane/referee if assigned.</p>
    <p>Lane and referee are optional — the QR code can be generated without them. Whatever is assigned at the time is included in the payload.</p>

    <h3>Scanning in the Chalker</h3>
    <p>On the Chalker, tap <strong>QR</strong> in the "New Match?" dialog. The camera opens immediately — no intermediate screens. Point it at the QR code on the TM screen. The moment a valid code enters the frame, it's captured automatically.</p>
    <p>Every scan is verified with a CRC-32 signature. Corrupted or invalid codes are rejected with a clear error message, and the camera stays open to try again.</p>

    <h3>Confirmation &amp; Match Start</h3>
    <p>After a successful scan, a confirmation screen shows the full assignment:</p>
    <ul>
        <li>Player 1 vs Player 2</li>
        <li>x01 format, best-of legs, max rounds</li>
        <li>Lane and referee (if assigned)</li>
    </ul>
    <p>The operator confirms, selects the starting player, and the match begins. The Chalker displays the lane and referee in its info bar throughout the match.</p>

    <h3>Sending Results Back</h3>
    <p>When the match finishes, tap <strong>Stats</strong> in the Chalker, then <strong>Result QR</strong> to display the result QR code.</p>
    <p>At the Tournament Manager, click <strong>Scan QR Results</strong> in the Match Controls footer. Point the camera at the Chalker's result QR. A preview appears — winner, score, and achievements. Click <strong>Apply Result</strong> and the bracket advances.</p>

    <h3>Configuration</h3>
    <p>These settings are found in the Tournament Manager's <strong>Global Settings &rarr; Match Configuration &rarr; Chalker</strong> and are included in every QR assignment payload:</p>
    <ul>
        <li><strong>x01 Format</strong> — Starting score for Chalker matches (101 / 201 / 301 / 501). Default: 501</li>
        <li><strong>Max Rounds</strong> — Tiebreak threshold. If neither player has won enough legs by this round, the match is decided by highest score on the final visit. Range: 7–20</li>
        <li><strong>Short Leg Threshold</strong> — The dart count below which a leg is considered a short leg and flagged as an achievement</li>
    </ul>
    <p>Best-of legs is determined by the match round and your match format configuration. All values travel in the QR — the Chalker receives everything it needs.</p>

    <h3>Requirements</h3>
    <ul>
        <li><strong>Browser</strong> — QR scanning uses the <code>BarcodeDetector</code> API, available in Chrome and Edge. Other browsers show a "not supported" message.</li>
        <li><strong>Camera</strong> — The Chalker needs camera access. On HTTPS (including self-signed certificates) and localhost, this works automatically. On plain HTTP over a local IP, browsers block camera access.</li>
        <li><strong>Manual fallback</strong> — If QR scanning isn't available, the Chalker can always be set up manually by typing player names and selecting the format. No functionality is lost.</li>
    </ul>
    <p>For the full technical specification of the QR payload format, integrity checking, and score encoding, see the <a href="qr-protocol.html">QR Protocol documentation</a>.</p>

    <hr>

    <h2 id="results">Results &amp; Export</h2>

    <h3>Live Standings</h3>
    <p>The <strong>Leaderboard</strong> shows current standings and point totals as the tournament progresses. It is accessible from Match Controls, the Tournament Bracket, and the Player Registration tab. Final placements are confirmed when the Grand Final (DE) or Final (SE) is completed.</p>
    <p>Tournament Setup also shows a running <strong>Match History</strong> — a log of all completed matches in chronological order.</p>

    <h3>Export Results</h3>
    <p>Results — player names, placements, points earned, and achievement counts — can be exported from the <strong>Player Registration</strong> tab and from the celebration screen when the tournament is complete. Choose <strong>Export CSV</strong> for spreadsheets and season standings trackers, or <strong>Export JSON</strong> for structured data.</p>


    <hr>

    <h2 id="devconsole">Developer Console</h2>
    <p>The Developer Console provides two categories of tools: <strong>diagnostics</strong> that monitor tournament health in real time, and <strong>commands</strong> that act directly on the bracket structure and transaction history. Because these commands can modify the actual tournament data, the Developer Console is deliberately hidden from the normal operator workflow — it must be enabled in Global Settings first, then opened by clicking the version number in the bottom-right corner of the bracket view.</p>
    <p><strong>Statistics</strong> — updated live as the tournament runs:</p>
    <ul>
        <li><strong>Quick Overview</strong> — tournament health, match completion, transaction count, lane and referee conflicts, average and longest/shortest match times</li>
        <li><strong>Transaction Health</strong> — ratio of transactions used against the 1,000-transaction limit</li>
        <li><strong>Match State</strong> — completed / ready / live counts at a glance</li>
        <li><strong>Player Count</strong> — paid vs unpaid</li>
        <li><strong>Lane Usage</strong> — boards currently in use</li>
        <li><strong>localStorage Usage</strong> — storage consumption against the 10 MB browser limit</li>
    </ul>
    <p><strong>Commands</strong> — diagnostic and recovery tools:</p>
    <ul>
        <li><strong>View Transaction History</strong> — full audit log of every match action</li>
        <li><strong>Manage Transaction Log</strong> — inspect and trim the transaction log if it approaches the limit</li>
        <li><strong>Re-render Bracket</strong> — redraw the bracket without changing any data</li>
        <li><strong>Recalculate Rankings</strong> — recompute standings from the current match results</li>
        <li><strong>Refresh All Dropdowns</strong> — force all lane and referee dropdowns to reload</li>
        <li><strong>Validate Everything</strong> — run a full integrity check on bracket state</li>
        <li><strong>View Match Progression</strong> — shows the full match progression table for the bracket (Double Elimination only)</li>
        <li><strong>Toggle Read-Only</strong> — lock the tournament against accidental changes</li>
        <li><strong>QR Payload Inspector</strong> — decode and inspect the contents of any NewTon QR payload</li>
        <li><strong>Late Registration</strong> — register a player who arrived after the bracket was generated (see <a href="#tips">Tips &amp; Tricks</a>)</li>
        <li><strong>Reset All Config</strong> — wipe global settings back to defaults (destructive — requires confirmation)</li>
    </ul>

    <hr>

    <h2 id="tips">Tips &amp; Tricks</h2>

    <h3>Undo</h3>
    <p>Made a mistake recording a result? NewTon DC Tournament Manager supports surgical undo — you can reverse a match result without affecting the rest of the tournament. Click the undo button on a completed match to revert it. Matches that have already fed players into subsequent completed matches cannot be undone.</p>

    <h3>Late Registration</h3>
    <p>A player arrives after the bracket has been generated? Use <strong>Late Registration</strong> — accessible from the Players tab via the amber "Player arrived late?" button (visible on active tournaments). NewTon DC Tournament Manager finds a suitable bye slot and places the late arrival without disturbing existing matches.</p>

    <h3>Built-in Help</h3>
    <p>Press <strong>F1</strong> at any time inside the tournament manager to open context-sensitive help. The help panel explains the current view and available actions.</p>

    <h3>Offline Use</h3>
    <p>NewTon DC Tournament Manager works entirely offline. Download the release once, copy it to a USB drive, and run it at any venue without internet. All data is saved automatically in your browser's localStorage — it survives browser restarts and reboots and new versions brought in on the next USB drive.</p>

    <h3>Multiple Tournaments</h3>
    <p>NewTon DC Tournament Manager supports multiple tournaments side by side. Switch between them from the tournament list on the home screen. Each tournament has its own isolated data — deleting one doesn't affect the others.</p>

    <h3>Data Safety</h3>
    <p>LocalStorage is tied to your browser profile. Export tournaments regularly and keep the JSON files somewhere safe — treat exports as your permanent backup and localStorage as working storage. Clearing your browser data will clear localStorage too. See the <a href="privacy.html">Privacy</a> page for full details on how NewTon stores and handles your data.</p>

    <h3>Self-Hosting</h3>
    <p>Want to run NewTon DC Tournament Manager for your whole club from a central server? See the <a href="docker-quickstart.html">Docker Quick Start</a> guide. Self-hosting enables shared tournament access across devices via the optional REST API, and <a href="automatic-backup.html">Automatic Backup</a> can push completed tournaments to a public Analytics instance.</p>

    <h3>Lollipops 🍭</h3>
    <p>Scoring a 3 — three ones — in darts is known as a lollipop. Many clubs mark the occasion by handing the guilty player an actual lollipop. NewTon DC Tournament Manager supports this tradition: open any player's Statistics dialog during or after a tournament and use the Lollipops counter to record their shame. Players with one or more lollipops will have a 🍭 icon and count displayed next to their name in the Leaderboard.</p>

    <hr>

    <h2 id="docs">Documentation</h2>
    <ul>
        <li><a href="userguide.html">User Guide</a> &mdash; this page</li>
        <li><a href="docker-quickstart.html">Docker Quick Start</a> &mdash; self-host with Docker in under 2 minutes</li>
        <li><a href="automatic-backup.html">Automatic Backup</a> &mdash; save and replicate tournaments on completion</li>
        <li><a href="qr-protocol.html">QR Code Protocol</a> &mdash; how TM and Chalker communicate via QR</li>
        <li><a href="qr-generator.html">QR Code Generator</a> &mdash; standalone QR code tool</li>
        <li><a href="rest-api.html">REST API</a> &mdash; tournament upload, download, and management endpoints</li>
        <li><a href="architecture.html">Architecture &amp; Reliability</a> &mdash; how the app is built to be crash-proof</li>
        <li><a href="privacy.html">Privacy Architecture</a> &mdash; how data is stored and handled</li>
        <li><a href="design-system.html">Design System</a> &mdash; visual language and component reference</li>
        <li><a href="releases/">Release Notes</a> &mdash; what changed in each version</li>
    </ul>

</div>

<!-- Footer -->
<div class="landing-footer docs-footer">
    <p>
        NewTon DC Tournament Manager &mdash; BSD-3-Clause License &mdash;
        <a href="https://github.com/skrodahl/NewTon" target="_blank" rel="noopener">GitHub</a> &mdash;
        <a href="privacy.html">Privacy</a>
    </p>
    <p><em class="footer-cheeky">No popups? No cookies!</em></p>
</div>

</body>
</html>