/EthStarter

An Ethereum smart contract and fundraising DApp which allows users to create fundraising campaigns and allows campaign contributors to vote on campaign spending requests.

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

An Ethereum smart contract and fundraising DApp which allows users to create fundraising campaigns and allows campaign contributors to vote on spending requests created by campaign managers.

Creating a Campaign

To create a new campaign simply click on the 'Create Campaign' or the '+' button. You will be redirected to a page where you will enter the campaign information and upon submitting it you will be prompted by Metamask to confirm the transaction (you will only pay for the gas required to create your campaign). After the transaction has been completed, you will be redirected to the homepage where you can see the list of campaigns with yours newly included.

Contributing to a Campaign

To contribute ether to an existing campaign, simply click the 'View Campaign' link underneath the campaign of your choosing. You will be redirected to a page containing a summary of the campaign, including the address, creator, current balance, number of contributors, and number of requests. Here you will also see a box labelled 'Contribute to Campaign'. Just write the contribution amount in ether and click 'Contribute!' and you will be prompted by Metamask to confirm the transaction. Upon successful completion the page will refresh and you will see the campaign balance increase according to your contribution.

Creating a Spending Request (for Managers)

If you are the manager of a campaign (i.e. you created the campaign), you will need to create spending requests in order to spend any of the campaign balance. To create a spending request, first click on the 'View Campaign' link underneath your campaign and then click on the 'View Requests' button. You will be redirected to a page which lists all of the campaign requests. On this page click on 'Create New Request' and you will be redirected to a page that will ask for specific information pertaining to the request, including the request amount (in ether), the recipient's address, and the reason for spending the money (e.g. you need to buy supplies). Click on 'Submit Request' and confirm in Metamask in order to submit the request. Now you must wait for a majority of campaign contributors to approve your request before you can finalize it.

Approving or Denying a Request (for Contributors)

If you contributed to a campaign you are entitled to vote on campaign spending requests created by the manager. In order to vote on spending requests for a campaign, first click on the 'View Campaign' link underneath the campaign. You will then click on the 'View Requests' button. This will take you to a page with a list of all requests for the campaign. Under each request you will see a green 'Approve' button and a red 'Deny' button. Clicking on either one will prompt Metamask to ask you to confirm the transaction (which only costs the gas needed to make it) and on success you will see the color of the request change according to your decision (red if denied, green if approved). You will also see the approver count increase by one if you approve the request (a 'deny' vote on a request will not change the approver count unless you had already voted 'approve' on the same request).

Finalizing a Spending Request (for Managers)

As the manager of a campaign, you are able to finalize spending requests once a majority of contributors have voted to approve it. Once this occurs, a purple 'Approve' button will appear underneath the request. Simply click on 'Approve' to confirm the transaction on Metamask and the funds will be sent to the address listed for the request recipient.