BookGolfDirect
About This Project
This customer wanted a fully fledged information and booking system for all golf-courses in Spain with a credit system so that golf clubs can receive bookings from customers.
This website included:
For Golfers (Public Users)
Club Discovery & Search — Search 400+ Spanish golf clubs by name, city, region, or course. Filter and paginate results with featured clubs highlighted.
Interactive Satellite Map Explorer — Full-screen Leaflet.js map with all clubs plotted on satellite imagery. Side panel with search, click-to-pan, and popup info cards.
Rich Club Profiles — Hero image, description, designer, year founded, facilities grid (pro shop, restaurant, driving range, buggy rental, etc.), contact info, and embedded satellite map with Google Maps navigation link.
Detailed Course Pages — Holes, par, length, slope/course rating, terrain type, difficulty badge, green speed, water hazards, bunker count, grass types, and guide green fee pricing (weekday/weekend/twilight/buggy).
Interactive Scorecard & Hole-by-Hole Guide — Front 9/Back 9 scorecard plus individual hole cards with par, distances from 5 tee boxes, dogleg direction, elevation, hazard info, and pro tips.
Live Weather Widget — Current conditions + 3-day forecast on club/course pages via Open-Meteo, with golf-specific tips ("Wind advisory — club up").
Free Online Booking Requests — No account needed. Pick course, date, time, players, submit via AJAX. Dual email: details to club + confirmation to golfer.
Reviews & Ratings — Thumbs-up/down system for clubs and courses with instant AJAX submission.
News & Articles — Categorized content (news, promotions, events, tips) with featured articles on the homepage.
For Golf Club Managers
Self-Service Registration — Register, pick your club, get a dashboard.
Manager Dashboard — Personalized greeting, stats strip (credit balance, enquiries, pending bookings), and 4-tab layout (Overview, Bookings, Credits, Photos).
Booking Management — Track enquiries with status flow (Pending → Sent → Released → Completed/Cancelled). First 10 enquiries include full customer details for free; subsequent ones require 1 credit to unlock.
Credit System with Stripe Payments — Buy credit packages (€20–€200) with bonus credits on premium tiers. Credits never expire. Stripe Checkout integration with webhook verification.
Photo Management — Upload/delete photos for your club and courses (JPG/PNG/WebP/GIF, max 5 MB), shown on public pages.
Transaction History — Full purchase and usage log with running balance.
For Site Administrators
KPI Dashboard — Today's stats, monthly trends with % change, 14-day sparkline charts, booking status breakdown, top 5 clubs, all-time totals.
Club & Course CRUD — Rich forms with interactive facility pickers, terrain/difficulty selectors, featured/active toggles, sortable/filterable tables.
News CMS — Article composer with rich toolbar, hero image drag & drop, category pills, publish/featured toggles, and live preview.
Review Moderation — Approve/delete reviews with pending count badges.
Sales & Revenue Dashboard — Total revenue, monthly breakdown, top buyers leaderboard, recent purchase detail.
Stripe & SMTP Settings — Configure test/live Stripe keys, webhook secret, currency. Configure SMTP provider (Gmail, SendGrid, etc.) or fall back to PHP mail().
User Management — View all registered managers, their clubs, credit balances; delete users.
Standout / Differentiating Features:
Free-then-paid lead model - First 10 booking leads are free, then 1 credit per lead — low barrier for clubs to try the platform
No account needed to book - Golfers book instantly without registration, reducing friction
Satellite map explorer - Visual, interactive way to discover golf across all of Spain
Hole-by-hole pro tips - Detailed playing advice per hole — rare for booking platforms
Live golf weather tips - Not just weather data but context-aware advice for golfers
Credits never expire - Manager-friendly monetization — no pressure to use up credits
Zero SDK Stripe integration - Pure cURL-based Stripe Checkout — no Composer/SDK dependencies