GolfMap is a map-first web app for discovering golf venues (clubs, resorts, and centres) with facility-based filtering and rich venue details.
- Vite + React + TypeScript
- TailwindCSS + shadcn/ui-style components
- react-leaflet + marker clustering (OpenStreetMap tiles)
- Zod schema validation shared by app and data validator script
- ESLint + Prettier + Vitest
- Node.js 20+
- npm 10+
npm inpm run devnpm run buildnpm run lintnpm run formatnpm run validate:dataValidation checks include:
- Zod schema conformance
- unique venue IDs across seed + addon files
- valid latitude/longitude ranges
- at least one course per venue
- HTTPS website URL
- non-empty source URLs
npm run testsrc/data/venues.seed.json- base seeded dataset (Bridgend area)src/data/venues.addons/*.json- additive dataset batches loaded automaticallysrc/data/scrape-manifest.json- scraper ledger to prevent duplicate crawl batchessrc/data/venue.schema.ts- schema + TS typessrc/data/venues.template.json- starter template for new venuessrc/data/README.md- field-level documentation