A full-stack, transparent charity subscription platform where users play for prizes while supporting causes they care about.
GolfPulse is designed to maximize both user winnings and charitable impact. Every month, subscribers participate in a prize draw. A portion of every winner's prize is automatically donated to a charity of their choice, alongside a baseline platform-wide contribution.
- Frontend: React (Vite), Tailwind CSS, Framer Motion, Lucide Icons.
- Backend: Node.js, Express.
- Database: Supabase (PostgreSQL) with Real-time Auth.
- Deployment: Vercel (Frontend) & Render (Backend).
- Prize Pool: Generated from active monthly subscriptions (£10/user).
- Platform Baseline: 10% of the total monthly pool (£1/user) is immediately ring-fenced for charity.
- Matching Rules:
- 5/5 Match: Wins the Jackpot (Current Pool - 10% Baseline).
- 4/5 Match: Wins a secondary prize (e.g., £50).
- 3/5 Match: Wins a small prize (e.g., £2.50).
- Rollovers: If no one hits 5/5, the Jackpot rolls over to the next month.
Total Charity Impact is calculated as:
Platform Baseline (10%) + User-selected Gift % + Direct Donations
- User Gift %: During sign-up, users choose to donate between 10% and 100% of any future winnings.
- Calculation: If a user wins £100 and has a 20% gift setting, they receive £80 and the charity receives £20.
Important
Stripe Integration is currently FAKED/MOCKED.
- All "Successful Payment" screens are simulations to demonstrate the user flow.
- No real money is currently processed. The
/striperoutes in the backend are designed to return successful responses immediately for testing and demonstration purposes.
The /admin route provides a full management suite:
- Users: Manage profiles, adjust charity percentages, and track subscriptions.
- Draws: Create new draws, pick winning numbers, and publish results.
- Winners: Review and process payouts for both pending and paid winners.
- Analytics: Real-time tracking of:
- Direct Donations: One-time gifts outside the game.
- Winning Contributed: Impact generated specifically from winning shares.
- Total Payout: Financial obligation (what is owed to users).
- Charity Impact: The "Big Number" showing the platform's total footprint.
- Node.js (v18+)
- Supabase Project (URL & Anon Key)
- Clone the Repo
- Frontend Setup:
cd frontend npm install npm run dev - Backend Setup:
cd backend npm install npm start - Environment Variables: Use the provided
.env.exampletemplates in both folders to connect your Supabase instance.
- Frontend (Vercel): Ensure the "Root Directory" is set to
frontendand thevercel.jsonfile is present to handle SPA routing (preventing 404s on refresh). - Backend (Render): Set the "Root Directory" to
backendand ensure all.envkeys are added to the Render dashboard.
The platform uses Modern Rich Aesthetics:
- Sleek dark modes and vibrant accent colors.
- Micro-animations for button hovers and list item entries.
- Transparent reporting to build trust between the platform and its supporters.