Final Project for Blockchain, Cryptocurrencies and Smart Contracts 2021 Course at Copenhagen Business School.
Crowdfunding dApp provides a novel way of funding a project by raising cryptocurrency donations from contributors via public ethereum blockchain technology without the need for any middleman to manage the data flows.
In the system, we allow Campaign Creators (CCs) and Campaign Backers (CBs) to interact through creation and funding of blockchain related projects. In its most fundamental form, CCs are able to create projects that they seek funding for, whereas the CBs can back the projects they find intriguing. To make these interactions seamless, we develop a frontend that makes interaction with the blockchain and, by extension, our deployed smart contract possible.
When a new project is created, the CC will give it a title, a deadline, and a funding goal. CBs can choose a project they believe in, and contribute by investing a certain amount of cryptocurrency into a project. The contract will be fully automated with the help of Solidity and no centralized third party will be required for the process. If the funding goal is not reached, the contributors will get their money back. Therefore, CCs are incentivised to heavily consider what would be a reasonable amount of funding required for their project. Funds will be held in smart contracts and after successful completion of campaign, the CCs will be able to withdraw the automatically transferred funds to their personal wallets.
The contract is fully automated with the help of Solidity and no centralized third party is needed for the process. localhost ‘dummy’ network is set up with Hardhat framework which helps with compilation, deployment, testing and all necessary functionality for building smart contracts.
Before you start:
-
Navigate into the project directory and run the following command:
npm install
This will install the packages needed for the project.
-
Afterwards, you can run the following commands to make sure that Hardhat is configured correctly:
npx hardhat accounts npx hardhat compile
-
If it compiles correctly, we can start the project. Run the following command in one terminal tab:
npx hardhat node
When running this command, a list of available test accounts will be displayed. Select any account that you want to use for the project. Take the private key of the account and set it up in the metamask extension. Once this is done, you should be able to see it has 1000 ETH in the account. -
Open a second terminal tab and run the following command:
npx hardhat run scripts/deploy.js --network localhost
-
Open another terminal tab and go to the frontend directory
cd frontend/
. -
Run the following command:
npm start
(If this command does not work, you may have to runnpm install
in this directory first) -
Now frontend should be running on port 3000. https://localhost:3000/