A mobile-friendly, offline-capable web app for tracking scores and wagers in the Millbrook Game and optional Big Game.
-
Millbrook Game Scoring - Track all aspects of the Millbrook side match:
- Team play (Red vs Blue)
- Base, carry, and doubles tracking
- Automatic junk detection (Birdies, Sandies, Greenies, etc.)
- Running ledger with detailed payouts
-
Big Game Support - Optional tracking of "two best net" scores for Big Game reporting
-
Course Management - Create, edit and select different courses and tees:
- Store multiple courses with full details
- Support for different tee options per player
- Hole-specific information (par, yardage, stroke index)
- Import/export course data as JSON
-
Player Management - Maintain roster of players with handicap info:
- Save player preferences between rounds
- Quick player selection for new matches
- Team assignment functionality
-
Offline Capable - Install as a PWA and use without an internet connection
-
Mobile Optimized - Designed for quick score entry on the course
The application is feature-complete for the core Millbrook Game and Big Game functionality. All calculation components are implemented and tested:
- ✅ Stroke allocation
- ✅ Base and doubles calculation
- ✅ Hole payouts and running totals
- ✅ Junk event detection
- ✅ Big Game calculation
All major UI components are implemented:
- ✅ Match setup
- ✅ Hole view with score entry
- ✅ Enhanced ledger view with detailed payouts
- ✅ Settlement view with export functionality
- ✅ Course management with import/export
The new LedgerView2 is a complete rebuild of the ledger experience, designed for mobile-first use and full calculation transparency:
- TotalsRibbon: Always-visible summary of team and Big Game totals, sticky at the top on mobile.
- HoleAccordion: Scrollable, collapsible list of all 18 holes. Each row shows base, carry, doubles, winner, payout, junk, and player scores (gross/net). Tap a row to expand for details.
- PaperTrailDrawer: Tap any hole to open a bottom sheet/modal with a step-by-step breakdown of all calculations, including junk events and player deltas.
- Enhanced CSV Export: Export a detailed CSV that matches the on-screen view, including the full paper trail for each hole.
- Accessibility: Improved ARIA roles, keyboard navigation, and color contrast. Audited for screen reader and mobile use.
Try it now: /ledger2 route in the app.
Wireframe: LedgerView Mobile Wireframe
The new Ledger View is designed to fit a 390px wide mobile screen with no horizontal scroll, and provides a clear audit trail for every calculation.
- Enhanced Ledger Drawer: Detailed per-hole payouts with improved visualizations, running totals, and better Big Game integration.
- Settlement Export: Export your final results as CSV for spreadsheet analysis or PNG for easy sharing.
- Course Data Import/Export: Share course data between devices or backup your course collection with JSON export/import functionality.
Current development focuses on:
- Tee-aware score input to show player-specific hole information
- Enhanced stroke allocation based on player's tee selection
- Improved course visualization and details
- Player preference persistence
- Visit [app URL] on your mobile device
- Add to home screen when prompted for the best experience
- Enter player names and handicap indexes
- Toggle "Big Game" on if needed
- Start your round and enter scores hole by hole
- Use the ledger drawer to track running totals
- Export your final results as CSV or screenshot
# Clone the repo
git clone https://github.com/yourusername/millbrook-scorekeeper.git
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
- React + TypeScript
- Zustand for state management
- Dexie.js for IndexedDB storage
- PWA features (Service Worker, Web Manifest)
The app implements the Millbrook Game rules as documented in the Millbrook-Game-and-Big-Game-Rulebooks.md file.
See PROGRESS.md for detailed task tracking and upcoming development plans.
MIT