A decentralized crowdfunding platform empowering creators and donors through blockchain transparency and social engagement.
Features β’ Architecture β’ Quick Start β’ API β’ Contributing β’ License
RaiseFunds is a cutting-edge decentralized crowdfunding platform that combines the power of blockchain technology with social media integration to create transparent, community-driven fundraising campaigns. Built on the Base network, it enables creators to launch campaigns and donors to contribute directly onchain, fostering trust through immutable transaction records and real-time progress tracking.
To democratize fundraising by providing creators with powerful tools to launch campaigns and donors with confidence through blockchain transparency, while building vibrant communities around meaningful causes.
MVP Release v1.0 - Production-ready with placeholder donation flow for optimal user experience testing. Full onchain donation implementation planned for v2.0.
- Dual Currency Support: Create fundraisers and make donations in both ETH and USDC
- Intuitive Campaign Creation: Streamlined form with rich metadata, cover images, and category selection
- Real-time Progress Tracking: Dynamic progress bars with donation history and milestone visualization
- Social Integration: One-click sharing to Farcaster with rich OpenGraph previews
- Creator Updates: Multimedia update system to keep supporters engaged and informed
- Advanced Moderation: Comprehensive reporting system with admin controls
- Multi-Currency Donations: Choose between ETH and USDC for contributions
- Seamless Donation Flow: Placeholder system for testing UX with future onchain implementation
- Personalized Contributions: Donor names, messages, and optional anonymity
- Transaction Transparency: Complete donation history with status tracking and currency display
- Automated Updates: Real-time fundraiser total calculations and progress synchronization
- Multi-wallet Support: MetaMask, Rainbow, Coinbase Wallet, and WalletConnect integration
- Auto-populated Beneficiary: Connected wallet automatically fills beneficiary address
- Social Authentication: Farcaster login with seamless wallet connection
- Name Resolution: ENS and Base name support for user identification
- Secure Architecture: Built with Wagmi and Viem for robust blockchain interactions
- Responsive Design: Optimized for desktop, tablet, and mobile devices
- Dark/Light Themes: Automatic theme detection with manual override
- Professional Splash Screen: Engaging animated loading experience with theme-aware colors
- Accessibility First: WCAG compliant with keyboard navigation and screen reader support
- Performance Optimized: Fast loading with Next.js 16 and modern web standards
- Type Safety: Full TypeScript implementation with strict type checking
- Modern Architecture: Next.js 16 App Router with server and client components
- API-First Design: RESTful API with comprehensive documentation
- Database Integration: PostgreSQL with optimized queries and data relationships
- Image Management: Cloudinary integration for uploads, optimization, and CDN delivery
| Category | Technology | Purpose |
|---|---|---|
| Frontend | Next.js 16, TypeScript, Tailwind CSS | Modern React framework with type safety and utility-first styling |
| Backend | Next.js API Routes, PostgreSQL | Serverless API with relational database |
| Blockchain | Base Network, Viem, Wagmi | Ethereum L2 for fast, low-cost transactions |
| Authentication | WalletConnect, Farcaster Auth | Decentralized identity and social login |
| Media | Cloudinary | Image upload, optimization, and CDN delivery |
| UI/UX | Custom Splash Screen, Favicon | Professional branding and loading experience |
| Deployment | Vercel | Global CDN with automatic scaling |
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β User Client β β Next.js App β β PostgreSQL β
β β β β β Database β
β β’ React SPA βββββΊβ β’ API Routes βββββΊβ β’ Fundraisers β
β β’ Wallet Conn. β β β’ Server Comp. β β β’ Donations β
β β’ Social Auth β β β’ Middleware β β β’ Users β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β β β
βββββββββββββββββββββββββΌββββββββββββββββββββββββ
βΌ
βββββββββββββββββββ
β Base Network β
β (Ethereum L2) β
β β
β β’ Smart Contractsβ
β β’ Onchain Txns β
β β’ Fund Vaults β
βββββββββββββββββββ
- Node.js 18.17.0 or later (20+ recommended)
- PostgreSQL database (local or cloud)
- Git for version control
- Web3 Wallet for testing (MetaMask, etc.)
-
Clone the repository
git clone https://github.com/Adrijan-Petek/RaiseFunds.git cd RaiseFunds -
Install dependencies
npm install
-
Configure environment
cp .env.example .env.local
Edit
.env.localwith your configuration:# Database DATABASE_URL="postgresql://username:password@localhost:5432/raisefunds" # WalletConnect NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID="your-project-id" # Cloudinary (for image uploads) CLOUDINARY_CLOUD_NAME="your-cloud-name" CLOUDINARY_API_KEY="your-api-key" CLOUDINARY_API_SECRET="your-api-secret" # Farcaster (optional) NEXT_PUBLIC_FARCASTER_RELAY="https://relay.farcaster.xyz"
-
Setup database
# Generate Prisma client npx prisma generate # Push schema to database npx prisma db push # Optional: Seed with sample data npx prisma db seed
-
Start development server
npm run dev
-
Open your browser
Navigate to http://localhost:3000
# Run test suite
npm test
# Run linting
npm run lint
# Type checking
npm run type-check- Connect Wallet - Authenticate with your preferred Web3 wallet
- Create Campaign - Visit
/newand complete the creation form - Set Goals - Define funding targets and campaign details
- Share Widely - Use built-in social sharing to reach supporters
- Update Supporters - Post regular updates to maintain engagement
- Browse Campaigns - Explore active fundraisers on the homepage
- Connect Wallet - Link your wallet for seamless donations
- Make Contribution - Choose amount and add personal message
- Track Impact - Follow campaign progress and creator updates
- Share Support - Amplify campaigns you believe in
- API Testing - Use Postman or similar tools for endpoint testing
- Database Management - Access Prisma Studio with
npx prisma studio - Code Quality - Run
npm run lintandnpm run type-check - Build Process - Execute
npm run buildfor production optimization
POST /api/auth/loginWallet-based authentication for user sessions.
GET /api/fundraisers # List fundraisers with filtering
POST /api/fundraisers # Create new fundraiser
GET /api/fundraisers/[id] # Get fundraiser details
PUT /api/fundraisers/[id] # Update fundraiser (creator only)
DELETE /api/fundraisers/[id] # Delete fundraiser (creator only)POST /api/fundraisers/[id]/donate # Create donation record
POST /api/donations/verify # Verify and confirm donation
POST /api/donations/[id]/confirm # Mark donation as paidGET /api/fundraisers/[id]/updates # Get fundraiser updates
POST /api/fundraisers/[id]/updates # Add new updatePOST /api/reports # Report fundraiser
GET /api/admin # Get reports (admin only)
POST /api/admin # Moderate content (admin only)POST /api/upload # Upload images to CloudinaryAPI Documentation: Comprehensive OpenAPI/Swagger docs available at /api/docs
raisefunds/
βββ src/
β βββ app/ # Next.js App Router
β β βββ api/ # API route handlers
β β βββ admin/ # Admin dashboard pages
β β βββ f/[id]/ # Dynamic fundraiser pages
β β βββ me/ # Creator dashboard
β β βββ new/ # Campaign creation
β β βββ globals.css # Global styles
β βββ components/ # Reusable UI components
β β βββ Header.tsx # Navigation component
β β βββ WalletConnect.tsx # Wallet connection modal
β β βββ ThemeToggle.tsx # Theme switcher
β β βββ ui/ # Base UI components
β βββ lib/ # Utility libraries
β βββ supabase.ts # Database client
β βββ cloudinary.ts # Media upload service
β βββ payments.ts # Blockchain utilities
βββ public/ # Static assets
β βββ icons/ # Wallet and UI icons
β βββ logo/ # Brand assets
βββ prisma/ # Database schema
β βββ schema.prisma # Database models
β βββ migrations/ # Schema migrations
βββ tailwind.config.js # Styling configuration
βββ next.config.js # Next.js configuration
βββ package.json # Dependencies and scripts
-
Connect Repository
- Link your GitHub repository to Vercel
- Configure build settings (automatically detected)
-
Environment Variables
- Set all required environment variables in Vercel dashboard
- Enable preview deployments for pull requests
-
Domain Configuration
- Configure custom domain (optional)
- Set up SSL certificates (automatic)
# Build for production
npm run build
# Start production server
npm startFROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "start"]- Campaign creation and management
- Dual currency support (ETH/USDC)
- Placeholder donation system
- Social sharing integration
- Responsive UI/UX with dark/light themes
- Professional splash screen and branding
- Wallet integration and auto-population
- Database architecture with PostgreSQL
- Image upload and management with Cloudinary
- Smart contract development for Base network
- Real ETH/USDC donation processing
- Multi-token support expansion
- Gas optimization and transaction efficiency
- Onchain progress tracking
- Milestone-based fund releases
- Advanced analytics dashboard
- Mobile application (React Native)
- Cross-platform sharing enhancements
- Email notifications and updates
- Farcaster Frames v2 integration
- NFT rewards and collectibles system
- DAO governance features
- Multi-chain support (Optimism, Arbitrum)
- DeFi integrations and yield opportunities
We welcome contributions from developers, designers, and community members passionate about decentralized crowdfunding.
- Fork the repository
- Clone your fork locally
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes with tests
- Commit with clear messages:
git commit -m 'Add amazing feature' - Push to your branch:
git push origin feature/amazing-feature - Open a Pull Request
- Code Style: Follow TypeScript and React best practices
- Testing: Write tests for new features and bug fixes
- Documentation: Update README and API docs for changes
- Security: Follow Web3 security best practices
- Accessibility: Ensure WCAG compliance for all features
- Smart Contracts: Solidity development for onchain functionality
- UI/UX: Design improvements and user experience enhancements
- Testing: Comprehensive test coverage and QA automation
- Documentation: API docs, user guides, and developer resources
- Internationalization: Multi-language support and localization
This project is licensed under the MIT License - see the LICENSE file for details.
RaiseFunds is not a verified charity platform. Users should independently verify the legitimacy of fundraisers before contributing. The platform does not guarantee fund utilization or campaign validity. Exercise caution and conduct due diligence when participating in crowdfunding activities.
- π Bug Reports: GitHub Issues
- π¬ Discussions: GitHub Discussions
- π§ Email: For security issues, email security@raisefunds.com
- π Website: raisefunds.com
Built with β€οΈ for the decentralized future
Empowering creators, connecting donors, building communities
