You are on page 1of 68

A PROJECT REPORT ON

BLOCKCHAIN BASED SOLUTION FOR VERIFICATION OF


EDUCATIONAL CERTIFICATES
Major project submitted in partial fulfilment of the requirements for the
award of the degree of

BACHELOR OF TECHNOLOGY
IN
INFORMATION TECHNOLOGY
(2019 - 2023)

BY

Devangam Kotha Saketh 19241A12D6


Kamani Raghavendra Rao 19241A12E6
Surabi Anirudh 19241A12C1
Rohith Kumar 20245A1216

Under the Esteemed guidance of


Dr. Prasanna Lakshmi Kompalli
Professor and Dean Academics

DEPARTMENT OF INFORMATION TECHNOLOGY


GOKARAJU RANGARAJU INSTITUTE OF ENGINEERING AND TECHNOLOGY
(AUTONOMOUS)
HYDERABAD

1
CERTIFICATE

This is to certify that it is a bonafide record of Major Project work entitled “Blockchain based solution
for verification of educational certificates” done by D.K.Saketh (19241A12D6), K Raghavendra Rao
(19241A12E6), Surabi Anirudh (19241A12C1), Rohith Kumar (20245A1216) students of B.Tech(IT)
in the Department of Information Technology, Gokaraju Rangaraju Institute of Engineering and
Technology during the period 2019 - 2023 in the partial fulfilment of the requirements for the award of
degree of BACHELOR OF TECHNOLOGY IN INFORMATION TECHNOLOGY from GRIET,
Hyderabad.

Dr. K. Prasanna Lakshmi Dr.N.V Ganapathi Raju


(Internal Project Guide) (Head of the Department)

(Project External)

2
ACKNOWLEDGEMENT

We take immense pleasure in expressing gratitude to our Internal guide Dr. Prasanna Lakshmi Kompalli,
Professor and Dean Academics, Information Technology, GRIET. We express our sincere thanks for her
encouragement, suggestions and support, which provided the impetus and paved the way for the successful
completion of the project work.
We wish to express our gratitude to Dr. N. V. Ganapathi Raju, Head of the Department and our Project
Co-coordinators Mr. G. Vijender Reddy Associate Professor and L. Sukanya Assistant Professor G.
Prashanthi Assistant Professor, for their constant support during the project.
We express our sincere thanks to Dr. Jandhyala N Murthy, Director, GRIET, and Dr. J. Praveen,
Principal, GRIET, for providing us the conductive environment for carrying through our academic
schedules and project with ease. We also take this opportunity to convey our sincere thanks to the teaching
and non-teaching staff of GRIET College, Hyderabad.

Email: sakethsaketh72@gmail.com Email: kamaniraghavendra@gmail.com


Contact No: 6302016752 Contact : 8106342791
Address: Nizampet, Hyderabad. Address : Kukatpally, Hyderabad.

Email: surabianirudh1@gmail.com Email: rohitbhai14496@gmail.com


Contact No: 8142616754 Contact No: 7801051575
Address: Tarnaka, Hyderabad Address: Quthbullapur, Hyderabad

3
DECLARATION

This is to certify that the project entitled “Blockchain based solution for verification of educational
certificates” is a bonafide work done by us in partial fulfilment of the requirements for the award of
the degree BACHELOR OF TECHNOLOGY IN INFORMATION TECHNOLOGY from
Gokaraju Rangaraju Institute of Engineering and Technology, Hyderabad.

We also declare that this project is a result of our own effort and has not been copied or imitated from
any source. Citations from any websites, books and paper publications are mentioned in the
Bibliography.

This work was not submitted earlier at any other University or Institute for the award of any degree.

Devangam Kotha Saketh 19241A12D6 Kamani

Raghavendra Rao 19241A12E6 Surabi

Anirudh 19241A12C1

Rohith Kumar 20245A1216

4
TABLE OF CONTENTS

Serial no Name Page


no
Certificates ii
Contents vi
Abstract 1
1 INTRODUCTION 2
1.1 Introduction to project 2
2 REQUIREMENT ENGINEERING 6
2.1 Hardware Requirements 6
2.2 Software Requirements 6
3 LITERATURE SURVEY 7
4 TECHNOLOGY 10
5 DESIGN REQUIREMENT ENGINEERING 14
5.1 Use-Case Diagram 17
5.2 Activity Diagram 21
5.3 Class Diagram 18
6 IMPLEMENTATION 24
6.1 Modules used 26
6.2 Sample Code 27
7 SOFTWARE TESTING 35
7.1 Unit Testing 35
7.2 Integration Testing 37
7.3 Acceptance Testing 38
8 RESULTS 39
9 CONCLUSION AND FUTURE 49
ENHANCEMENTS
10 BIBLIOGRAPHY 50

4
\

11. LIST OF FIGURES


S No Figure Name Page no
1 Use Case Diagram 17
2 Activity Diagram 21
3 Class Diagram 18

4 Collaboration Diagram 23
5 Modules involved 26
6 User Module 26
7 System Module 27

5
ABSTRAC
T

The proposed decentralized certificate verification system that uses blockchain


technology can potentially solve the issues mentioned above. By using a
decentralized system, the data would not be stored on a single server that could be
hacked or lost if the system crashes. Instead, the data would be stored on multiple
nodes in the network, making it more secure and less vulnerable to attacks. In addition,
the use of blockchain technology provides anti-tampering mechanisms, making it
difficult for anyone to forge or manipulate certificates. Each certificate would be
cryptographically connected to the previous certificate in the chain, creating a tamper-
proof system that is difficult to hack. Moreover, the proposed system would provide
faster certificate verification and issuance. Since the data would be stored on multiple
nodes, verification could be done quickly without the need for human intervention. This
would reduce the time and resources required for verification and issuance, making the
process more efficient and cost-effective. Overall, the proposed decentralized certificate
verification system that uses blockchain technology can potentially solve the issues
associated with the current certificate issuance, verification, and validation process. By
using a decentralized system with anti-tampering mechanisms, the system can provide a
more secure and efficient way of verifying and issuing certificates, reducing the time
and cost required for the process.

1
1. INTRODUCTION

1.1 PROBLEM DEFINITION

These essential credentials play a vital role in an individual’s life, and a secure
and efficient process for issuing and sharing them is essential. The use of
blockchain technology can provide a secure and tamper proof solution for
these critical documents, ensuring that they remain trustworthy and valuable
throughout an individual’s lifetime.

1.2 OBJECTIVE OF PROJECT

Educational institutions use a variety of techniques to increase the security of


the issued credentials, including assigning a unique identification number,
placing a hologram that is uniquely distinguishable, attaching a passport-sized
photograph of the student, printing the student's name, date of birth, place of
birth, parents' names, registration/enrollment number, etc. Additionally, during
the hiring process, businesses must confirm the credentials they get directly
from the applicants. In fact, organizations frequently get in touch with the
parent institution to confirm the credentials applicants submitted. Such a
procedure is expensive, time-consuming, and unpleasant. Several recent
studies have discussed the advantages and difficulties of applying blockchain
technology to education. But a functioning student-credential prototype still
has to be created.

Now we know what the problem is and one solution for this problem is using
blockchain. Blockchain, in simple words it is a list of records, called blocks
which are linked with each other using cryptography. Cryptography, it is
basically a collection of techniques using which a secure communication can
be made between two parties. I believe by now everyone is aware of Bitcoin
(BTC)
2
which is a cryptocurrency (digital currency) which came to all-time rise when a

3
single. BTC would have a value of $60,000+(April 2021). It can be used to
buy products and services but holds all the sales record in an online ledger
with a strong cryptography to secure all the transactions.

Just like Bitcoin, there is another cryptocurrency called Ethereum (ETH)


which was made by a programmer named Vitalik Buterin in 2015. It is the
second-largest cryptocurrency after Bitcoin. Difference between Ethereum and
Bitcoin is that Ethereum is not just a crypto currency, it is a ledger technology
which companies use to build new programs. Although both operate on
blockchain technology, however Ethereum is far more robust and greater for
innovation. These programs are made using “Smart Contracts” which is a self-
executing contract made with the terms set by a buyer and seller and wrote it
in a code. That code and the agreements are all distributed in a decentralized
blockchain network. It means that blockchain does not store any information
in a central location. Instead, it is copied and has been spread across a whole
network of computers and whenever a new block adds in the blockchain, then
each computer which holds information updates its blockchain to show that
change. Smart contracts are developed using Ethereum’s programming
language called solidity. It is an object-oriented language for implementing
smart contracts.

We can create a decentralised application using blockchain technology that


maintains all the data safe and unaltered. To make implementation and testing
easier, the data in this application is saved in text format. However, once the
transaction is complete, the data is converted into hash values and stored in the
block throughout the entire network. This offers security since many copies of
the data are dispersed throughout the peer network, making it impossible for a
single piece of alteration in a block to affect all the data throughout the chain.
Consequently, the data's integrity is preserved. Using the Ethereum Test Net,
the proposed solution is put into practise and evaluated. Every time data is
4
about to be deposited in a block of an Ethereum blockchain, a portion of the
admin account's gas value is decreased and distributed throughout the network
as a reward for the miners whose systems serve as the data.

Spending some ether from their accounts fills this petrol tank. In order to
prevent infinite loops in the coding, the Ethereum network restricts the amount
of gas that is available.

Using this motivation, an idea of making such application for sharing student
credentials which is decentralized and secure, fast, and validate each credential
in a form of transaction in Ethereum blockchain is proposed. All the stake
holders will be able to communicate with each other securely in a manner of
transaction in the blockchain network. For this DApp (Decentralized
Application) we have stakeholders in the form of Schools, Students who will
be registered in a school they are enrolled in, faculty members who will also
be registered with a school they are employed in, Recruiters who can see the
list of schools in the network and the students in each of the school. However,
we don’t want just any recruiter to be able to access a student’s information, so
we can add in the agreement a access request requirement which a recruiter
sends to a student asking if they can access their data and once allowed then
only its accessible to that particular recruiter.

Blockchain Features

Blockchain technology has several important features that make it useful for a
wide range of applications beyond just cryptocurrencies. Here's what they mean:
Immutability: Once data is recorded on the blockchain, it cannot be changed or
deleted. This means that the information stored on the blockchain is permanent and
cannot be altered, providing a high level of security and trustworthiness.

1) Decentralized: The blockchain network is not controlled by any single entity,


5
such as a government or company. Instead, it is run by a decentralized network
of users, making it more secure and less vulnerable to attacks.
Improved Security: The decentralized nature of the blockchain makes it more secure
than traditional centralized systems because there is no single point of failure.
Additionally, encryption technology is used to further enhance security.
1) Distributed Ledgers: The blockchain maintains a public ledger of transactions
that is distributed across the network of users. This provides transparency and
accountability because all users can see the details of every transaction.
2) Consensus: The blockchain network uses a consensus mechanism to ensure that
all transactions are valid and accurate. This mechanism involves a group of users
on the network agreeing on the accuracy of transactions, providing a high level of
trust and security.
3) Faster Settlement: Transactions on the blockchain can be settled more quickly
than traditional banking systems, which can take several days. This is because
blockchain transactions are processed by a decentralized network of users,
rather than a single central authority.

6
7
1. REQUIREMENT ENGINEERING

2.1 Hardware Requirements


∙ Processor – i5 and above (64-bit OS).
∙ Memory – 8GB RAM (Higher specs are recommended for high
performance)
∙ Input devices – Keyboard, Mouse

2.2 Software Requirements


● Windows/Mac
● Vscode
● Node.js
● Python3
● Required python libraries

8
2. LITERATURE SURVEY

Research has been in progress to identify the fake documents and certificates,
both paper and digital form. In this digital era, there is no proper method to
curtail fake degrees by securing the marks memos on a tamperproof platform
and verifying them digitally using unique ID. In this paper, a method is
proposed to store, secure, and verify the credentials of graduates through
blockchain technology.
There have been a few studies on using a blockchain based architecture in
education system which dictates the benefits and challenges of using a
blockchain based credential issuing/sharing system which could be easily
accessible, verifiable, faster, and cost effective

[1] INTERNATIONAL JOURNAL OF SCIENTIFIC & TECHNOLOGY


RESEARCH VOLUME 9, ISSUE 03, MARCH 2020 ISSN 2277-8616 82
IJSTR©2020 www.ijstr.org Educational Certificate Verification System Using
Blockchain Dinesh Kumar K, Senthil P, Manoj Kumar D.S. When people
apply for jobs, the employer needs to check that the certificates and documents
they provide are genuine. This can take a lot of time because it involves
contacting universities and other institutions to verify the information. To
make this process faster and more efficient, Blockchain technology can be
used. By creating a shared database that stores information about certificates
and documents, employers can easily access and verify the information they
need. The use of cryptography ensures that the information is secure and
cannot be tampered with. This means that employers can trust the information
they find on the database. Overall, using Blockchain technology makes it
easier and faster for employers to verify certificates and documents, which
speeds up the hiring process.
[2] Efficient Certificate Management in Blockchain based Internet of Vehicles Ei
9
Mon Cho 1, Maharage Nisansala Sevwandi Perera22020 20th IEEE/ACM
International Symposium on Cluster, Cloud and Internet Computing
(CCGRID)

10
As the Online of Vehicle (IoV) research trend continues, the privacy and security
of each internet automobile has become a hot topic. This study aims to reduce the
cost and improve the security of certifying documents, such as graduation
certificates. The focus of this study is on a specific area called the Vehicle Public
Key Infrastructure (VPKI). The VPKI is responsible for issuing and managing
certificates for vehicles, such as cars, trucks, and other modes of transportation.
The proposed solution uses Blockchain technology to make the process of
issuing and managing certificates more secure and cost-effective. The solution
uses activation codes that are tied to the time a vehicle is considered "non-
revoked" to validate the certificate. This means that if a vehicle is no longer in
use, its certificate can be removed from the system to save costs.
[3] Design and Implementation of Work Training Certificate Verification Based
On Public Blockchain Platform 1st Irawan Afrianto Informatics Engineering
Department, 2nd Yayan Heryanto Informatics Engineering Department
The purpose of this research is to develop a secure and efficient system using
blockchain technology for storing job training certificates. By using public
blockchain, the certificates are protected from being forged or altered. Smart
contracts are utilized to create data blocks that are added to the Ethereum
blockchain network. The certificate files are stored in a distributed environment
called Inter Planetary File System (IPFS), which provides secure and quick
access. The research showed that certificate data can be safely stored on
Ethereum public blockchain and supporting files on IPFS.
[4] Efficient Distributed Admission and Revocation using Blockchain for
Cooperative ITS Noureddine Lasla∗, Mohamed Younis§, Wassim Znaidi∗ and
Dhafer Ben Arbia∗ ∗Qatar Mobility Innovations Center (QMIC), QSTP, Doha,
Qatar.
The Cooperative Intelligent Transportation System (CITS) is an innovative
technology that enables vehicles to communicate with each other, enhancing
road safety. However, ensuring secure communication remains a significant
challenge in the research community. The existing solutions for inter-vehicle
11
communication security mostly rely on digital certificates' authentication.
However, the computation required for such verification is highly expensive and
imposes significant overhead on vehicles, and the validation must be performed
within a specific time frame. Moreover, depending on a central node for
certificate issuance and revocation may create a single point of failure, risking
motorist safety To address these challenges, this study proposes using blockchain
technology to maintain distributed and immutable records of each vehicle's
certificate, whether it is valid or revoked. This approach replaces certificate
verification with a lightweight blockchain-based authentication solution.
Additionally, the study proposes a fully distributed method for vehicle admission
and revocation. The findings demonstrate that this technique can reduce
computational overhead and improve performance, making it a promising
solution for inter-vehicle communication security.
[5] Cerberus: A Blockchain-Based Accreditation and Degree Verification
System Aamna Tariq∗ , Hina Binte Haq, Syed Taha Ali‡ School of Electrical
Engineering and Computer Sciences (SEECS), National University of Sciences
and Technology (NUST), Islamabad, Pakistan.
Fake certificates are a big problem and the usual way of checking them takes a
lot of time and is expensive. This study proposes a solution that uses blockchain
technology to verify identity, which is faster and more efficient. It also has a
system to revoke certificates if they are fake. The system is easy to use and does
not require special skills. A prototype has been created and it has features like
data privacy, verifying transcripts, and sharing data only with those who need to
see it.

12
.

13
3. TECHNOLOGY
Blockchai
n:

Blockchain is a distributed ledger technology that allows for the creation of


decentralized and secure systems for sharing data. Each block in a blockchain
contains a set of transactions, which can be anything from cryptocurrency
transactions to digital certificates or bill of lading. These transactions need to be
communicated to all the nodes in the blockchain network so that they can be
validated and added to the ledger.

Miners validate transactions and group them together in a new block, which
is then added to the distributed ledger. Each block is cryptographically sealed,
making it tamper-proof and ensuring the security of the system. The database
used in blockchain is distributed and records the various transactions that occur
within the system.

Each block carries the hash value of its previous counterpart, which creates a
link between blocks and forms a blockchain. The hash value ensures that any
changes made to the previous block will be reflected in the hash value of the
current block. This makes it nearly impossible to tamper with any previous

14
transactions, as doing so would require changing the hash values of every
subsequent block.

15
The fundamental principle of blockchain is to have a distributed ledger that is
used to keep track of individual transactions. These transactions are validated
by different nodes within the network and are finalized using consensus
algorithms, such as permissionless or permissioned consensus algorithms. In a
permissionless system, anyone can join the network and participate in the
validation process. In a permissioned system, only authorized participants can
validate transactions.

Ethereum
Ethereum is a technology that uses a special type of database called a
blockchain to store and manage information. It allows people to create and run
applications that work without a third party. This technology also has its own
digital currency called ether, and it can be used to create smart contracts, which
are computer programs that automatically execute the terms of a contract.

Ethereum Virtual Machine (EVM)


Ethereum is a decentralized blockchain platform that enables developers to
create and run decentralized applications (DApps) and smart contracts. Unlike
traditional blockchain platforms like Bitcoin, Ethereum provides a more
flexible and programmable platform for developers to build their applications
on. At its core, Ethereum is built on a decentralized network of computers that
are all running the Ethereum software. This network is maintained by miners
who validate transactions and add them to the blockchain. The Ethereum
blockchain records all transactions that occur on the network, including
cryptocurrency transactions and smart contract executions.

Solidity
Solidity is a programming language used to create smart contracts on the
Ethereum blockchain. Smart contracts are like digital agreements that
automatically enforce rules and handle transactions. Solidity is similar to other
16
programming languages like C++, Python, and JavaScript, and allows
developers to create complex contracts with advanced features. With Solidity,
you can create

17
contracts for various purposes like voting, crowdfunding, auctions, and digital
wallets. It's important to use the latest version of Solidity when creating
contracts because it has new features and bug fixes.

PYTHON
Python could be a backend programming dialect that’s extraordinary for
apprentices. Python is comparative in many ways to Ruby but is less wordy
than other programming dialects - a small less wordy. Python is congenial.
Indeed, if you haven’t taken a CS lesson, you'll still compose a valuable
apparatus in Python. It’s high-level, so you don’t have to bargain with the
lower-level angles of programming such as memory management. Python can
be utilized for scripting, web scratching, and making information sets. It’s
popular in the scientific community for logical computing; there are libraries
that make it easy to share academic code ventures in Python. Python could be
a web programming dialect, so it interfaces with the web. It knows how to get
and send web demands and conversation to databases. Python is said to be
“loosely typed”. This category of programming dialects doesn’t require you to
state the type of esteem a work returns after you characterize the work or the
sort of variable you recently created.

Smart Contract
Private Smart Contract
Permissioned blockchains have become increasingly popular in the industry as
they offer an efficient way to conduct business transactions within a closed
network of stakeholders. This is achieved by using a private blockchain with a
limited number of participants, unlike a public blockchain, where the cost of
validation can be significantly high due to the energy spent on the consensus
process for proof of work. Private blockchains can be efficient when the
number of nodes is small, and the transactions are faster.

18
The consensus process used in public and private blockchains differ significantly.

19
Proof of work and proof of stake are the consensus algorithms used in public
blockchain, while private blockchain uses other consensus algorithms. IBM
has developed a range of blockchain development environments for business
services, such as Hyperledger fabrics, Hyperledger composer, Hyperledger
Indy, and Hyperledger Sided. The members of the Hyperledger Fabric are
permitted blockchain networks that participate in the development of the
Hyperledger Fabric. The member organizations in the network are responsible
for assigning peers to network participants. Additionally, each peer in the
network is certified by a certificate authority.

Public smart contract


In a permissionless blockchain, anyone can participate and deploy smart
contracts without any restrictions. However, to prevent abuse, users need to
pay a small fee to create and run smart contracts. In blockchain applications
like Bitcoin, these smart contracts are created using something called "bitcoin
scripts", which define the terms and conditions of the contract.

20
4. DESIGN REQUIREMENT ENGINEERING

Concept of UML :

The Unified Modelling Language (UML) is the standard demonstrating dialect


for computer program and frameworks improvement. In the framework plan,
you show for one vital reason: to oversee complexity. Displaying makes a
difference when you see the timberland for the trees, permitting you to centre
on, capture, report, and communicate the critical perspectives of your system's
plan.

UML DIAGRAMS:

DATA FLOW DIAGRAM:

1) School: First the School administrator registers on the website by signing up. So,
when he logs in, the website checks whether the details are correct and allows him
to access it. Then the school administrator Enrolls the students. Then he uploads
the Certificate credentials. He can also view these certificates. The process is
ended.
2) Company: First the Company administrator registers on the website by signing up.
He does this with the help of the school administrator. When he logs in he can send
the request access to the student and also view all these access requests.
3) Student: The student logs in with the help of id that is given by the school
administrator while enrolling the student. He logs in and can check the certificates
he received. He can also check the access requests from companies. He can
approve or disapprove them, So, these are all the activities that a student can do in
the website.

21
School:

Yes NO

Company:

Yes NO

22
Student:

Yes NO

23
Use case diagram:

There are four actors in this use case diagram. They are school, Company,
Student and Database. The school will enroll students, Upload certificate
credentials, View students. The Company will send access requests, access
certificates. The student will access his/her certificates, View Access requests.

24
Class diagram:

The class diagram is a fundamental tool used in software engineering to


represent the static structure of a software system. It captures the key concepts
and relationships between them in a graphical format, providing a clear and
concise representation of the system's structure. The relationships or
associations between classes can be either "is-a" or "has-a" relationships. An "is-
a" relationship represents a generalization/specialization hierarchy between
classes, where a subclass inherits properties and methods from its parent class.
A "has-a" relationship represents a composition or aggregation relationship
between classes, where one class contains another as a component.

25
Object diagram:

An object diagram is a type of diagram that shows the state of a software system at a
particular moment in time. It represents the objects in the system as they exist and
interact with each other at that moment. In software development, a class is like a
blueprint for creating objects. An object, on the other hand, is an instance or a copy
of that blueprint. So, if a class is a recipe for making a cake, an object would be an
actual cake made using that recipe.

26
State diagram:

First the user opens the application. Then he signs up on the website. After signing
up he logs on to the website. If the user is a School. He enrolls the students, uploads
the certificate credentials, and views the students. If the user is a company, he sends
access requests and access certificates of various students. If the user is a student. He
accesses his/her certificates and views access requests sent by various companies.

27
Activity diagram:

The activity diagram is a type of diagram used in software engineering to describe


the flow of activities and actions in a system. It captures the sequence of
activities and

28
decisions that occur in the system to achieve a specific goal.

An activity is a task or action that takes place in the system, and it can be represented by
a rounded rectangle in the diagram. An action is a specific task that is performed during
an activity, and it can be represented by a rectangle in the diagram.

Sequence diagram:

In a sequence diagram, the different objects in the system are represented as


boxes or lifelines, which run vertically down the diagram. The interactions
between the objects are represented by horizontal arrows, which are also called
"messages". These arrows show the flow of communication between the objects,
indicating which object is sending the message and which object is receiving it.

29
Collaboration diagram:

A collaboration diagram is a type of diagram used in software engineering to


show the interactions between objects in a system. The interactions between
objects are represented by numbered interactions, which help to trace the
sequence of the interactions. Each interaction is labeled with a number, which
represents the order in which the interactions occur. The numbers make it easier
to understand the flow of interactions between the objects.

30
5. IMPLEMENTATION

6.1. MODULES:
The proposed architecture for the secure sharing of students' credentials is
developed using several technologies including Ethereum, MetaMask, Web3.js,
Next.js, and IPFS. The DApp is designed for three different types of stakeholders,
namely school, student, and company, each having a distinct set of functionalities
and restrictions. The DApp utilizes different dashboards for each stakeholder to
provide these functionalities and restrictions.

The school dashboard allows for the addition of new students to the list of
registered students as well as the uploading of login information for registered
students. An IPFS hash value is returned when a credential is uploaded. This hash
value is sent to Ethereum along with the credential's metadata, making sure that
only the intended student can see it. There are three options available on the
student dashboard: viewing the uploaded credentials, viewing the access requests
submitted by businesses, and approving credentials after reviewing access
requests. The company dashboard enables sending access requests, viewing
credentials after students grant access, and viewing the list of schools and students
enrolled under a chosen school.

The DApp includes a front-end that runs on a decentralized platform, Ethereum.


The design incorporates seven different smart contracts to manage different
functionalities, including registration of users, sign-up and login of users,
enrollment of students, uploading of credentials, retrieval and viewing of
credentials, searching student information, sending access requests, and granting
access rights.

In summary, the proposed architecture utilizes blockchain technology,


decentralized storage, and smart contracts to create a secure and reliable system for
31
sharing students' credentials. The DApp is designed to cater to the needs of
different stakeholders, and each stakeholder has access to only the information that
is relevant to them.

32
1) School Signup: using this module all schools can be signed up with the
application and get username and password and all these details will be stored at
Blockchain Ethereum server. Schools can login to application and then can
ENROLL new students and can upload and access their certificates

2) Company Signup: using this module company can signup with the application
and then login and then send access certificate request to students and after
granting permissions company can access student certificates

3) Student Login: by using student ID student can login to application and then can
grant permission to requested companies and can access and view own details and
certificates.

6.2. Algorithm:

Blockchain Hash Function

A hash function is a mathematical algorithm that takes an input string of any length
and transforms it into a fixed-length output, which is called a hash. The fixed length
output can vary depending on the hash function used. Hash functions are widely used
in cryptography or digital signatures, data integrity checks, and authentication.

33
In contrast to encryption algorithms, where you can decrypt the message back to
its original form using a key, with a hash function, once you generate a hash, you
cannot reverse it back to the original message. This makes it an irreversible
process.

In the context of cryptocurrencies like Bitcoin, the blockchain uses cryptographic


hash functions in its consensus mechanism. The transactions are taken as an input
and run through a hashing algorithm, which produces a fixed-length output. This
output serves as a digital fingerprint or hash of the transaction data, and it is used
to uniquely identify each transaction in the blockchain. The properties of hash
functions, such as uniqueness and one-way computation, make them ideal for
ensuring the security and integrity of the blockchain.

6.3 Sample code

34
35
36
37
38
39
40
41
42
6. SOFTWARE TESTING

Testing is a way of finding mistakes or problems in something, like software or a


product. It helps make sure that the thing works as expected and doesn't have any major
problems that could cause issues for users. There are different types of tests that focus
on different aspects of the thing being tested. By doing these tests, we can make sure
that the thing we're testing meets the requirements and works correctly.

TYPES OF TESTS

7.1. Unit Testing


Unit testing is a way of testing individual parts of a software program to make sure
that they work correctly. It involves testing each component of the program
separately to make sure that it produces the right output for a given input. This
type of testing is done after a single part of the program has been completed, but
before all the parts are put together. Unit testing is important because it helps to
catch mistakes early on, before they can affect other parts of the program. By
testing each part separately, we can make sure that the program works as it's
supposed to, and that all the different parts work together correctly.

7.2. Integration testing


Integration testing is a way of testing how different parts of a software program
work together. It involves testing the program to make sure that all the different
parts work together correctly. This type of testing is done after each individual part
of the program has been tested separately. Integration testing is important because
it helps to catch mistakes that can happen when different parts of the program are
combined. By testing how the program works, we can make sure that it runs
smoothly and that all the different parts work together correctly. Integration tests
help to ensure that the program is reliable and works as expected.

43
Functional test
Functional tests are designed to check if the software functions as expected
according to the requirements, system documentation, and user manuals. These
tests check if the software can handle valid inputs and reject invalid inputs,
perform the required functions, produce the expected outputs, and work well
with interfacing systems or procedures. To prepare for functional tests, testers
need to identify the business process flows, data fields, and predefined processes
to be tested. They also need to check if the current tests are effective and if
additional tests are needed. Overall, functional testing helps ensure that the
software meets the expected business and technical requirements.

System Test
System testing is the process of testing the entire software system to make sure
it meets all the requirements and works as expected. This type of testing is used
to ensure that the final product is fully functional and meets the needs of its
users. It focuses on how different parts of the system work together, and tests
are designed to make sure that all components are integrated properly, and that
the software behaves as expected in various scenarios. An example of system
testing could be testing the software configuration to ensure that it works as
expected, and that all parts of the system are linked and integrated correctly.

White Box Testing


White box testing is a testing technique in which the tester has knowledge of the
internal workings, structure, and code of the software being tested. This knowledge
allows the tester to design test cases that target specific areas of the code and evaluate
the functionality of those areas. White box testing is particularly useful for
identifying defects in the code logic and verifying that the code meets the expected
standards. In this type of testing, the tester has access to the source code and can
review the code to understand how it works. The tester can also use code analysis
tools to identify potential problems and to verify that the code adheres to coding

44
standards.

45
Black Box Testing
Black box testing is a way of testing software where the tester doesn't know
anything about how the software was made or how it works inside. The tester
uses a list of instructions or requirements to test the software, like a recipe to
make a cake. The tester checks if the software does what it is supposed to do,
without worrying about how it was made or what is inside it.

Unit Testing
Unit testing is a way of testing individual parts, or "units," of a software
program to make sure they work correctly. This testing is usually done by the
same person who wrote the code. Field testing is testing the software in real-
world situations. It's done by people who are not involved in writing the code.
The objectives of testing are to make sure that all the data that's entered into the
program is handled correctly, all the links in the program work as they should,
and there are no delays or errors in the program's responses. The features that
will be tested are whether data is entered correctly, whether there are any
duplicates, and whether all the links take the user to the right place.

The test strategy for this particular software includes manual field testing and
detailed functional testing. The objectives of the tests are to ensure that all field
entries are functioning properly, pages are activated correctly from the identified
links, and that the entry screen, messages, and responses are not delayed.
To achieve these objectives, the following features will be tested:

1) Verification of the format of the entries to ensure they are correct


2) Prevention of duplicate entries to maintain data integrity
3) Checking of links to ensure that they are taking the user to the correct pages

These tests will help to identify any issues with the software early in the
development process, allowing developers to address them before the software
46
is

47
released to the

public. By isolating the individual components and testing them thoroughly, unit
testing can improve the overall quality and reliability of the software
application.

Integration Testing
Software integration testing is a type of testing that checks if different parts of a
software system work well together. It's like putting together puzzle pieces to
see if they fit and work as a whole. The goal is to find any issues that may arise
from different parts of the system interacting with each other.

48
7. RESULTS

This figure shows about the webpage of Secure Sharing of Student’s Credentials
49
This figure shows about details about the Secure Sharing of Student’s Credentials .The
Home page and Student Login page is visible. We enter the details of School and
Students here.

50
Here signing up of Students’ and after signing up we can see that “School Login
51
Successful”.

Here we enroll the students and details of the students filled here. The students details
such as Students’ name and id etc can be filled. The Certificates also can be upload
52
using this page. If anyone wants to update then they can update.

53
Students can view the details using this.

54
55
Here company signup using this web url.

56
Company can see the details of Students. If any details found relavant to them
then they can ask request for viewing the students credentials.

57
Here Students can view the details of request to them.

58
59
Here after giving access to the Company, Company can able to see their
credentials.

After successful access company can decide that whether the student can get
offer or not.

60
8. CONCLUSION AND FUTURE ENHANCEMENTS

The paper proposes a way to securely share students' academic records using a
blockchain system. They created a digital application to test the system's performance,
including costs and speed. The authors plan to improve the system in the future by
adding privacy features in addition to security measures.

61
9. BIBLIOGRAPHY

[1] X. Tao, “The application and challenges of blockchain technology in


educational practice,” Modern Educational Technology, vol. 1, p. 019, 2017.
[2] T. Nguyen, “Gradubique: An academic transcript database using
blockchain architecture,” 2018.
[3] J. Hope, “Give students ownership of credentials with blockchain
technology,” The Successful Registrar, vol. 19, no. 1, pp. 1–7, 2019.
[4] M. Turkanovic, M. H ´ olbl, K. Ko ¨ siˇ c, M. Heri ˇ cko, and A. Kami ˇ sali
ˇ c,´ “EduCTX: A blockchain-based higher education credit platform,” IEEE
Access, vol. 6, pp. 5112–5127, 2018.
[5] J. Rooksby and K. Dimitrov, “Trustless education? A blockchain system
for university grades,” in New Value Transactions: Understanding and
Designing for Distributed Autonomous Organisations, Workshop at DIS, 2017.
[6] M. Li et al. CrowdBC: A Blockchain-Based Decentralized Framework for
Crowdsourcing. IEEE Trans Parall Distrib Syst, 30(6), 1251-1266 (2019)
https:// doi.org/10.1109/TPDS.2018.2881735.
[7] Yi, H. Securing e-voting based on blockchain in P2P network. J Wireless
Com Network 2019, 137 (2019). https://doi.org/10.1186/s13638-019-1473-6
[8]. Chen, Y., Ding, S., Xu, Z. et al. Blockchain-Based Medical Records Secure
Storage and Medical Service Framework. J Med Syst, 43, 5 (2019). https://doi.
org/10.1007/s10916-018-1121-4
[9]. A. Dorri, M. Steger, S. S. Kanhere and R. Jurdak. BlockChain: A
Distributed Solution to Automotive Security and Privacy. IEEE
Communications Magazine, 55(12) :119-125 (2017).
https://doi.org/10.1109/MCOM.2017.1700879
[10]. X. Yue, H. Wang, D. Jin, M. Li, W. Jiang, Healthcare data gateways:
found healthcare intelligence on blockchain with novel privacy risk control. J.
Med. Syst. 40, 218 (2016). https://doi.org/10.1007/s10916-016-0574-6
[11]. D. Kraft, Difficulty control for blockchain-based consensus systems.
Peer-toPeer Netw. Appl.. https://doi.org/10.1007/s12083-015-0347-x
[12] T. Aste, P. Tasca, T. Di Matteo. Blockchain Technologies: The
Foreseeable Impact on Society and Industry. Computer, 50(9), 18-28 (2017).
https://doi. org/10.1109/MC.2017.3571064
[13] J. Ning, Z. Cao, X. Dong, K. Liang, L. Wei, K.-K.R. Choo,
CryptCloud$^+$+: secure and expressive data access control for cloud storage.
IEEE Trans. Serv
62

You might also like