Skip to content
A decentralized donation platform
JavaScript HTML CSS
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets
client
contracts
migrations
test
.gitignore
.travis.yml
README.md
avoiding_common_attacks.md
deployed_address.txt
design_pattern_decisions.md
package-lock.json
package.json
truffle-config.js
truffle.js

README.md

Work Done

A Decentralized app to support content creators.

Abstract

Work Done is meant to be a decentralized platform for people to donate or support content creators..

The concept is similar to how personalised donation pages work, the difference is that the users can support these creators in the form of cryptocurrency directly using their metamask wallets. Creators can just register their address using their metamask wallet, fill the basic information about them, what they do etc and then share the link to their profile with people who wish to support them.

The Problem

I've seen content creators post their wallet addresses like this and then people who wish to support them have to copy this address, open wallet, enter amount to donate etc. So why not have a personalised page for the content creators containing their address so users who wish to support them just visit the creators page and donate the amount they want to directly.

Benefits

  • Get statistics based on the donation recieved, top donors, donations given etc.
  • Showcase all your work in one place so users can see and support accordingly.
  • Share a shortened link to your page for donations/support rather than copying address here and there.
  • A more user friendly way to support in cryptocurrency.

External Contracts Used

  • OpenZeppelin SafeMath
  • OpenZeppelin Ownable

Development

Prerequisites

This is my setup while developing this.

  • OS: macOS Mojave 10.14.2 18C54 x86_64
  • Node.js: 10.14.1
  • npm: 6.4.1
  • truffle: v5.0.0
  • Ganache CLI: v6.2.3

Setup local development instance

  • Clone the project locally
git clone https://github.com/dev-bootcamp-2019/final-project-anshumanv
cd final-project-anshumanv
  • Start local development blockchain and copy the mnemonic to be used later
ganache-cli -b 3
  • Compile contracts and migrate them to the blockchain
npm i
truffle compile
truffle migrate
Setup the frontend

The frontend is a React app that uses drizzle to interact with the contract.

cd client
npm i
npm start

Run Tests

truffle test

Initial setup

  • Goto localhost:3000 and login into metamask using the mnemonic obtained from ganache.
  • Allow connecting the app to web3
  • Owner's account will be already created and will be the one who initiated the contract.
  • You can then switch to a different metamask account and register/donate etc.

Future work

  • Creators can feature their top supporters
  • Badges for interesting statistics about donation given or recieved.
  • Donation Leaderboards
  • A more friendly page link
  • Integrate drizzle-react
  • Improve UI/UX

Screenshots

Landing

Register

Donate

Amount updated once transaction is a success

Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY

Author

Anshuman Verma

You can’t perform that action at this time.