Tennis Score Keeper (Laravel)
Point-by-point tennis scoring in Laravel, ported from my Clojure kata and extended with match formats, tie-breaks, undo and a live scoreboard.
- Company
- XLANT SOFT · Self-employed
- Role
- Solo developer
- Period
- 2023 – present
- Platform
- Web (PHP)
What I built
- Tennis scoring in plain PHP: an immutable Score value object where each point returns a new score, plus a MatchFormat and a Player enum.
- Full rules: 0/15/30/40, deuce and advantage, games, sets and the match, in best of 1, 3 or 5 sets, with a tie-break at 6–6 or advantage sets.
- Matches are stored as their sequence of points and the score is replayed from it, so undo just drops the last point.
- A TV-style Blade scoreboard with the umpire's call, a match list and a validated new-match form.
- A tennis:simulate Artisan command that plays a random match, repeatable with --seed.
- 22 tests: unit tests for every scoring rule, plus feature tests for the web flow and the command.
Built solo. The original Clojure version is listed below as Tennis Score Keeper.