A comprehensive web application for managing golf tours, rounds, and scorecards. Perfect for organizing golf events with friends, tracking scores, and creating competitive tournaments.
-
Tour Management
- Create and manage golf tours
- Invite players to join tours
- Track tour leaderboards and statistics
-
Course Management
- Create and save golf courses
- Define hole details (par, stroke index, distance)
- Support for both 9-hole and 18-hole courses
-
Round Management
- Create rounds within tours
- Support for various game formats:
- Stroke Play
- Match Play
- Stableford
- Team formats (Four-ball, Foursomes)
- Ryder Cup format
-
Scoring
- Real-time score entry
- Automatic handicap calculations
- Mobile-friendly scorecard interface
- Leaderboard views
-
Quick Games
- Create one-off games without setting up a tour
- Invite friends or add manual players
- Choose from various game formats
-
User Management
- User registration and authentication
- Player profiles with handicap tracking
- Friend management
- Frontend: Next.js 14 (App Router), React, TypeScript, Tailwind CSS
- Backend: Firebase (Authentication, Firestore, Storage)
- Authentication: Firebase Authentication (Email/Password, Google)
- Deployment: Vercel
- Node.js 18+ and npm/yarn
- Firebase account
-
Clone the repository:
git clone https://github.com/yourusername/golftour.git cd golftour -
Install dependencies:
npm install # or yarn install -
Create a
.env.localfile in the root directory with your Firebase configuration:NEXT_PUBLIC_FIREBASE_API_KEY=your-api-key NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your-auth-domain NEXT_PUBLIC_FIREBASE_PROJECT_ID=your-project-id NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your-storage-bucket NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your-messaging-sender-id NEXT_PUBLIC_FIREBASE_APP_ID=your-app-id -
Start the development server:
npm run dev # or yarn dev -
Open http://localhost:3000 in your browser.
- Create a new Firebase project at https://console.firebase.google.com/
- Enable Authentication (Email/Password and Google providers)
- Create a Firestore database
- Set up Storage
- Add your web app to the Firebase project to get the configuration values
- Register and log in to your account
- Navigate to the dashboard
- Click "Create New Tour"
- Fill in the tour details:
- Tour name
- Description
- Select or create a golf course
- Configure tour settings (teams, leaderboard visibility)
- Invite friends
- From the dashboard, go to "Golf Courses"
- Click "Add New Course"
- Enter course details:
- Course name
- Location
- Number of holes (9 or 18)
- For each hole: par, stroke index, and distance
- Navigate to a tour
- Click "Add Round"
- Select a course
- Choose the game format
- Select players
- Configure team settings (if applicable)
- Set the date and time
- Navigate to an active round
- Click "Enter Scores"
- Fill in your scores for each hole
- Save your scorecard
- From the dashboard, click "Quick Game"
- Select a course
- Choose the game format
- Add players (friends or manual entries)
- Start the game and enter scores
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.