You are on page 1of 30

CROWDFUNDING PLATFORM

POWERED BY BLOCKCHAIN
MINOR PROJECT REPORT

SUBMITTED IN PARTIAL FULFILMENT OF THE REQUIREMENTS FOR THE AWARD


OF THE DEGREE OF

BACHELOR OF TECHNOLOGY

In

Computer Science and Engineering

SUBMITTED BY: SUBMITTED TO:

Pumori Jagdev (2004643) Asst. Prof. Jasdeep Kaur

Rahul Choudhary (2004645)

Kunwar Chetan Singh (2004826)

Department of Computer Science and Engineering

Guru Nanak Dev Engineering College

Ludhiana, 141006
ABSTRACT
Blockchain technology has the potential to revolutionize the way we approach crowdfunding. By

leveraging the inherent security and transparency of blockchain, a decentralized crowdfunding

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.

Overall, our crowdfunding platform powered by blockchain technology represents a significant

improvement over traditional crowdfunding platform. It allows for direct, peer-to-peer

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

“Crowdfunding Platform powered by Blockchain”. The constant guidance and encouragement

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

project in this manner.

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

Kunwar Chetan Singh

ii
LIST OF FIGURES

Fig. No. Figure Description Page No

3.1.1 Design Approach 8

3.2.1 Blockchain Design 9

3.2.2 Connect Wallet 10

3.2.3 Class Diagram 11

3.3.1 User Interface 11

3.4.1 Methodology of work 13

4.3.1 Gantt Chart 15

5.1.1 Create Campaign 17

5.1.2 Contribute to Campaign 18

5.1.3 Withdraw Request 18

5.3.1 User Interface 20

5.3.2 Create Campaign 20

5.3.3 Contribute to Campaign 21

5.3.4 Create Request 22

5.3.5 Requests Approval 22

iii
TABLE OF CONTENTS

CONTENTS PAGE NO.

Abstract i

Acknowledgement ii

List of Figures iii

1 Introduction

1.1 Introduction to Project 1

1.2 Project Category 1

1.3 Objectives 1

1.4 Problem Formulation 1

1.5 Identification of need 2

1.6 Existing System 3

1.7 Proposed System 3

1.8 Unique features of the System 3

2 Requirement Analysis and Specification

2.1 Feasibility Study 5

2.2 Software Requirement Specification Document 5

2.3 Validation 6

2.4 Expected Hurdles 6

2.5 SDLC Model 6

3 System Design

3.1 Design Approach 8


3.2 System Design 9

3.3 User Interface Design 11

3.4 Methodology 12

4 Implementation, Testing and Implementation

4.1 Introduction to Languages, IDE’s, Tools and

Technologies used for Implementation 14

4.2 Coding standards of Language Used 15

4.3 Project Scheduling using GANTT chart 15

4.4 Testing Techniques and Test Plans 16

5 Results and Discussions

5.1 User Interface Representation 17

5.2 Brief description of various modules of

the System 19

5.3 Snapshots of the System 19

6 Conclusion and Future Scope 23

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

crowds of people. Blockchain is a distributed public ledger and decentralized system.

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.

1.2 Project Category

• Application or System Development

• 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

projects with cryptocurrency.

2. To ensure transparency and accountability by recording all transactions on the

blockchain, making them publicly visible to all participants.

3. To provide a user-friendly interface that makes it easy for fundraisers and backers to

interact with the platform and monitor the progress of campaigns.

1.4 Problem Formulation

Based on the analysis of the existing crowdfunding platform, it showed problems like:

1
• Lack of Transparency: Crowdfunding platforms may not provide enough transparency

about the project creators and their intended use of funds.

• Time Consuming and costly: Crowdfunding campaigns can be time-consuming and

costly to create and manage, requiring significant effort from both project creators and

investors.

• Fraud and Mismanagement: Crowdfunding campaigns are vulnerable to fraud, with

some project creators using the platform to deceive investors and misuse funds.

• Limited Payment Options: Crowdfunding platforms may have limited payment options,

which can be inconvenient for investors and project creators.

• High Fees: Crowdfunding platforms may charge high fees, reducing the amount of

money available for project creators and limiting the potential returns for investors.

1.5 Identification of need

• Need for Transparency: A blockchain-based platform can provide transparency and

traceability to crowdfunding transactions, enhancing investor confidence.

• Need for Security: Blockchain technology offers advanced security features, including

tamper-proof records and encryption, that can help prevent fraud and hacking attempts.

• Need for Decentralization: A blockchain-based platform can eliminate intermediaries

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

fundraising process, reducing costs and improving efficiency.

• Immutable records: Blockchain-based crowdfunding platforms can provide immutable

records of transactions, ensuring that fundraising campaigns and investments cannot be

altered.

• Smart Contracts: Blockchain-based crowdfunding platforms can use smart contracts to

automatically execute the terms of agreements between project creators and investors.

2
1.6 Existing System

The traditional system of crowdfunding platforms typically involves a centralized intermediary

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

contribute funds to support the project.

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

fees and commissions.

1.7 Proposed System

The implementation of blockchain in the blockchain-based crowdfunding platform aims to

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

transactions and manage crowdfunding campaigns.

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

for intermediaries and ensures the fair distribution of funds.

1.8 Unique Features of the System

The proposed blockchain-based crowdfunding platform has several unique features that

distinguish it from traditional crowdfunding platforms.

1. Decentralization: The platform operates on a decentralized network, which means 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

are recorded on a public ledger, ensuring transparency in the fundraising process.

Investors can easily track the progress of the fundraising campaign, and project creators

are held accountable for the use of funds.

3. Security: The platform uses advanced security features, including encryption and

digital signatures, to ensure that transactions are secure and tamper-proof.

4. Smart Contracts: The platform uses smart contracts, which are self-executing

contracts. Smart contracts automate the crowdfunding process, reducing the need for

intermediaries and ensuring the fair distribution of funds.

4
2 Requirement Analysis and System Specification

2.1 Feasibility study

• Technical Feasibility: It is technical feasible because it provides a secure and scalable

solution that can handle the expected traffic and data. The blockchain used should be able

to handle transactions quickly and at low costs.

• 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,

considering very less resources. Moreover, Data is decentralized so no

load on single PC.

• Operational Feasibility: The platform's operational feasibility is critical to ensure the

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.

2.2 Software Requirement Specification Document

• Data Requirement: The transaction id of each transaction is required to store on the

blocks and to observe the data through repeated careful listening.

• Functional Requirement:

o User registration and authentication

o Project creation and management

o Smart contract development and management

• Performance Requirement

o Software Requirement: The following specifications are required:

* Operating system: The Certified distribution of Windows, or Linux or

MacOS.

5
* Front End: React, a JavaScript library.

* Back End: Solidity and Smart Contract deployed on ThirdWeb.

* A blockchain platform such as Ethereum.

o Hardware Requirement:

* 64-bit CPU

* 4 GB RAM

* At least 5 GB free disk space

* A server to host the blockchain nodes and smart contracts.

• Maintainability Requirement: This software will be easy to maintain as, using

blockchain for crowdfunding platform will be decentralized and will be cost efficient.

• Security Requirement: System security depends on decentralized data management.

• Look and Feel Requirement: Crowdfunding Platform using blockchain is an efficient

funding platform with an easy-to-use interface where one can easily create and donate to

a campaign with all security.

2.3 Validation

The software has been validated and it was found that our pilot implementation is working well.

2.4 Expected Hurdles

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

increasing demand is critical to its success.

2.5 SDLC model

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

quality standards defined in the SRS.

6. Deployment in the Market and Maintenance: Once the product is tested and ready to

be deployed it is released formally in the appropriate market.

7
3. System Design

3.1 Design Approach:

We have used Object oriented Approach in our project. In object oriented we can use concepts

like information hiding, benefits of constructor and destructor etc.

Fig.3.1.1 Design Approach

Functions included are:

• createCompaign (): This function allows users to create new crowdfunding projects,

including providing information about the project name, setting funding goals, and no of

days the campaign will run.

• 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.

• getCompaigns (): It provides the list of active campaigns.

3.2 System Design

Fig.3.2.1 Blockchain Design

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

3.3 User Interface Design

Fig.3.3.1 User Interface


11
3.4 Methodology
We have chosen the Waterfall model as our Systems Development Life Cycle (SDLC) as it has

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

the following four stages:

• Connect Wallet

In order to perform any transactions, creation of a campaign or contributing to one, a user

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

transactions for cryptocurrency.

• 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

as asked in the forms.

• 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

4.1 Introduction to Languages, IDE’s, Tools and Technologies used for

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.

It uses a declarative approach to programming, where developers describe the desired

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

through the use of an API and various interfaces.

• 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

decentralized, global computer that runs on the Ethereum network.

• Solidity: Solidity is a programming language specifically designed for writing smart

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.

4.2 Coding standards of Language used

• Write Well-Structured Code.

• Have Proper Comments.

• Proper Naming of Variables, Classes, Functions and Modules.

• Write Modular Code.

• Follow security best practices while writing smart contracts, such as input validation,

error handling, and secure storage of sensitive information.

• The code is thoroughly tested to ensure that it works as expected and meets the

requirements.

4.3 Project Scheduling using GANTT chart

Fig.4.3.1 Gantt Chart

15
4.4 Testing Techniques and Test Plans

We have prepared these testing techniques and test plans:

• Functional Testing: Functional Testing plays an important role in Blockchain Testing as

it helps in evaluating business requirements, processes, and effectiveness of use cases.

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

verifying that the appropriate amount is transferred to their designated wallet.

2. Testing the ability for project creators to withdraw funds from the platform and

verifying that the appropriate amount is transferred to their designated wallet.

3. Blockchain has been tested by adding blocks and then also verifying whether our

blockchain is valid or not.

• Integration Testing: Blockchain application work in multiple environments. So, it is

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

and donate to campaign, after it got integrated with whole project.

• Performance Testing: Performance refers to the process of evaluating the system's

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

optimize the platform to deliver the best user experience.

• Node Testing: All diverse nodes on the Network has been tested independently to ensure

smooth cooperation.

16
5 Results and Discussions

5.1 User Interface Representation

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

other campaigns are created.

Fig.5.1.1 Create Campaign


After creating campaign, it can be viewed on user interface. Anyone can contribute to the running

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

amount from any campaign.

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.

Fig.5.1.3 Withdraw Request

18
5.2 Brief Description of various modules of the System

• Create Blockchain: Returning a block which is the having all information about it.

• get previous block: It will return hash of previous block.

• hash: Return sha256 hash of encoded block.

• is_chain_valid: It will return True if the chain is valid else False.

• connect_wallet: We have made use of a browser extension called MetaMask to connect

the wallet, which can be used to authorize transactions for cryptocurrency.

• 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

supply the data as asked in the forms.

• 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

(in this case, with the MetaMask extension).

• withdraw_amount: The amount specified is withdrawn.

5.3 Snapshots of System

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

campaigns are created.

Fig.5.3.2 Create Campaign

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

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 amount from any campaign.

Fig.5.3.3 Contribute to 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

requested, then the request cannot be approved.

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.

FIG.5.3.5 Requests Approval

22
6 Conclusion and Future Scope

The crowdfunding platform powered by blockchain is a promising project that has the potential

to revolutionize the traditional crowdfunding industry by increasing transparency, security, and

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

reducing transaction costs.

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

highereducation. International Journal of Information and Education Technology, 10:84–89, 01

2020

[2] Sura I. Mohammed Ali, Haitham Farouk, and Hussien Sharaf. A blockchain-based models for

student information systems. Egyptian Informatics Journal, 2021

[3] Gemini. (n.d.). Blockchain Crowdfunding & Blockchain Startups. Gemini Cryptopedia.

Retrieved from https://www.gemini.com/cryptopedia/blockchain-crowdfunding blockchain

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

[6] Loom Network. (n.d.). CryptoZombies. Retrieved from https://cryptozombies.io/

[7] MetaMask. (n.d.). MetaMask Ethereum Wallet. Retrieved from https://metamask.io/.

24

You might also like