KickFundr is a decentralized crowdfunding platform (a Web3 Kickstarter clone) built on the Ethereum blockchain. It allows creators to pitch their project ideas and securely raise funds, while protecting contributors by giving them voting power over how those funds are spent.
- Decentralized Crowdfunding: Create campaigns with a custom name and a minimum contribution amount.
- Contributor Protection: Funds are locked in the smart contract. Creators cannot withdraw the funds arbitrarily.
- Spending Requests: Creators must create "Spending Requests" detailing what they need money for, the amount, and the vendor's address.
- Voting System: Contributors (approvers) vote on spending requests. A request must be approved by >50% of the contributors before the creator can finalize it and send the funds to the vendor.
- Unit Conversion: Seamlessly toggle between Wei and ETH when creating campaigns, contributing, or requesting funds.
The project is divided into two main parts:
client/- The Next.js frontend web application.Smart_Contracts/- The Solidity smart contracts, tests, and deployment scripts.
See the specific README.md files in each of those directories for more detailed information about their respective tech stacks and commands.
Navigate to the Smart_Contracts directory and install dependencies:
cd Smart_Contracts
npm installCompile the contracts to generate the artifacts:
npx hardhat compileRun the tests (supports both Hardhat and Foundry):
npx hardhat test
forge testNavigate to the client directory and install dependencies:
cd ../client
npm installStart the Next.js development server:
npm run devOpen http://localhost:3000 in your browser to interact with the application. Make sure you have a Web3 wallet like MetaMask installed and connected to the appropriate network.
This project is licensed under the MIT License. See the LICENSE file for more details.