ZendaFund
Hybrid Crowdfunding Platform with Role-Based Dashboards.

🎯 The Goal
Build a one-stop crowdfunding hub where Creators can launch and manage campaigns, Supporters can discover and fund them with platform credits, and Admins can moderate the entire ecosystem from a single dashboard.
Tech Stack & Architecture
Frontend
Next.js 15 App Router (TypeScript) merging the UI and API routes into a single monolith for fast, unified deployment.
Authentication
Better Auth with a MongoDB adapter, using secure httpOnly cookies instead of localStorage tokens to mitigate XSS.
Payments
Stripe-powered credit purchase system (100 credits for $10) with webhook-driven balance updates.
Database
MongoDB Atlas storing campaigns, users, donations, and notifications, with singleton connection caching.
Key Challenge
Enforcing role-based access control (RBAC) for Supporter, Creator, and Admin roles across both routing and API layers, while keeping the credit conversion math and refund logic consistent and error-free.
The Solution
Built middleware-level session and role verification on every protected route and API endpoint, paired with an automated refund mechanism that returns credits to a Supporter's wallet whenever a Creator deletes a campaign or rejects a donation.
🚀 Results & Impact
- Secure, cookie-based session architecture with strong XSS mitigation
- Automated, error-free credit conversion and refund flow
- Real-time notification system that keeps all three roles informed of key platform events
🔮 Future Plans
"Adding real-time chat between Creators and Supporters, campaign milestone tracking, and a public API for embedding campaign widgets on external sites."