GithubHelp home page GithubHelp logo

turupawn / shy-panda Goto Github PK

View Code? Open in Web Editor NEW

This project forked from struka9/shy-panda

0.0 2.0 0.0 769 KB

A donation platform for Animal Protection Organizations in developing using Ethereum

HTML 3.61% CSS 1.77% JavaScript 94.63%

shy-panda's Introduction

Shy Panda

It’s an Ethereum blockchain project with the purpose of collecting funds for animal protection organizations around the world, with emphasis in developing countries.

Motivation

Non-profit animal protection organizations usually have a hard time when collecting funds for their everyday functions. In developing countries, where they sadly have little or no support from the government or other entities, they rely on the goodwill of donors and small activities to keep the organization afloat. Making use of Ethereum, I want to help to change this; allowing people from all over the world to make donations, with almost no fees on the cases they find most urgent, and at the same time allowing them to get updates from the organizations so they have the certainty that good deeds are made with their donation.

How-to Run

In order to run the project you will need:

  • Ganache or ganache-cli installed on your system
  • npm or yarn to run the front end
  • A Pinata API key/Secret pair
  1. Clone the project in your local machine and cd into it
  2. After making sure you got these you must start a Ganache instance, either using the CLI or the graphic interface. And get the mnemonic from it:
  3. Go to the project root folder and create a file called .secret, paste the mnemonic in there.
  4. Run the migrations command from the project root folder:
truffle migrate --network development
3a. Since the client already includes the ABI pointing to the Rinkeby deployed contracts, you will need to replace them with the ABIs you just created. Go to the project root and copy the contents of the `build/contracts/` folder, into `client/src/contracts` (They should be 4 contract ABIs).
  1. Now import the mnemonic into Metamask.
  2. You will need a Piñata API/Secret pair to be able to submit pets. 5a. Go to Pinata and create an account in case you don’t have one yet. 5b. Go to you account page and grab the API Key and Secret from there. 5c. Paste these values in the client/src/keys.js file
  3. From the project root folder, cd into the client folder and run: npm start or yarn start
  4. From a web browser navigate to localhost:3000
  5. Making sure you are using in Metamask the same account you used to deploy the contract in truffle (should be Account 1) navigate to Add Organization, from here you can allow an address to submit pets to the contract. Give a name to the organization in the Name input and paste one of the other accounts available in Ganache or Metamask in the Address input. Click Submit.
  6. Select in Metamask the account you used in the step above and navigate to Add Pet. You will be able to submit pets that will accept donations, enter the information along with some photos for the pet and click Submit.
  7. Using any other account in Metamask, navigate to Make a Good Deed. You should be able to see the pet you just submitted using the organization address. From here you can click in Donate to make a new donation for this pet and see how the progress is increased towards the goal.
  8. Now going back to the organization address you can navigate to Withdraw in here you should be able to see the amount you donated in the step above, available for the organization to withdraw it. Click on Withdraw and confirm the transaction, your ether should increase by the same amount.

shy-panda's People

Contributors

turupawn avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.