{"id":31663610,"url":"https://github.com/aryprogrammer/festfund","last_synced_at":"2025-10-07T20:06:16.538Z","repository":{"id":313495085,"uuid":"1051587514","full_name":"ARYPROGRAMMER/FestFund","owner":"ARYPROGRAMMER","description":" Decentralized fundraising platform with Midnight Network integration enabling completely private donations while maintaining full transparency and accountability. Donors get public recognition while keeping donation amounts cryptographically private through dual ZK proof systems.","archived":false,"fork":false,"pushed_at":"2025-09-22T10:03:53.000Z","size":1374,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-09-22T12:05:31.295Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://festfund.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ARYPROGRAMMER.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-06T10:02:58.000Z","updated_at":"2025-09-22T10:03:57.000Z","dependencies_parsed_at":"2025-09-06T13:24:34.578Z","dependency_job_id":"7614ca89-90a8-4490-b372-ce8ddb44d1bc","html_url":"https://github.com/ARYPROGRAMMER/FestFund","commit_stats":null,"previous_names":["aryprogrammer/festfund"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ARYPROGRAMMER/FestFund","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARYPROGRAMMER%2FFestFund","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARYPROGRAMMER%2FFestFund/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARYPROGRAMMER%2FFestFund/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARYPROGRAMMER%2FFestFund/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ARYPROGRAMMER","download_url":"https://codeload.github.com/ARYPROGRAMMER/FestFund/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARYPROGRAMMER%2FFestFund/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278838434,"owners_count":26054720,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-07T20:02:27.652Z","updated_at":"2025-10-07T20:06:16.532Z","avatar_url":"https://github.com/ARYPROGRAMMER.png","language":"TypeScript","readme":"# 🌙 FestFund - Privacy-First Fundraising\n\n![Midnight Network](https://img.shields.io/badge/Midnight-ZKP-purple.svg)\n[![Production Ready](https://img.shields.io/badge/Status-Local%20Working-brightgreen.svg)](#architecture)\n[![Live Demo](https://img.shields.io/badge/Live%20Demo-festfund.vercel.app-blue.svg)](https://festfund.vercel.app/)\n[![YouTube Demo](https://img.shields.io/badge/Demo-YouTube-red.svg)](https://www.youtube.com/watch?v=4dsZVYmTkkY)\n[![Vimeo Demo](https://img.shields.io/badge/Technical%20Deep%20Dive-Vimeo-blue.svg)](https://vimeo.com/1116483249?share=copy)\n\n**Tech Stack:**\n![Next.js](https://img.shields.io/badge/Next.js-000000?style=flat\u0026logo=next.js\u0026logoColor=white)\n![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=flat\u0026logo=typescript\u0026logoColor=white)\n![Node.js](https://img.shields.io/badge/Node.js-43853D?style=flat\u0026logo=node.js\u0026logoColor=white)\n![Express.js](https://img.shields.io/badge/Express.js-404D59?style=flat\u0026logo=express\u0026logoColor=white)\n![MongoDB](https://img.shields.io/badge/MongoDB-4EA94B?style=flat\u0026logo=mongodb\u0026logoColor=white)\n![Solidity](https://img.shields.io/badge/Solidity-363636?style=flat\u0026logo=solidity\u0026logoColor=white)\n![Hardhat](https://img.shields.io/badge/Hardhat-FFF100?style=flat\u0026logo=hardhat\u0026logoColor=black)\n![TailwindCSS](https://img.shields.io/badge/TailwindCSS-38B2AC?style=flat\u0026logo=tailwind-css\u0026logoColor=white)\n![Vercel](https://img.shields.io/badge/Vercel-000000?style=flat\u0026logo=vercel\u0026logoColor=white)\n\n*Note* : This project is no longer actively maintained. It was built as a demo for the Midnight Network Hackathon and serves as a reference implementation for privacy-first fundraising using zero-knowledge proofs.\n\n**Thanks to Midnight:**\n\n🚀 **418x Performance Boost**: ZK proof generation reduced from 418ms to 1ms  \n🔒 **Enterprise-Grade Privacy**: Built-in ZK circuits optimized for scale  \n🏗️ **Production Ready**: Robust testnet-02 infrastructure\n\n- **Insomnia Collection**: https://docs.midnight.network/develop/nodes-and-dapps/nodes-endpoints\n- **Testnet-02 RPC**: `https://rpc.testnet-02.midnight.network`\n\n**How I Used in FestFund:**\n\n1. **ZK Proof Infrastructure** - Automatic fallback to self-hosted mode\n2. **Privacy Primitives** - Built-in cryptographic operations work in both modes\n3. **Wallet Integration** - Seamless user authentication (MetaMask)\n4. **Network Reliability** - Self-hosted mode ensures 100% uptime\n\n### 🎯 **Integration Benefits**\n\n**For Users:**\n\n- ⚡ Fast proof generation (1ms with Midnight, 418ms self-hosted)\n- 🔒 True privacy protection (guaranteed in both modes)\n- 🏆 Transparent rankings without data exposure\n- 💻 Smooth wallet connectivity\n\n**For Developers:**\n\n- 📦 No external dependencies required (self-hosted mode)\n- 🔧 Easy-to-use APIs and endpoints\n- 🔄 Automatic mode switching based on availability\n\n### 🌟 **ZK Mode Comparison**\n\n**Traditional ZK Solutions**\n\n- Complex circuit compilation\n- Slow proof generation (418ms+)\n- Manual infrastructure setup\n- Limited documentation\n\n**Midnight Network**\n\n- **1ms proof generation**\n- **Pre-optimized circuits**\n- **Comprehensive documentation**\n- **Active developer community**\n\n**Private donations + Public rankings + Cryptographic verification = Privacy + Transparency solved**\n\n- **🏆 Midnight Challenge**: `MIDNIGHT_CHALLENGE_SUBMISSION.md`\n- **🔧 API Documentation**: Backend routes in `/backend/routes/`\n- **🎯 ZK Circuits**: Pre-compiled circuits in `/zk/build/`\n\n---\n\n**🌟Quick Explanation for Busy People**\n\n_Built with dual ZK infrastructure - works with or without Midnight Network_\n\n🔒 **Private Donations**: Amounts cryptographically hidden using ZK proofs\n🏆 **Public Recognition**: Verifiable leaderboard rankings without revealing amounts  \n⚡ **Flexible Infrastructure**: Midnight Network (1ms) OR self-hosted (418ms)  \n🎯 **Smart Milestones**: Cryptographic proof of goal achievement  \n👥 **Dual Dashboards**: Separate interfaces for donors and organizers  \n🎮 **Achievement System**: Gamified experience with unlockable badges  \n📱 **Responsive Design**: Works perfectly on all devices  \n🔐 **Wallet Authentication**: Secure MetaMask integration / Midnight Wallet (if available)\n\n## 🚀 **Quick Start**\n\n```bash\n\n# Create hardhat blockchain, deploy contracts and use the wallet address\nnpx hardhat node\nnpm run deploy # in root\n\n# Backend Start\ncd backend \u0026\u0026 npm install \u0026\u0026 npm start\n# ✅ Backend running on http://localhost:3001\n\n# Start Frontend (new terminal)\ncd frontend \u0026\u0026 npm install \u0026\u0026 npm run dev\n# ✅ Frontend running on http://localhost:3000\n\n# Backend .env can be ignored , backend can take from root\n\nroot .env:\n\nNODE_ENV=development\nAPP_URL=http://localhost:3000\nUSE_MOCK_MODE=true\nPORT=3001\nBACKEND_URL=http://localhost:3001\nCORS_ORIGIN=http://localhost:3000,http://localhost:3001\nNEXT_PUBLIC_BACKEND_URL=http://localhost:3001\nNEXT_PUBLIC_APP_NAME=FestFund\nNEXT_PUBLIC_APP_DESCRIPTION=Privacy-First Donation Platform\nNEXT_PUBLIC_USE_MOCK_WALLET=true\nNEXT_PUBLIC_ENABLE_ANALYTICS=false\nNEXT_PUBLIC_ENABLE_NOTIFICATIONS=true\nNEXT_PUBLIC_DEFAULT_THEME=light\nMONGODB_URI=\u0026appName=\nJWT_SECRET=your-super-secret-jwt-key-change-for-production\nBCRYPT_SALT_ROUNDS=12\nGEMINI_API_KEY=\nNEXT_PUBLIC_BLOCKCHAIN_RPC=http://localhost:8545\nNEXT_PUBLIC_CHAIN_ID=31337\nPRIVATE_KEY=7c60d2cd7f18a7891ae8b169f2fdf082d44206acf9c331e81113343537b81fd0\nNEXT_PUBLIC_FUND_MANAGER_ADDRESS=0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0\nNEXT_PUBLIC_VERIFIER_ADDRESS=0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512\nNEXT_PUBLIC_MOCK_ERC20_ADDRESS=0x5FbDB2315678afecb367f032d93F642f64180aa3\nZK_MODE=midnight-network\nNEXT_PUBLIC_ZK_MODE=midnight-network\nZK_CIRCUIT_PATH=./zk/circuits\nZK_PROVING_KEY_PATH=./zk/build/proving_key.zkey\nZK_VERIFICATION_KEY_PATH=./zk/build/verification_key.json\nZK_CIRCUIT_WASM_PATH=./zk/build/donation_commitment_v1.wasm\nVERIFIER_CONTRACT_PATH=./contracts/Verifier.sol\nMIDNIGHT_RPC_URL=https://rpc.testnet-02.midnight.network\nMIDNIGHT_INDEXER_URL=https://indexer.testnet-02.midnight.network/api/v1/graphql\nMIDNIGHT_INDEXER_WS_URL=wss://indexer.testnet-02.midnight.network/api/v1/graphql/ws\nMIDNIGHT_NETWORK_ID=TestNet\nMIDNIGHT_WALLET_SEED=your_64_character_hex_seed_here_or_mnemonic_phrase\nNEXT_PUBLIC_MIDNIGHT_RPC_URL=https://rpc.testnet-02.midnight.network\nNEXT_PUBLIC_MIDNIGHT_NETWORK_ID=TestNet\nNEXT_PUBLIC_MIDNIGHT_EXPLORER_URL=https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.testnet-02.midnight.network\nENABLE_LOGGING=true\n\n# My Frontend .env.local\nNEXT_PUBLIC_BACKEND_URL=http://localhost:3001\nNEXT_PUBLIC_APP_NAME=FestFund\nNEXT_PUBLIC_APP_DESCRIPTION=Privacy-First Donation Platform with Zero-Knowledge Proofs\nNEXT_PUBLIC_CHAIN_ID=31337\nNEXT_PUBLIC_ENABLE_ANALYTICS=false\nNEXT_PUBLIC_ENABLE_NOTIFICATIONS=true\nNEXT_PUBLIC_BLOCKCHAIN_RPC=http://localhost:8545\nNEXT_PUBLIC_FUND_MANAGER_ADDRESS=0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0\nNEXT_PUBLIC_VERIFIER_ADDRESS=0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512\nNEXT_PUBLIC_MOCK_TOKEN_ADDRESS=0x5FbDB2315678afecb367f032d93F642f64180aa3\nNODE_ENV=development\n```\n\n### **Privacy + Transparency Solution**\n\n🔒 **Donations stay 100% private** - amounts cryptographically hidden  \n🏆 **Public recognition guaranteed** - verifiable leaderboard rankings  \n⚡ **ZK infrastructure** - proves the magic of Midnight Network\n🎯 **Smart milestone releases** - funds unlock when goals are proven achieved\n\n## **Dual ZK Architecture**\n\n**Midnight Network Mode** ⚡\n\n- Official testnet-02 integration\n- 1ms proof generation\n\n**Self-Hosted Mode** 🔒\n\n- Complete independence\n- 418ms proof generation\n- Full privacy control\n\n## **Tech Stack**\n\n**Privacy Infrastructure**: **Midnight Network** (Testnet-02)\n**Frontend**: React/Next.js + TypeScript + Tailwind (Dark Mode)  \n**Backend**: Express.js + MongoDB + JWT Auth  \n**Blockchain**: Solidity + Hardhat + ZK Circuits  \n**ZK Integration**: Circom + SnarkJS + **Official Midnight SDK**\n\n## **Screenshots**\n\n![Architecture Diagram](screenshots/diagram.png)\n\n![Privacy Restrictions](screenshots/restriction.png)\n\n![Main Dashboard](screenshots/image.png)\n\n![Database View](screenshots/db.png)\n\n![Campaign Creation](screenshots/image2.png)\n\n![Donation Interface](screenshots/image3.png)\n\n![Leaderboard](screenshots/image4.png)\n\n![Achievements](screenshots/image5.png)\n\n![Analytics](screenshots/image6.png)\n\n## **Architecture Diagram**\n\n```mermaid\ngraph TB\n    %% Core Components (8 total)\n    USER[👥 Users \u0026 Donors]\n    FRONTEND[🎨 Next.js Frontend\u003cbr/\u003e:3000]\n    BACKEND[⚡ Express.js API\u003cbr/\u003e:3001]\n    DATABASE[(💾 MongoDB\u003cbr/\u003eDatabase)]\n    BLOCKCHAIN[🔗 Smart Contracts\u003cbr/\u003eHardhat Network/Midnight Network]\n\n    %% ZK Infrastructure\n    ZK_LOCAL[🔐 Self-Hosted ZK\u003cbr/\u003eCircom + SnarkJS\u003cbr/\u003e418ms Proofs\u003cbr/\u003e]\n    MIDNIGHT[🌙 Midnight Network\u003cbr/\u003eTestnet-02\u003cbr/\u003e1ms ZK Proofs\u003cbr/\u003e✅ Default Mode]\n\n    %% Privacy Layer\n    PRIVACY[📊 Privacy Layer\u003cbr/\u003ePrivate Donations\u003cbr/\u003ePublic Rankings]\n\n    %% Main Flow\n    USER --\u003e FRONTEND\n    FRONTEND \u003c--\u003e BACKEND\n    BACKEND \u003c--\u003e DATABASE\n    BACKEND \u003c--\u003e BLOCKCHAIN\n\n    %% ZK Integration (Dual Mode - Self-hosted is primary)\n    BACKEND --\u003e ZK_LOCAL\n    BACKEND -.-\u003e MIDNIGHT\n    ZK_LOCAL --\u003e PRIVACY\n    MIDNIGHT -.-\u003e PRIVACY\n\n    %% Smart Contract Integration\n    FRONTEND --\u003e BLOCKCHAIN\n\n    %% Styling\n    classDef userNode fill:#6b7280,stroke:#374151,color:#fff\n    classDef frontendNode fill:#3b82f6,stroke:#1d4ed8,color:#fff\n    classDef backendNode fill:#10b981,stroke:#047857,color:#fff\n    classDef dbNode fill:#f59e0b,stroke:#d97706,color:#fff\n    classDef blockchainNode fill:#6366f1,stroke:#4338ca,color:#fff\n    classDef zkNode fill:#ec4899,stroke:#be185d,color:#fff\n    classDef midnightNode fill:#7c3aed,stroke:#5b21b6,color:#fff,stroke-dasharray: 5 5\n    classDef privacyNode fill:#8b5cf6,stroke:#7c2d12,color:#fff\n\n    class USER userNode\n    class FRONTEND frontendNode\n    class BACKEND backendNode\n    class DATABASE dbNode\n    class BLOCKCHAIN blockchainNode\n    class ZK_LOCAL zkNode\n    class MIDNIGHT midnightNode\n    class PRIVACY privacyNode\n```\n\n## **Project Structure**\n\n```\nfestfund/\n├── backend/          # Express.js API server\n│   ├── routes/       # API endpoints (auth, privacy, proofs, rankings, achievements)\n│   ├── models/       # MongoDB data models\n│   ├── services/     # Business logic services\n│   └── utils/        # Midnight integration \u0026 utilities\n├── frontend/         # Next.js React application\n│   ├── components/   # UI components (privacy, campaigns, leaderboards)\n│   ├── pages/        # Application pages\n│   ├── contexts/     # React contexts (wallet, auth)\n│   └── lib/          # Smart contract integration \u0026 utilities\n├── contracts/        # Solidity smart contracts (FundManager, Verifier, MockERC20)\n├── zk/              # ZK circuit files (Circom circuits, compiled artifacts)\n├── scripts/         # Deployment and setup scripts\n└── artifacts/       # Hardhat compilation artifacts\n```\n\n**🌟 Privacy + Transparency = Cryptographic Magic**\n\n_Powered by Midnight Network's ZK and Wallet infrastructure_\n\n*Built with 💜 for the Midnight Network community - Arya Singh*\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faryprogrammer%2Ffestfund","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faryprogrammer%2Ffestfund","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faryprogrammer%2Ffestfund/lists"}