Project Overview
GolfBud is an open-source platform designed to democratize access to professional-grade golf yardage books. While traditional course maps are often fragmented and locked behind paywalls, GolfBud aggregates data via the Google Maps API and web scraping to create a unified, free database of U.S. courses. The application empowers users to visualize course layouts, customize yardages, and generate print-ready maps for tournament play and casual mornings on the links. By allowing users to contribute their own data, GolfBud serves as a community-driven resource for smarter course management.
- View maps for specific courses
- Search available courses (In Progress)
- Save and edit rounds with user accounts
- Export course maps to PDF
- Real-time user-submitted maps
- Next.js / React
- TypeScript
- Firebase (Database & Auth)
- Google Maps API or Mapbox GL JS (to be finalized)
- Cypress / React Testing Library (TBD For Testing)
GolfBud is built as a modern web application using a client-focused architecture with managed backend services.
- Frontend: A React-based user interface built with Next.js and TypeScript, responsible for rendering interactive course maps, handling user input, and generating printable views.
- Backend Services: Firebase is used as a Backend-as-a-Service (BaaS) solution, providing authentication, a NoSQL database, and file storage for user data and exported assets.
- Maps Integration: Course visualizations are powered by a third-party mapping service (Google Maps API or Mapbox GL JS), allowing dynamic rendering of course layouts, overlays, and distance markers.
- Data Flow: The frontend communicates directly with Firebase and external APIs, enabling real-time updates, user authentication, and persistent storage without maintaining a custom server.
This architecture emphasizes simplicity, scalability, and rapid iteration while minimizing backend infrastructure overhead.
See architecture.md for more information on the architecture
Before running, place the .env.local file with Firebase environment variables in the root of the project folder.
Then, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun devOpen http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
Note: NEVER SHARE LOCAL ENV VARIABLES, make sure it is in .gitignore.
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.
- Kalin Patel - Worked on creating the database, setting security, and implementing this in our backend
- William Hubbe - Identified suitable mapping libraries and created the frontend and course page
- Akshat Shahi - Worked mostly on the backend-frontend connection by creating our APIs and course page
- Liam Nance - Worked on creating the round input/data collection screens and interactions on the frontend