Aberkenfig Pool League
League platform

About the system

A purpose-built results, rankings and tournament platform for the Aberkenfig Pool League · Winter League 2026-2027.

APL v1.13
Created for the league

Designed and administered by Greg Smith

The platform brings weekly scorecards, opposing-captain confirmation, league tables, individual rankings and six tournament formats into one auditable system.

Self-hosted platformMac mini · Secure HTTPS access
Platform architecture

System components

Captain application
Native Android · Kotlin · Jetpack Compose
Public website
Django server-rendered interface
Application API
Versioned REST endpoints
Primary datastore
PostgreSQL relational database
Deployment
Docker containers on macOS
Public gateway
Cloudflare Tunnel with HTTPS
Security and integrity

Controls built in

  • 01
    Captain authenticationTeam-linked accounts and encrypted Android token storage.
  • 02
    Two-party confirmationA submitted result becomes official only after the opposing captain confirms it.
  • 03
    Revision historyAdministrator corrections preserve snapshots, reasons and user attribution.
  • 04
    Validated scorecardsFive singles, two doubles and five singles, with winner-only 8-ball clearances.
Competition engine

Rules encoded by the platform

5 + 2 + 5Singles, doubles, singles
3 maxPlayer appearances, one per session
1500Initial Elo baseline
K32 / K16Singles / doubles Elo factors
14 daysDefault backup retention
6 formatsTournaments represented
Release history

What has changed

  1. v1.131 November 2026
    • Player pages list every match from 2025/26 under last season's summary: date, week, opponent, frames won and lost, the Elo change, and each frame with partners and opponents.
    • Each player's upcoming cup ties show a Home or Away tag, and the tie's date is in bold. Ties already played are listed underneath as won or lost, with the score, opponent and round.
    • The Latest news ticker covers 8s Cup nights: blackball shootouts, cup upsets and thrashings, nail-biters, Elo movers, clearances and who is through to the next round.
    • 8s Cup preliminary P2 is now Llangeinor FC at home to Royal Oak B.
  2. v1.121 November 2026
    • Every player has their own page, opened by tapping their name in the rankings or a team's squad.
    • It shows their rating and rank, an Elo chart from when Elo began in 2025/26, their league record this season, their cup entries and how far each has got, every match they've played with frame results, and last season's stats and honours.
    • The Elo chart runs match by match from the first frame of 2025/26, using last season's full frame-by-frame results.
  3. v1.111 November 2026
    • Every cup now counts towards player Elo, using the same formula as league frames: singles at full weight, doubles at half, and Threes at a third, each side rated on its players' average.
    • 8s Cup frames count exactly like league frames. In the singles, doubles and Threes cups, each tie counts as one frame won by the tie's winner, whatever the score. Walkovers and the blackball shootout don't count.
    • The singles and doubles win tables, and the league table, still count league matches only.
  4. v1.101 November 2026
    • The Threes and 8s Cup draws are published as brackets.
    • 8s Cup ties appear on the fixture list under their cup night (7.30pm) and captains enter them on the league scorecard, with the same submit-and-confirm steps.
    • An 8s Cup tie ends when a team reaches 7 frames: the remaining frames are left blank. At 6–6 a blackball shootout decides it, recorded in a 13th row and shown as 7–6.
    • Live scores show for 8s Cup ties too, reading "Blackball shootout" at 6–6. Confirmed results put the winners through to the next round automatically.
    • Home and Away tags are the same size and line up on team pages.
  5. v1.930 October 2026
    • The cup draws are published as knockout brackets for the Open Singles, Divisional Singles, Open Doubles and Scotch Doubles.
    • Each cup page lists its preliminary ties, then the bracket round by round through to the final and the champion, with each player's or pair's team badge.
    • Empty slots show which preliminary tie fills them, and winners move into the next round automatically as results are entered.
    • A Home tag marks the home player or pair in every tie. Home alternates round by round as in the official draw, and the final has no home side.
    • Team pages list every cup tie involving the team's players, with opponents, home or away, and results.
    • Cup rounds show when they're played: the singles preliminaries' deadlines, the Round of 32 nights, and the "on or before" date for the Round of 16.
  6. v1.827 October 2026
    • A Latest news ticker on the home page replaces the teams, cups and season boxes, with headlines from the latest match night: upsets, thrashings, nail-biters, the night's biggest Elo gainers, clearances, byes and the table leaders. Hand-written headlines, managed in admin, take over from the automatic ones.
    • Captains can enter a scorecard from midnight on match day until the end of the following Sunday.
    • The captain's scorecard saves as you go, so a dropped signal or closed tab no longer loses frames.
    • Matches being scored show a green LIVE badge and the running score on the home page and fixture list.
    • Registering a player on the night now offers only the captain's own team. Choosing the opposing team used to end in a "403 Forbidden" error page.
  7. v1.720 October 2026
    • A dashed line on the league table marks where it splits into a top eight and bottom seven after 14 games.
    • The home page shows every fixture for the next match night.
    • Bye weeks and tournament nights appear in date order on the fixture list, every team page and captains' My fixtures.
    • A tournament night can cover rounds of more than one cup — the 2nd Round Singles night hosts both the Open and Divisional Singles 2nd rounds — and each cup's page lists all of its nights.
    • Rankings show only the figures for the chosen category: played, won, lost and win percentage for singles and doubles, with players level on wins separated by win rate.
    • Crowns mark last season's leaders on the rankings and team pages, and the reigning league champions on the league table; tap a crown to see why.
    • League table and rankings fit narrow phone screens without names running into the figures.
  8. v1.620 October 2026
    • The scorecard marks who breaks with an asterisk beside the player, explained by a key above the card, so every row of selections lines up.
    • League matches now start at 7:30pm.
    • Every team page shows its home venue address, with a link to open it in Maps.
    • Team captains are listed on their team pages; signed-in captains can call or text each other directly.
  9. v1.520 October 2026
    • New match format: twelve frames in three sessions — five singles, two doubles, then five more singles — matching the paper result sheet.
    • A player may play once in each session, so they can appear in both singles sessions and the doubles; each doubles player plays only one doubles frame. The scorecard greys out anyone already used in that session.
    • The scorecard is grouped by session and marks who breaks each frame, alternating as on the paper sheet.
    • A 6–6 draw earns each team its frame points plus a 1-point draw bonus; a win still earns the 2-point bonus. The league table and team pages gain a Drawn column.
    • Android captain app 1.3.0 uses the new twelve-frame card.
  10. v1.420 October 2026
    • Team pages list the full squad with each player's Elo, strongest first.
    • Each team page shows the squad's average Elo and where it ranks against the other teams, kept separate from the league position, wins, losses and points.
    • Tournament nights appear in the fixture list between the league weeks, so the season reads in calendar order; dates are also shown on each tournament page, in the More menu, and as the next event on the home page.
  11. v1.317 October 2026
    • Redesigned as a dark sports dashboard: navy ground, electric blue, and the APL 8-ball emblem in a stronger branded header with the season on show.
    • Home page leads with the season at a glance, upcoming fixtures, latest results and a top-five standings preview rather than a full table.
    • League table rebuilt with team badges, podium highlighting for the top three, and colour-coded wins, losses and points.
    • Fixtures presented as team-versus-team cards with clear dates; tap any card for the match details.
    • Mobile-first layout with a bottom navigation bar — Home, Fixtures, Table, Rankings, More — so the installed app behaves like a native one.
    • The website installs as an app on Android and iPhone (Add to Home Screen), with the APL icon; the Android app reached full parity with the site.
    • Install prompt tidied: it now disappears once the app is installed by any route, dismissing it lasts two weeks rather than forever, and More → Install the app is always available. iPhone shows Safari's own Share → Add to Home Screen steps.
  12. v1.217 October 2026
    • Captains see the date and time of every fixture when they sign in.
    • A player added by a captain on match night alerts the administrator immediately, and is confirmed or suspended from a dedicated review page. The player can still be fielded the same night.
    • A note written on a scorecard alerts the administrator straight away, and is visible and searchable in the results list rather than hidden inside each record.
    • Weekly encrypted off-site backup of the database and the whole platform.
  13. v1.117 October 2026
    • Captains review the full scorecard — every frame, player and clearance — before confirming a result, with no ability to edit it at that stage.
    • Players disappear from the dropdowns once selected, so the same player cannot be entered twice in the singles or twice in the doubles.
    • 8-ball clearances reduced to a single yes/no; the credited player is taken from the frame winner.
    • Scorecard columns size to the longest player name instead of clipping it, with the frame number pinned while scrolling.
    • Table alignment reworked across the site: text reads from the left, figures right-align on tabular digits.
    • Winner and clearance menus name the teams rather than saying "home" and "away".
    • Honours and awards added to the archived season.
    • Release number now held in one place rather than repeated across templates.
  14. v1.0September 2026
    • First release for the Winter League 2026-2027 season.
    • Weekly nine-frame scorecards with opposing-captain confirmation.
    • League table, individual rankings and Elo ratings.
    • Captain accounts, team assignment and provisional player registration.
    • Administrator corrections with revision snapshots and audit trail.
    • Archived 2025/26 season, six tournament formats and a native Android captain app.
Release information

Build manifest

ProductAberkenfig Pool League PlatformVersion1.13
SeasonWinter League 2026-2027API generationv1
MaintainerGreg SmithHosting modelPrivate self-hosted origin
League timezoneEurope/LondonData modelRevision-aware