A comprehensive tennis scoring app supporting multiple scoring formats including tie-break-only matches, traditional sets, and FAST4 formats. Features live statistics, match history, and export capabilities for tennis players, coaches, and officials.
- Match Tie-break to 10 (win by 2) - ✅ Implemented
- Best of 3 Tie-breaks (to 7, win by 2) - ✅ Implemented
- FAST4 & Traditional Sets - 🚧 Coming soon
- Deciding Point Options - Configurable for tie-breaks
- Live Scoring - Point-by-point tracking with automatic serving rotation
- Match Controls - Undo, reset, and new match options
- Player Setup - Custom names and first server selection
- Winner Detection - Automatic match completion
- Live Statistics - Real-time serve/return percentages
- Match History - Browse and search past matches
- Export Options - Share as PNG images or PDF documents
- Offline Storage - Local SQLite database
- React Native
- Expo
- TypeScript
- Expo Router for navigation
- SQLite for local data storage
- Expo Print & Sharing for export functionality
Before you begin, ensure you have the following installed:
- Node.js (v18 or higher) - Download here
- npm (comes with Node.js)
- Expo CLI - Install globally:
npm install -g @expo/cli - iOS Simulator (macOS only) - Install Xcode from App Store
- Android Studio (for Android emulator) - Download here
This project uses several key dependencies:
- Expo SDK 54 - Cross-platform mobile development
- React Native 0.81.4 - Mobile app framework
- Expo SQLite - Local database for match storage
- Expo Print & Sharing - PDF generation and sharing
- React Native View Shot - Screenshot capture for exports
- React Native Reanimated - Smooth animations
- React Native Gesture Handler - Touch interactions
- UUID - Unique identifier generation
-
Clone the repository:
git clone https://github.com/eRaz00r/umpire-buddy-app.git cd umpire-buddy-app -
Install dependencies:
npm install
-
Start the development server:
npm start
-
Run on a device or emulator:
- Physical Device: Scan the QR code with the Expo Go app on your phone
- iOS Simulator: Press
iin the terminal (macOS only) - Android Emulator: Press
ain the terminal
-
Install Expo Go app:
- iOS: Download from App Store
- Android: Download from Google Play Store
-
Start the development server:
npm start
-
Connect your device:
- Scan the QR code displayed in your terminal with Expo Go
- Make sure your device and computer are on the same network
-
Install Xcode:
# Install Xcode from App Store or: xcode-select --install -
Install iOS Simulator:
# Open Xcode and install iOS Simulator from Preferences > Components -
Run on iOS Simulator:
npm start # Press 'i' in the terminal to open iOS Simulator
-
Install Android Studio:
- Download from developer.android.com
- Follow the installation wizard
-
Create an Android Virtual Device (AVD):
- Open Android Studio
- Go to Tools > AVD Manager
- Click "Create Virtual Device"
- Choose a device (e.g., Pixel 6) and Android version (API 33+)
- Click "Finish"
-
Start the emulator:
# Start your AVD from Android Studio or: emulator -avd <your_avd_name>
-
Run the app:
npm start # Press 'a' in the terminal to open Android emulator
# Start development server
npm start
# Start with cache cleared
npm start -- --clear
# Run on iOS simulator
npm run ios
# Run on Android emulator
npm run android
# Build for production
npm run build
# Run tests
npm test
# Lint code
npm run lintCommon issues and solutions:
- Metro bundler issues: Try
npm start -- --clearto clear the cache - iOS Simulator not opening: Ensure Xcode is installed and iOS Simulator is available
- Android emulator issues: Make sure Android Studio is installed and an emulator is created
- Node version conflicts: Use
nvmto manage Node.js versions:nvm use 18 - Expo CLI not found: Reinstall globally with
npm install -g @expo/cli - Port already in use: Kill the process using port 8081:
npx kill-port 8081
We welcome contributions! Please see our Contributing Guidelines for details on how to:
- Report bugs and suggest features
- Set up your development environment
- Submit pull requests
- Follow our code style guidelines
This project is licensed under the MIT License - see the LICENSE file for details.
-
Designed for parents and coaches of young tennis players
-
Built with ❤️ using React Native and Expo
