A professional, tournament-ready pickleball scoring system with offline support and cross-platform compatibility.
- Two-step authentication (REF ID + 6-digit verification)
- JWT token management with session handling
- Demo mode support for testing
- Singles & Doubles support with proper sideout rules
- Visual touch scoring on left/right court areas
- Server rotation following official pickleball rules
- Cross-court serving validation and positioning
- Manual score adjustment with comprehensive controls
- Tablet-optimized for tournament use (iPad, Samsung, Windows)
- Touch-friendly interface with 44px minimum targets
- Responsive design for landscape orientation
- High contrast colors for tournament visibility
- Offline mode with zero data loss guarantee
- Real-time connection detection (<100ms response)
- Automatic sync when connection restored
- Queue management for offline actions
- Visual touch feedback with dramatic animations
- Server highlighting with paddle icons (🏓)
- Score submission with SUCCESS/FAIL indicators
- 24vh score display readable from 10+ feet
- Node.js 16+
- Modern web browser (Chrome 90+, Safari 14+, Edge 90+)
git clone https://github.com/kuettai/pickle-frontend.git
cd pickle-frontend
npm install# Run tests
npm test
# Start development server
# Open sources/index.html in browser- Authentication: Use
REF2024orADMIN123 - Verification: Enter
123456for demo codes - Match Loading: Try
MATCH-001(singles) orMATCH-002(doubles) - Start Playing: Touch left/right court areas to score
Comprehensive test suite with 264 tests covering:
- Authentication flow (26 tests)
- Scoring logic and sideout rules
- Game configuration and player positioning
- Visual touch feedback system (15 tests)
- Offline mode support (23 tests)
- Score submission system (15 tests)
npm test # Run all tests
npm test offline-mode # Run specific test suite/sources/ # Core application
├── index.html # Entry point
├── app.js # Main application logic (1700+ lines)
├── offline-manager.js # Network reliability
├── score-submission.js # Tournament integration
├── touch-feedback.js # Visual feedback system
└── *.css # Styling and animations
/tests/ # Test suite (264 tests)
├── offline-mode.test.js # Network reliability tests
├── two-step-auth.test.js # Authentication tests
├── score-submission.test.js # Submission tests
└── *.test.js # Comprehensive test coverage
/docs/ # Documentation
├── user-stories.md # Feature requirements
├── development-checklist.md # Progress tracking
└── *.md # System documentation
- 11+ points with 2-point lead to win
- Sideout scoring: Only serving team can score points
- Server rotation: 1→2→opponent (doubles), direct switch (singles)
- First game: Server #2 starts (doubles only)
- Even scores: Server on right-hand side
- Odd scores: Server on left-hand side
- Cross-court serving: Diagonal server/receiver positioning
- Dynamic positioning: Players switch sides after scoring
- Tournament-grade reliability with 264 passing tests
- Referee-friendly controls and visual feedback
- Error handling with detailed error codes and recovery
- Audit trail for all scoring actions
- Zero data loss during network outages
- Offline queue management with automatic sync
- Connection status monitoring with visual indicators
- Graceful degradation of network-dependent features
- Vanilla JavaScript for maximum compatibility
- Modular design with separate concerns
- Event-driven architecture for responsive UI
- State management with immutable updates
- <100ms touch response time
- Efficient DOM updates with minimal reflows
- Memory optimization for extended tournament use
- Battery-friendly animations and interactions
- iOS Safari 14+ (iPad)
- Chrome 90+ (Samsung tablets)
- Edge 90+ (Windows tablets)
- Responsive design for various screen sizes
- Version: 1.3 Offline Mode Support Complete
- Test Coverage: 264 tests passing, 0 failures
- Production Status: ✅ Tournament Ready
- Network Reliability: ✅ Zero Data Loss Guarantee
This is a production-ready tournament scoring system. For feature requests or bug reports, please open an issue.
MIT License - See LICENSE file for details
Built for tournament referees who demand reliability, speed, and professional-grade scoring accuracy.