/fundraiser-dapp-eth

A Decentralized Fundraiser Application developed in Truffle framework and front-end in ReactJS

Primary LanguageJavaScript

A Decentralized Fundraiser Application developed in Truffle framework and front-end in ReactJS.

The application essentially provides a decentralized platform where users can Create Fundraisers by adding the required details and Donate to the existing Fundraisers. The donation amount is stored in the smart-contract till either the Goal set by the host is completed or the Expiry date set by the Host is passed. If the Goal amount is reached before the Expiry date, the collected funds are transferred to the Benificiary's address. Incase where the goal doesn't meet by the Expiry date, funds collected are refunded to the respective donors.

  • The smart-contracts are deployed on the Ropsten Test Network of the Ethereum blockchain
  • Deployment to blockchain is done via Infura
  • Truffle framework is used for local development
  • Front-end React application is deployed on Netlify - https://fundraiser-dapp.netlify.app/
  • Metamask is required to connect with the blockchain
  • User needs to have some Test Ethers from the Ropsten Test Network of Ethereum Blockchain to perform a transaction. You can get some free test etheres at Metamask Faucet
  • The Track page uses Etherscan API

Demo

demo-fundraiser-dapp.mp4

How to use

Use npm install truffle -g to install the Truffle framework

Use npm install in root directory to install dev dependencies required for deploying the smart-contracts

Use cd client/ to navigate into the front-end directory and npm install to install all the required node modules for the React App

Use truffle develop to create a local Blockchain

Use migrate --reset to deploy the smart-contracts inside the contracts/ directory on the local blockcahin

Use npm start in the client directory to start the React App

Rename .env_example to .env in the client directory and add the API key from Etherscan API to use the Track feature


How to deploy on ethereum network

Rename the .secret_example to .secrets and update it with the required details. You will need to create an account on Infura

Use truffle deploy --network ropsten or truffle migrate --network ropsten to deploy the smart-contracts on the Ropsten network