A decentralised web application for financing a community or a social cause by group of people using blockchain and ethereum technology involving no third parties. It involves no third parties and anyone can raise funds as well as donate to a particular Fund through a secure peer to per network on the ethereum blockchain. The application uses concepts of ethereum blockchain using solidity contracts and a react based frontend. A request can be made by the owner of an campaign to transfer funds which has to be approved by majority of Donors .This allows the correct use of their funds.
Community funding has become an extremely useful alternative to venture capital, and has also allowed non-traditional projects, such as those started by in-need families or hopeful creatives, a new audience to pitch their cause. However, a greater concern is the fraud commited by the dealers and traders who can access the funds of the donors without any check. Blockchain technology, among all its benefits, can be best put to use by providing provable milestones as contingencies for giving, with smart contracts releasing funds only once when milestones establish that the money is being used the way that it is said to be.
-
Install Metamask as Firefox Extension(Google Chrome at your own risk) and create an account.
-
Request Ether by sharing your ethereum address in social media
(https://faucet.rinkeby.io/)
-
Create an account in https://infura.io
-
Create .env file in Ethereum directory and add these lines.
mnemonic = 'her goes your mnemonic code from metamask also called seed'
link = 'Your infura end point link after you create a project on infura' -
After deploying Contract by going into Ethereum Directory and running
node deploy.js
Copy the contract deploy address from the terminal and replace it in factory.js file.
-
Replace your "infura end point link" in web3.js file.
- Install the required dependencies
sudo npm install
- Compile the Contract
node compile.js
- Test the Contract
npm run test
- Deploy the Contract
node deploy.js
- Run the application
npm run dev
Name | Version | Description |
---|---|---|
solc | 0.4.26 | Programming language to write smart contracts |
ganache-cli | 6.5.1 | Local Ethereum Test Network |
mocha | 6.2.0 | JavaScript test framework |
truffle-hdwallet-provider | 1.0.16 | The Truffle HDWallet provider is a convenient and easy to configure network connection to ethereum through infura.io |
web3 | 1.0.0-beta.55 | Ethereum JavaScript API which connects to the Generic JSON RPC spec. |
dotenv | 8.0.0 | Loads environment variables from a .env file into process.env |
fs-extra | 8.1.0 | file system methods that aren't included in the native fs |
next | 9.0.3 | JavaScript framework to build server-side rendering and static web application using React |
react | 16.9.0 | JavaScript library for creating user interfaces |
react-dom | 16.9.0 | DOM specific methods that can be used on React application |
semantic-ui-react | 0.87.3 | react component kit provides pre define react component |
semantic-ui-css | 2.4.1 | react component kit provides theme to react component as CSS |
next-routes | 1.4.2 | Dynamic Routes for Next.js |
=======