Blockchain Project Report
Blockchain Project Report
Subject: Blockchain
Spring - 2024
Submitted to
Sir Fahim Shahzad
1
Introduction
We developed a blockchain-based crowdfunding application where users can create campaigns
for their projects, and those who wish to donate or fund these projects can do so seamlessly.
This application leverages the decentralized and transparent nature of blockchain technology to
ensure secure and reliable transactions. The core idea is to provide a platform where project
creators can raise funds, and donors can contribute with confidence, knowing that their
transactions are secure and transparent.
Solidity: Used for writing the smart contracts that power the application.
Thirdweb: A platform to deploy our smart contracts, which simplifies the deployment
process.
Hardhat: A development environment to compile and link the smart contracts with the
blockchain.
Visual Studio Code (VS Code): The Integrated Development Environment (IDE) used for
writing and managing the code.
MetaMask: A cryptocurrency wallet used for managing accounts and confirming transactions.
Node.js and npm: Installed initially to set up the development environment and manage
dependencies.
Project Flow
The project development followed these steps:
Setting Up the Environment:
We started by installing Node.js and npm to set up our development environment.
Created a new Thirdweb project and installed Hardhat to compile our Solidity smart contract.
2
Integrating MetaMask:
We created a MetaMask wallet and used a test network for development and testing.
The MetaMask wallet was linked to our project by writing the private key in the .env file.
Once MetaMask was connected, users could create campaigns and confirm transactions
directly through Thirdweb dashbord.
User Interaction
The user interaction in our application is straightforward and user-friendly:
Creating a Campaign:
The user connects their MetaMask wallet to the application.
They fill in the campaign details and execute the creation command.
MetaMask prompts the user to confirm the transaction.
Upon confirmation, the campaign is created, and the transaction receipt is available in
MetaMask.
Donating to a Campaign:
The user selects a campaign they wish to fund. Here, the getcompaigns function executed.
They fill in the donation amount and execute the donation command.
MetaMask prompts the user to confirm the transaction.
Upon confirmation, the donation is made, and the transaction receipt is available in MetaMask.
Conclusion
Our blockchain-based crowdfunding application provides a secure and transparent platform for
raising and donating funds. By leveraging blockchain technology, we ensure that all transactions
are immutable and transparent, instilling confidence in both project creators and donors.
MetaMask makes it easy for users to manage their transactions. This project demonstrates the
potential of blockchain technology in creating reliable and efficient crowdfunding solutions.