Professional Documents
Culture Documents
POWERED BY BLOCKCHAIN
MINOR PROJECT REPORT
BACHELOR OF TECHNOLOGY
In
Ludhiana, 141006
ABSTRACT
Blockchain technology has the potential to revolutionize the way we approach crowdfunding. By
platform can be created that eliminates the need for intermediaries and reduces transaction costs.
Our platform allows project creators to create crowdfunding campaigns, set funding goals and
deadlines, and receive funds directly from backers. Backers can browse campaigns, view project
details and funding progress, and make contributions using popular cryptocurrencies such as
Ether, Bitcoin, and others. All transactions are recorded on the blockchain, providing an
immutable and transparent record of all crowdfunding activity. One of the key advantages of our
platform is its decentralized identity management system. This system allows users to create and
manage their own identities on the blockchain, eliminating the need for intermediaries and
increasing trust and transparency. Our platform also incorporates a reputation management
system that allows project creators to build trust with backers by showcasing their past successes
and achievements.
transactions between backers and project creators, reduces transaction costs, and increases
transparency and trust. We believe that our platform has the potential to transform the way
crowdfunding is done and to create new opportunities for entrepreneurs and creatives around the
world.
i
ACKNOWLWDGEMENT
We are highly grateful to the Dr Sehijpal Singh, Principal, Guru Nanak Dev Engineering College
(GNDEC), Ludhiana, for providing this opportunity to carry out the minor project work
received from Dr Parminder Singh H.O.D.CSE Department, GNDEC Ludhiana has been of great
help in carrying out the project work and is acknowledged with reverential thanks.
We would like to express a deep sense of gratitude and thanks profusely to Prof Jasdeep Kaur,
without her wise counsel and able guidance, it would have been impossible to complete the
We express gratitude to other faculty members of computer science and engineering department
of GNDEC for their intellectual support throughout the course of this work.
Finally, we are indebted to all whosoever have contributed in this report work.
Pumori Jagdev
Rahul Choudhary
ii
LIST OF FIGURES
iii
TABLE OF CONTENTS
Abstract i
Acknowledgement ii
1 Introduction
1.3 Objectives 1
2.3 Validation 6
3 System Design
3.4 Methodology 12
the System 19
References 24
1 Introduction
1.1 Introduction to Project
Crowdfunding is a process of raising money for a business or idea. Unlike traditional methods
of raising finance, crowdfunding is innovative and based on the concept of raising funding via
Blockchain contains the sequence of Blocks which are linked through cryptography. The
sequence of Blocks includes records of transactions that are immutable. Each block in the chain
contains previous Block hash value and present block hash value, so it is incorruptible.
Blockchain is a unique, independent and a transparent system which keeps the transactions
transparent. Crowdfunding platform using the blockchain technology increase the credibility of
various projects and ventures and therefore attracts huge funds from investors and donors.
• Block-Chain
1.3 Objectives
This project will help in providing a secure, transparent, and decentralized platform that helps
enables individuals or organizations to raise funds for their projects, initiatives, or businesses.
1. To provide a secure and decentralized payment system that enables backers to support
3. To provide a user-friendly interface that makes it easy for fundraisers and backers to
Based on the analysis of the existing crowdfunding platform, it showed problems like:
1
• Lack of Transparency: Crowdfunding platforms may not provide enough transparency
costly to create and manage, requiring significant effort from both project creators and
investors.
some project creators using the platform to deceive investors and misuse funds.
• Limited Payment Options: Crowdfunding platforms may have limited payment options,
• High Fees: Crowdfunding platforms may charge high fees, reducing the amount of
money available for project creators and limiting the potential returns for investors.
• Need for Security: Blockchain technology offers advanced security features, including
tamper-proof records and encryption, that can help prevent fraud and hacking attempts.
and provide a decentralized way for project creators and investors to interact.
• Need for Efficiency: A blockchain-based platform can automate many aspects of the
altered.
automatically execute the terms of agreements between project creators and investors.
2
1.6 Existing System
that connects project creators with investors. Project creators create a fundraising campaign on
the platform, which includes a description of the project, funding goal, and rewards or incentives
for investors. Investors can then browse the platform, find projects they are interested in, and
In the traditional system of crowdfunding platforms, the intermediary typically charges a fee for
their services, which can range from a fixed percentage of the funds raised to a combination of
address the limitations of the traditional system by using blockchain technology. This includes
creating a decentralized platform where there is no central intermediary that controls the flow of
funds or information. Instead, the platform uses a peer-to-peer network of nodes to process
By using a public ledger to record all transactions and interactions between project creators and
investors, the platform provides transparency in the fundraising process. Smart contracts are used
to execute the terms of agreements between project creators and investors. This reduces the need
The proposed blockchain-based crowdfunding platform has several unique features that
there is no central intermediary or authority that controls the transactions or funds. This
enables users to directly transact with one another, providing a more democratic
3
and fair system.
2. Transparency: All transactions and interactions between project creators and investors
Investors can easily track the progress of the fundraising campaign, and project creators
3. Security: The platform uses advanced security features, including encryption and
4. Smart Contracts: The platform uses smart contracts, which are self-executing
contracts. Smart contracts automate the crowdfunding process, reducing the need for
4
2 Requirement Analysis and System Specification
solution that can handle the expected traffic and data. The blockchain used should be able
• Economic Feasibility: Very less time and resources are used for creating and donating
to campaigns using blockchain. We are storing hash value as data in the blockchain,
smooth functioning of the platform. It is easy to maintain, and operate the platform. The
platform is user-friendly, have efficient processes for project vetting, and be able to handle
user issues.
• Functional Requirement:
• Performance Requirement
MacOS.
5
* Front End: React, a JavaScript library.
o Hardware Requirement:
* 64-bit CPU
* 4 GB RAM
blockchain for crowdfunding platform will be decentralized and will be cost efficient.
funding platform with an easy-to-use interface where one can easily create and donate to
2.3 Validation
The software has been validated and it was found that our pilot implementation is working well.
Crowdfunding platforms must be able to handle large volumes of transactions and users, which
can be a challenge in terms of scalability. Ensuring that the platform can scale up to meet
1. Planning and Requirement Analysis: Requirement analysis is the most important and
fundamental stage in SDLC. The information that we got from requirement analysis used
to plan the basic project approach and to conduct product feasibility study in the
6
economical, operational and technical areas. Planning for the quality assurance
requirements and identification of the risks associated with the project is also done in the
planning stage.
2. Defining Requirements: Once the requirement analysis is done the next step is to clearly
define and document the product requirements and get them approved from the customer.
3. Designing the Product Architecture: The internal design of all the modules of the
proposed architecture should be clearly defined with the minutest of the details.
4. Building or Developing the Product: In this stage of SDLC, the actual development
starts and the product is built. The programming code is generated during this stage.
Developers must follow the coding guidelines defined by their organization and
programming tools like compilers, interpreters, debuggers, etc. are used to generate the
code.
5. Testing the Product: This stage refers to the testing only stage of the product where
product defects are reported, tracked, fixed and retested, until the product reaches the
6. Deployment in the Market and Maintenance: Once the product is tested and ready to
7
3. System Design
We have used Object oriented Approach in our project. In object oriented we can use concepts
• createCompaign (): This function allows users to create new crowdfunding projects,
including providing information about the project name, setting funding goals, and no of
• donateToCampaign (): Any user whose wallet has been connected to the app can
contribute to a campaign. The process is simple. The user only needs to select the
campaign, enter the amount he wishes to contribute, and then authorize the transaction
8
(in this case, with the MetaMask extension).
• getDonors (): It provides the list of donors who are contributing to the ongoing
campaigns.
Blockchain is how the data is structured. A blockchain collects information together in groups,
known as blocks, that hold sets of information. Blocks have certain storage capacities and, when
filled, are closed and linked to the previously filled block, forming a chain of data known as the
blockchain. All new information that follows that freshly added block is compiled into a newly
formed block that will then also be added to the chain once filled.
Firstly, user will connect to the wallet only if the details are correct. Here the MetaMask extension
is used.
9
Fig.3.2.2 Connect Wallet
10
Fig.3.2.3 Class Diagram
been observed to best fit the nature of the research since it provides an easy to understand
sequential and systematic process of developing the software that had the possibility of the
changing requirements. The waterfall model software development life cycle traditionally has
• Connect Wallet
first needs to connect an Ethereum wallet to the site. We have made use of a browser
extension called MetaMask to connect the wallet, which can be used to authorize
• Creating a Campaign
Once a wallet has been connected, anyone can create a crowdfunding campaign. The
process is highly intuitive and self-explanatory, and the user only has to supply the data
• Contributing to a Campaign
Any user whose wallet has been connected to the app can contribute to a campaign. The
process is simple. The user only needs to select the campaign, enter the amount he wishes
to contribute, and then authorize the transaction (in this case, with the MetaMask
extension).
12
Fig.3.4.1 Methodology of Work
13
4 Implementation, Testing and Maintenance
Implementation
• React: React is a JavaScript library for building user interfaces. React allows developers
to build reusable UI components that can be combined to create complex user interfaces.
state of the user interface and let React handle the updates to the UI.
• Web3: Web3, also known as Web3.js, is a JavaScript library that provides a way to
interact with the Ethereum blockchain. It is used to build decentralized applications that
run on top of the Ethereum network.Web3.js allows developers to interact with smart
contracts on the Ethereum blockchain, send and receive cryptocurrency transactions, and
retrieve data from the blockchain. It provides a way to interact with the Ethereum network
• Ethereum Smart Contracts: Ethereum smart contracts are self-executing contracts with
the terms of the agreement between buyer and seller being directly written into lines of
code. Smart contracts are stored on the Ethereum blockchain and are executed
automatically when certain conditions are met. Smart contracts on Ethereum are written
in the Solidity programming language, which is specifically designed for creating smart
contracts. The code for a smart contract is written in Solidity and then compiled into
bytecode that can be executed on the Ethereum Virtual Machine (EVM), which is a
contracts on the Ethereum blockchain. Its features make it easy to write secure and
reusable contracts, while its integration with other languages allows developers to build
14
complex decentralized applications that interact with the Ethereum network.
• Follow security best practices while writing smart contracts, such as input validation,
• The code is thoroughly tested to ensure that it works as expected and meets the
requirements.
15
4.4 Testing Techniques and Test Plans
Below are the components that can be tested as part of functional Testing:
1. Testing the ability for project creators to withdraw funds from the platform and
2. Testing the ability for project creators to withdraw funds from the platform and
3. Blockchain has been tested by adding blocks and then also verifying whether our
important to test inter-system connections. We have tested whether our project working
fine after integrating every component or not. Whether we are able to create campaign
response time, throughput, and scalability under varying workloads to ensure that it can
handle a large number of users and transactions. By identifying performance issues and
bottlenecks early in the development cycle, developers can make necessary changes and
• Node Testing: All diverse nodes on the Network has been tested independently to ensure
smooth cooperation.
16
5 Results and Discussions
The user can create the campaign by entering the details such as Campaign Name, Campaign
Description and Minimum Contribution. After entering all these details, the user can click on
Create. The campaign will be created and it will be displayed on the user interface where all the
campaign. The amount can be contributed in Ether and then click on Contribute. We can view
the requests that are available to withdraw an amount from the campaign. The information like
minimum contribution, number of approvers, number of requests, campaign balance (Ether) also
shown. We can click on View Requests to view all the requests that are made to withdraw the
17
Fig.5.1.2 Contribute to Campaign
The details of requests are shown as given and as the creator of that campaign it can be approved
and then finalized. The details like ID, Description, Amount, Recipient is shown. The request can
be approved and then finalize. If the balance is less than the amount requested, then the request
cannot be approved.
18
5.2 Brief Description of various modules of the System
• Create Blockchain: Returning a block which is the having all information about it.
• create_campaign: Once a wallet has been connected, anyone can create a crowdfunding
campaign. The process is highly intuitive and self-explanatory, and the user only has to
• contribute_campaign: Any user whose wallet has been connected to the app can
contribute to a campaign. The process is simple. The user only needs to select the
campaign, enter the amount he wishes to contribute, and then authorize the transaction
The user interface of the platform looks like as shown in Fig.5.3.1. The working of the
crowdfunding platform is also shown like Creating a Campaign, Requests funds, Approval and
Withdraw funds.
19
Fig.5.3.1 User Interface
User can create the campaign by adding details such as Campaign name, Campaign Description
and Minimum Contribution in ETH. After entering all these details, the user can click on Create.
The campaign will be created and it will be displayed on the user interface where all the other
20
Anyone can contribute to the campaign by connecting the wallet and view the campaign details
such as name of the campaign, minimum contribution, number of approvers, number of requests
and campaign balance (in ether). The amount can be contributed in Ether and then click on
Contribute. We can view the requests that are available to withdraw an amount from the
requests, campaign balance (Ether) also shown. We can click on View Requests to view all the
requests that are made to withdraw the amount from any campaign.
User can create a request to withdraw the funds by filling the details such as Description, Value
in Ether and Recipient Address. Then click on Create. All the requests are visible to user. The
user can approve or deny the requests and then finalize. If the balance is less than the amount
21
FIG.5.3.4 Create Request
The requests that are raised are shown. The creator of the campaign will approve and finalize the
request. The details like ID, Description, Amount, Recipient is shown. The request can be
approved and then finalize. If the balance is less than the amount requested, then the request
cannot be approved.
22
6 Conclusion and Future Scope
The crowdfunding platform powered by blockchain is a promising project that has the potential
efficiency. Through the use of smart contracts and decentralized storage, this platform provides
a reliable and immutable system for fundraising, eliminating the need for intermediaries and
In future, we can integrate artificial intelligence and machine learning algorithms which can
improve the platform's fraud detection capabilities and enhance the user experience. We can
Develop user-friendly interfaces and providing support for multiple cryptocurrencies which can
increase user adoption and make the platform more accessible to a wider range of users.
23
References
[1] Timothy Arndt and Angela Guercio. Blockchain-based transcripts for mobile
2020
[2] Sura I. Mohammed Ali, Haitham Farouk, and Hussien Sharaf. A blockchain-based models for
[3] Gemini. (n.d.). Blockchain Crowdfunding & Blockchain Startups. Gemini Cryptopedia.
startups#section-what-is-crowdfunding
[4] Dapp University. (n.d.). How to Build a Blockchain App. Retrieved from
https://www.dappuniversity.com/articles/how-to-build-a-blockchain-app
[5] Rinkeby Ethereum Test Network. (n.d.). Rinkeby Ethereum Test Network. Retrieved from
https://www.rinkeby.io/#stats
24