Blockchain-Powered Crowdfunding for Animal Rescue & Welfare
View Demo Β· Features Β· Getting Started Β· Usage Β· Report Bug
PawFund is a decentralized crowdfunding platform built on Ethereum blockchain technology that connects animal rescuers with supporters worldwide. The platform enables transparent, secure, and efficient fundraising for animal rescue and welfare initiatives.
By leveraging blockchain technology, PawFund ensures:
- Complete transparency in fund allocation
- Secure and immutable transaction records
- Direct connection between donors and animal rescue projects
- Elimination of intermediaries and reduced fees
- Decentralized Crowdfunding: Create, discover, and contribute to animal welfare campaigns with full transparency
- Blockchain Security: All transactions secured by Ethereum smart contracts
- IPFS Integration: Decentralized storage for campaign images and data
- Real-time Updates: Track campaign progress and fund allocation in real-time
- Wallet Integration: Seamless connection with MetaMask and other Web3 wallets
- Responsive Design: Modern UI built with React and Tailwind CSS for all devices
- Campaign Management: Create, edit, and manage rescue campaigns with ease
- Direct Support: Contribute directly to animal rescue initiatives with ETH
| Category | Technologies |
|---|---|
| Frontend | React.js, Tailwind CSS, React Router |
| Blockchain | Ethereum, Hardhat, Ethers.js |
| Storage | IPFS (InterPlanetary File System) |
| Testing | Waffle, Chai |
| Development | Node.js, Yarn/NPM |
Before you begin, ensure you have the following installed:
-
Clone the repository
git clone https://github.com/HumayunK01/PawFund.git cd PawFund -
Install dependencies
npm install # or if you prefer yarn yarn install -
Set up environment variables
# Create a .env file in the root directory cp .env.example .env # Edit the .env file with your configuration # Required variables: # - REACT_APP_IPFS_PROJECT_ID # - REACT_APP_IPFS_PROJECT_SECRET
-
Start the development environment
<<<<<<< HEAD
Figure 12: Smart Contract Interaction Flow - Detailed view of how smart contracts interact within the system
Figure 13: System Flow Diagram - Complete system workflow and process flow
Figure 14: System Architecture - High-level view of the platform's technical architecture
Figure 15: User Flow Diagram - Step-by-step user journey through the platform
======= In separate terminal windows:
25c00a3ebaa7804d62bb649579425923b1704a29
Terminal 1 - Start local blockchain:
npx hardhat nodeTerminal 2 - Deploy smart contracts:
npx hardhat run scripts/deploy.js --network localhostTerminal 3 - Start the application:
npm start
# or
yarn start-
Access the application
Open your browser and navigate to http://localhost:3000
- Connect your Web3 wallet by clicking the "Connect Wallet" button
- Navigate to the dashboard and click "Create New Campaign"
- Fill in the required details:
- Campaign title
- Description
- Funding goal
- Campaign duration
- Upload images
- Submit the campaign for review
- Once approved, your campaign will be live on the platform
- Browse available campaigns on the homepage or search for specific causes
- Select a campaign you wish to support
- Click "Support This Rescue"
- Enter the amount you wish to contribute
- Confirm the transaction in your Web3 wallet
- Receive confirmation and track your contribution
- Access your dashboard to view all your created campaigns
- Monitor funding progress and supporter activity
- Update campaign details as needed
- Communicate with supporters through updates
- Withdraw funds once campaign goals are met
PawFund/
βββ public/ # Static files
βββ src/ # Source files
β βββ abis/ # Smart contract ABIs
β βββ components/ # Reusable UI components
β βββ contracts/ # Solidity smart contracts
β βββ services/ # External service integrations
β βββ store/ # State management
β βββ views/ # Page components
β βββ App.jsx # Main application component
β βββ index.jsx # Application entry point
β βββ index.css # Global styles
βββ scripts/ # Deployment and utility scripts
βββ test/ # Test files
βββ .env.example # Example environment variables
βββ hardhat.config.js # Hardhat configuration
βββ package.json # Project dependencies
βββ README.md # Project documentation
Click to view screenshots
Main landing page showcasing featured rescue campaigns
Learn about our mission and vision for animal welfare
Step-by-step guide to using the PawFund platform
Comprehensive view of ongoing rescue campaigns
Overview of active and completed rescue cases
Follow the Getting Started section for local deployment.
-
Build the application
npm run build # or yarn build -
Deploy to hosting service
The project can be deployed to various hosting services:
-
Vercel:
npm install -g vercel vercel
-
Netlify:
npm install -g netlify-cli netlify deploy
-
Firebase:
npm install -g firebase-tools firebase login firebase init firebase deploy
-
-
Deploy smart contracts to testnet/mainnet
# For Ethereum testnet (Goerli) npx hardhat run scripts/deploy.js --network goerli # For Ethereum mainnet npx hardhat run scripts/deploy.js --network mainnet
Run the test suite to ensure everything is working correctly:
# Run all tests
npx hardhat test
# Run specific test file
npx hardhat test test/Genesis.test.jsWe welcome contributions to PawFund! Please follow these steps:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please ensure your code follows the project's coding standards and includes appropriate tests.
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenZeppelin for secure smart contract libraries
- IPFS for decentralized storage solutions
- Hardhat for Ethereum development environment
- Tailwind CSS for the UI framework
- React for the frontend library
For any questions, suggestions, or collaboration opportunities, please reach out:
- Email: humayunk.pvt@gmail.com
- GitHub Issues: Open an issue
- Twitter: @HumayunK01
Made with β€οΈ for animals everywhere

