Selected work

Record

03 of 03

Evidence class

Complete event platform, version 3.0.0

Route

/work/snail-race/

Snail Race Fundraising Platform

A Next.js platform for the Newcomb and District Cricket Club: an animated race stage, a QR donation flow through Stripe Checkout, a parimutuel tote board and a moderator console. Real money exists only as donations with no return; the fun bets use free play chips with no cash payout, which keeps the night a fundraiser rather than a wagering product.

Screenshot of the Snail Race projector stage before race one, showing the animated track, the race one tote board with equal one-in-six chances and the play-chip fun bets panel.
Real screenshot / rendered from the repository build

Problem

A cricket club fundraising night needs an entertaining projector stage, live card donations from the room and a ledger that reconciles to the dollar at the end of the night, all run by one moderator on venue hardware.

System boundary

A Next.js platform for the Newcomb and District Cricket Club: an animated race stage, a QR donation flow through Stripe Checkout, a parimutuel tote board and a moderator console. Real money exists only as donations with no return; the fun bets use free play chips with no cash payout, which keeps the night a fundraiser rather than a wagering product.

Architecture

A DOM-free race engine draws the finishing order with a seeded Fisher-Yates shuffle, so every lane wins with probability exactly one in the field size and a printed seed can be replayed to verify any result. Stripe is the ledger and there is no database: the stage polls paid checkout sessions, and cash entries, results and backups live in the moderator's localStorage.

Constraints and decisions

  1. Donations can never influence a result: the draw reads only the seed and the field size, and the tote board shows what the room has backed with deliberately no house margin.
  2. One codebase ships two shapes: a server build with the Stripe routes, and a static GitHub Pages build that strips them and degrades to cash-and-chips with the status shown on stage.

Verification

Strict TypeScript and ESLint, a moderator-facing verify-draw panel that replays any printed seed against the recorded finishing order, and a deploy workflow that fails unless the published site responds and actually serves the game.

Current readiness

Version 3.0.0 with working deployment paths for a Node host and for GitHub Pages. Card donations switch on only when a Stripe key is configured in the deployment environment; without one the platform runs cash-and-chips only and says so on screen.

Evidence boundary

This record does not claim real-money betting, wagering or gambling capability: backing a snail is a donation with no return and play chips have no cash value. No live event, attendance or takings figures are claimed.