This is the Jekyll source for mltydesigns.com, including the browser-based pool scoring app.
Prerequisites:
- Ruby 3.3.0
- Bundler 2.5.3
- Node.js 22 (for the pool app regression tests)
Install the locked dependencies:
bundle installStart the local Jekyll server:
bundle exec jekyll serveOpen the site at http://127.0.0.1:4000 or the pool app at http://127.0.0.1:4000/pool.
Run a strict local build check:
bundle exec jekyll build --strict_front_matterRun the pool storage and backup regression tests:
node --test tests/*.test.jsPool match data remains in the browser's localStorage. The app stores the active match and match history in one versioned dataset, verifies writes before replacing the current copy, and retains a previous verified copy for recovery. Existing legacy browser data and schema-v1 backup files are upgraded automatically when read.
Backup imports offer two modes: Merge adds non-duplicate matches and preserves conflicting records, while Overwrite replaces the device's active match and history after validation and confirmation.
Stored player profiles keep a canonical player name and separate skill levels for each game mode. Mapping a historical player name assigns the stable playerId and updates those match entries to the profile's canonical name, allowing history and statistics to consistently combine explicitly mapped variants.
GitHub Pages remains responsible for publishing the site. The workflow in .github/workflows/build.yml runs the pool regression tests and the equivalent production build with GitHub's read-only metadata token; it verifies pull requests and pushes to main but does not deploy separately.
A Sysadmin and Web Developer passionate about Gardening and Pool.
- 🌱 I’m currently growing 14 different varieties of chilli peppers
- ⚡ Fun fact: In the Summer of 2025 I won MVP in APA pool league.
- 💬 Talk to me about coding projects, Linux, Colabs or if you're hiring!
- ✉️ Email Me: contact@mltydesigns.com