{"id":23730126,"url":"https://github.com/drewcook/dapp-fundraisers","last_synced_at":"2026-05-04T00:34:34.510Z","repository":{"id":84426282,"uuid":"442009682","full_name":"drewcook/dapp-fundraisers","owner":"drewcook","description":"A decentralized application built on the Ethereum blockchain with Solidity smart contracts and a React frontend.","archived":false,"fork":false,"pushed_at":"2022-02-06T19:43:22.000Z","size":2517,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-19T08:27:06.323Z","etag":null,"topics":["blockchain","dapp","ethereum","react","smart-contracts","solidity","truffle","truffle-framework","web3"],"latest_commit_sha":null,"homepage":"https://fundraisers.dco.dev","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/drewcook.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-27T00:17:40.000Z","updated_at":"2023-04-04T07:28:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"70c28be8-41e7-4ef7-9063-39fe878559c8","html_url":"https://github.com/drewcook/dapp-fundraisers","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/drewcook/dapp-fundraisers","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drewcook%2Fdapp-fundraisers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drewcook%2Fdapp-fundraisers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drewcook%2Fdapp-fundraisers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drewcook%2Fdapp-fundraisers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/drewcook","download_url":"https://codeload.github.com/drewcook/dapp-fundraisers/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drewcook%2Fdapp-fundraisers/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32590449,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T22:12:39.696Z","status":"ssl_error","status_checked_at":"2026-05-03T22:09:10.534Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","dapp","ethereum","react","smart-contracts","solidity","truffle","truffle-framework","web3"],"created_at":"2024-12-31T02:32:32.177Z","updated_at":"2026-05-04T00:34:34.448Z","avatar_url":"https://github.com/drewcook.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DApp Fundraisers\n\nUse the [fundraisers demo app](https://fundraisers.dco.dev/) with a Web3 wallet, like [MetaMask](https://metamask.io/), connected to any one of the supported networks. The application can run on a local blockchain (Parity, Geth, Ganache), or one of the following Ethereum testnets: Ropsten, Kovan, Rinkeby, and Goerli.  Create fundraisers, donate to them, and withdraw your donations, all with Ether, all on the blockchain, from anywhere.\n\nThis repository holds the smart contract and front end code for a fundraisers application run on the Ethereum blockchain.  The app shows a number of fundraisers that users can donate to for the particular cause. You can create fundraisers for other users to donate to, and you may act as a custodian to withdraw all the fundraiser donations and transfer them to the beneficiary who created it.\n\nThe `Factory` smart contract handles creating new fundraisers and paginating between them.  It calls logic held in the Fundraiser smart contract for each particular fundraiser. This contract uses the factory pattern to create, store, and work with a collection of Fundraiser smart contracts.\n\nEach `Fundraiser` smart contract will hold all the funds of the donations, and a custodian may act on the behalf of a beneficiary to withdraw the funds and deposit them directly into the beneficiary's wallet address. The custodian may also set the beneficiary account.  The custodian defaults to the deployer of the contract.\n\n## Smart Contract Dependencies\n\nThe smart contracts are written in Solidity, and they use some dependencies, including [OpenZeppelin](https://openzeppelin.com/) as a source for smart contract inheritance. Therefore, these dependencies need to be installed prior to working with the project.\n\nEnsure you are located at the root of the project, and install them with NPM:\n\n```bash\nnpm i\n```\n\n## Deploy the contracts\n\nDeploy the contracts to the client application and connect to a local network. Use a tool like [Ganache](https;//trufflesuite.com/ganache) to spin up a local blockchain, then deploy the fundraiser contracts by deploying to the development network configured in `truffle.config.js`.  You may update this to be your own local host of your choice.\n\nEnsure your local blockchain network is running and that `truffle.config.js` is up to date with the config, then run the following:\n\n```bash\ntruffle compile\ntruffle migrate --network develop\n```\n\n## Client App \u0026 Dependencies\n\nThe front end is a React application that holds the contracts built from the root directory. The client app is located in `./client`. Install the dependencies with:\n\n```bash\ncd client\nyarn install\n```\n\n### Build the client app\n\nEnsure you have a browser wallet installed and accounts connected to your local blockchain that you've spun up, and then start up the client application to interact with the fundraisers.  The app should spin up on `localhost:3000`.\n\n```bash\ncd client # if not in client dir already\nyarn start\n```\n\nNow you should have a local instance of this fundraiser app, connected to your own local blockchain with your own test wallets, and you can create new fundraisers and interact with them by making donations to the causes, all stored on the blockchain.\n\n\u003cp align=\"center\"\u003e\n \u003cimg src=\"https://visitor-badge.glitch.me/badge?page_id=drewcook.dapp-fundraisers\" alt=\"visitor count\"/\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrewcook%2Fdapp-fundraisers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrewcook%2Fdapp-fundraisers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrewcook%2Fdapp-fundraisers/lists"}