Etherfunds


Etherfunds

A fundraising decentralised application (DAPP), that eliminates middlemen while improving the integrity of the entire process.

Explore the docs »

Architecture   ·   Code   ·   Local Setup


https://user-images.githubusercontent.com/56788568/231786213-3be540b1-e84b-4c82-ab46-6a466af932d6.mp4

Table Of Content


Features

Motivation

The existing fundraising platforms suffer from the following problems:

Enter blockchain technology, an immutable ledger where every record can be traced to its creation. Decentralized and distributed among its users, blockchain allows them to track transactions and be sure of the absence of fraudulent activities.

Why only Ethereum Blockchain

Corner-cases

What if owner of fund is not a legitimate person and uses the fund for his own benefits after withdrawal?

What if owner is a NGO and then they distribute money to management as well as to the cause, but they majorly used their funds for management, can you do something about it?


Architecture

We tried to follow ideal Software Development Design Principles such as.


The presentation for Etherfunds can be found here.

Block diagram

E-R diagram



Technologies Used

Local-Setup

  1. clone the project to your local environment
  2. make sure you have node.js version ^14.19.0
  3. make sure you have npm version ^8.5.5
  4. run $ npm install to install dependencies for react app
  5. run $ cp .env.example .env.development.local
  6. run $ cd src/backend to cd into the backend directory
  7. run $ npm install to install dependencies for the backend
  8. open two terminals in one terminal run $ npx hardhat node to start a local blockchain
  9. in second terminal run $ npx hardhat run --network localhost scripts/deploy_etherfund.js to deploy the smart contract and copy the address printed in the terminal
  10. open the .env.development.local file from project root and set the variable REACT_APP_CONTRACT_ADDRESS to the address copied above
  11. run $ cd ../.. to go back to the project root and run $ npm start to start the react project
  12. Now in your React-app, enter password in your metamask wallet or any other blockchain wallet
  13. Switch to TestNetwork or add one preferably having RPC URL as http://localhost:8545 with chain-id of 31337
  14. Create dummy accounts, you can find the private keys of dummy accounts in the terminal where npx hardhat node was ran
  15. You may see an error in browser console of call revert exception, in that case, kindly reset your account and refresh the page
  16. You can use the site, congrats 🎉
  17. In case of any other errors, kindly create an issue here

License 📜

GNU General Public License v3.0

Authors