1
Table of contents
[Link] CONTENT PAGE NO
1 INTRODUCTION 3-3
2 OBJECTIVES 4-4
3 SOFTWARE 5-5
REQUIREMENTS
4 SCOPE OF PROJECT 6-6
5 APPROACH USED 7-7
6 FLOWCHART OF HTML 8-12
CODE USED
7 FLOWCHART OF CSS 13-15
CODE
8 FLOWCHART OF 16-19
BLOCHAIN
9 OUTPUT 20-23
10 TEST CASE 24-25
11 CONCLUSION 26-26
12 REFERENCES 27-27
2
Introduction
A land registry system using blockchain technology represents a significant
advancement in the management and documentation of land ownership records.
Traditional land registry systems are often plagued by inefficiencies, lack of
transparency, and susceptibility to fraud and corruption. Blockchain, with its
decentralized and immutable ledger, offers a robust solution to these challenges.
By leveraging blockchain, land registry systems can ensure that every transaction
related to land ownership is securely recorded, easily traceable, and tamper-proof.
This ensures greater trust and reliability in property records, reducing disputes and
enhancing overall governance.
The implementation of blockchain in land registry systems involves the
digitization of all land records and their subsequent entry into a blockchain ledger.
Each record is linked to a unique digital signature, ensuring authenticity and
preventing unauthorized alterations. Smart contracts, another feature of blockchain
technology, can automate and enforce the terms of land transactions, such as
transfers of ownership and payments. This not only streamlines the process but
also eliminates the need for intermediaries, reducing costs and increasing
efficiency. Moreover, the use of blockchain can facilitate easier access to historical
data, providing a transparent view of land ownership and transaction history.
Blockchain-based land registry systems also offer enhanced security and
accessibility. The decentralized nature of blockchain means that there is no single
point of failure, protecting the system from cyber-attacks and data breaches.
Furthermore, since blockchain records are distributed across multiple nodes, they
are continuously validated by the network, making them highly resistant to
tampering. For users, this means that land records can be accessed securely from
anywhere in the world, provided they have the necessary permissions. This global
accessibility is particularly beneficial for cross-border property transactions and for
individuals in remote or underdeveloped regions where traditional land registry
infrastructure may be lacking. Overall, the integration of blockchain technology
into land registry systems promises to revolutionize property management by
providing a more secure, transparent, and efficient solution.
3
Objectives
1. Enhanced Security and Transparency:
Utilize blockchain's decentralized and immutable nature to prevent
tampering and fraud, ensuring that all transactions and records are
transparent and secure.
2. Efficiency and Cost Reduction:
Streamline the process of recording, verifying, and transferring land
ownership, reducing the need for intermediaries and minimizing
administrative costs and time delays.
3. Accurate and Up-to-Date Records:
Maintain a real-time, accurate, and universally accessible record of land
ownership and related transactions, reducing disputes and ensuring clarity in
property rights.
4. Improved Accessibility and Inclusivity:
Enable wider access to land registry information, especially for marginalized
or underserved communities, by providing a decentralized and user-friendly
platform for land transactions and ownership verification.
4
Software requirements
OPERATING SYSTEM : Windows
LANGUAGES USED : Python , HTML , CSS , Java script , Solidarity
SOFTWARE : Visual Studio Code, Python 3.12(64 bit)
5
Scope of the Project
The " land registry system " project aims to achieve the following objectives:
1. Comprehensive Land Ownership Records:
Implement a digital registry that includes detailed and immutable records of
all land ownership and transactions, providing a transparent and secure
system accessible to authorized users.
2. Automated Verification and Validation:
Develop smart contracts to automate the verification and validation
processes for land transactions, ensuring compliance with legal requirements
and reducing the need for manual intervention.
3. Integration with Existing Systems:
Ensure compatibility and integration with existing land management and
governmental systems, facilitating a seamless transition and enhancing
interoperability with other public records and databases.
[Link]-Friendly Access and Management:
Create an intuitive and user-friendly interface for stakeholders, including
landowners, government officials, and legal professionals, enabling easy
access, management, and updating of land records and transaction histories.
6
Approach Used
OPERATING SYSTEM : Windows
LANGUAGES USED : Python , HTML , CSS , Java script , Solidarity
SOFTWARE : Visual Studio Code, Python 3.12(64 bit)
7
FLOWCHART OF HTML CODE USED:
Start
User loads page
User interacts
with form fields
Add Property Button Clicked
Read Property ID, Owner,
and Details
Send Data to Server
Receive Response
8
Display
Responessage
Transfer Property Clicked
Read Property ID and New Owner
Send Data to Server
(POST /add_property)
Receive Response
Display Response Message
Transfer Property Button Clicked
Read Property ID and New Owner
9
Send Data to Server
(POST /transfer_property)
Receive Response
Display Response Message
Get Details Button Clicked
Read Property ID
Send Request to Server
10
Receive Property Details
Display Property Details
End
11
Explanation:
Start/End: The flowchart starts and ends here.
User Interacts with Form: This represents the user
interacting with the HTML form elements.
Add Property Button Clicked: When the user clicks the
"Add Property" button, it triggers the addProperty()
function.
Transfer Property Button Clicked: When the user clicks
the "Transfer Property" button, it triggers the
transferProperty() function.
Get Details Button Clicked: When the user clicks the "Get
Details" button, it triggers the getPropertyDetails()
function.
Send Data to Server: Shows the process of sending data to
the server using fetch API with appropriate endpoints
(/add_property, /transfer_property, /get_property).
Receive Response: After sending data, the system waits
for a response from the server.
Display Response Message: Displays the response
message from the server (via alert() in this case).
Receive Property Details: Shows the process of receiving
property details from the server.
Display Property Details: Displays the received property
details in the <pre> element.
12
FLOWCHART OF CSS CODE USED :
Start
body
font-family: Arial,
sans-serif;
background-color: #f4f4f4
margin: 0;
padding: 20px;
.container
max-width: 800px;
margin: auto;
background: #fff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 0 10px
rgba(0, 0, 0, 0.1);
13
h1, h2
color: #333;
.form-group
margin-bottom: 15px;
.form-group label
display: block;
margin-bottom: 5px;
.form-group input,
.form-group textarea
width: 100%;
padding: 10px;
box-sizing: border-box;
border: 1px solid #ddd;
border-radius: 4px;
14
button
padding: 10px 15px;
background: #5cb85c;
color: #fff;
border: none;
border-radius: 4px;
cursor: pointer;
button:hover
background: #4cae4c;
pre
background: #f9f9f9;
padding: 10px;
border-radius: 4px;
End
15
FLOWCHART OF CODE OF BLOCKCHAIN USED:
Start
Class Block
index
previous_hash
timestamp
data
hash
Class Blockchain
chain
16
create_genesis_block()
genesis_block
index: 0
previous_hash: "0"
timestamp: current time
data: {"property_id": "0",
"owner": "Genesis",
"details": "Initial block"}
hash: hash_block("Genesis Block")
add_block(data)
last_block = [Link][-1]
index = len([Link])
timestamp = current time
hash = hash_block(data)
new_block index
previous_hash
timestamp
data
hash
[Link](new_block)
return new_block
17
hash_block(data)
block_string = [Link](data,sort_keys=True).
encode()
return hashlib.sha256(
block_string).hexdigest()
is_chain_valid()
for i = 1 to len([Link])
current_block
previous_block
if current_block.hash !=
hash_block(current_block.data)
return False
if current_block.previous_hash
!= previous_block.hash
return False
return True
18
get_property(property_id)
for block in [Link]:
if [Link]('property_id') == property_id:
return [Link]
return None
End
OUTPUT SCREENSHOOTS:
19
`
Fig 1
Fig 2
20
Fig 3
Fig 4
21
Fig 5
Fig 6
22
Fig 7
Fig 8
23
TEST CASE
Process Test Case Step Description Expected Actual Comments
Output Output
Add Malformed 1 Enter valid data in all Server error Unhandled This tests if
Property JSON sent fields but modify the message error or the system
to server developer console to indicating a unexpected can handle
change the fetch parsing issue behavior unexpected
request body to send data
malformed JSON formats sent
(e.g., missing a from the
comma or quotation client-side.
mark).
Add Valid Input 1 Enter a unique Success Success Pass
Property property ID, owner message: message
name, and property "Property displayed
details in the added
respective fields. successfully!"
Add Empty 1 Leave the property ID Error Error Pass
Property Property ID field blank and enter message: message
data in other fields. "Please enter displayed
a property
ID."
Add Empty 1 Leave the owner Error Error Pass
Property Owner name field blank and message: message
Name enter data in other "Please enter displayed
fields. the owner
name."
Add Empty 1 Leave the property Error Error Pass
Property Details details field blank and message: message
enter data in other "Please enter displayed
fields. property
details."
Transfer Valid 1 Enter a valid property Success Success Pass
Property Transfer ID and new owner message: message
name in the "Property displayed
respective fields. transferred
(Assuming property successfully!"
already exists)
Transfer Invalid 1 Enter an invalid Error Error Pass
Property Property ID property ID and new message: message
owner name. "Property not displayed
found."
Get Valid 1 Enter a valid property Formatted Formatted Pass
Property Property ID ID of an existing JSON JSON
Details property. containing displayed
property
details
Get Invalid 1 Enter an invalid Error Error Pass
Property Property ID property ID. message: message
Details "Property not displayed
found."
Add Valid Input 1 Enter a unique Success Success Pass
Property property ID, owner message: message:
name, and property "Property "Property
24
details in the transferred transferred
respective fields. successfully!" successfully!"
Add Empty 1 Leave the property ID Error Error Pass
Property Property ID field blank and enter message: message:
data in other fields. "Please enter "Please enter
a property a property
ID." ID."
Add Empty 1 Leave the owner Error Error Pass
Property Owner name field blank and message: message:
Name enter data in other "Please enter "Please enter
fields. a property a property
ID." ID."
Add Empty 1 Leave the property Error Error Pass
Property Details details field blank and message: message:
enter data in other "Please enter "Please enter
fields. a property a property
ID." ID."
Transfer Valid 1 Enter a valid property Success Success Pass
Property Property ID ID and new owner message: message:
name in the "Property "Property
respective fields. transferred transferred
(Assuming property successfully!" successfully!"
already exists)
Transfer Invalid 1 Enter an invalid Error Error Pass
Property Property ID property ID and new message: message:
owner name. "Property not "Property not
found." found."
Get Valid 1 Enter a valid property Formatted Formatted Pass
Property Property ID ID of an existing JSON JSON
Details property. containing containing
property property
details details
Get Invalid 1 Enter an invalid Error Error Pass
Property Property ID property ID. message: message:
Details "Property not "Property not
found." found."
25
CONCLUSION
The objective of this project is to apply blockchain technology to a real-
world problem and design a system that revolutionizes the land registry
process. The primary goal is to enhance the security, transparency, and
efficiency of land transactions by leveraging the decentralized and
immutable nature of blockchain. This project aims to develop a
comprehensive digital registry that records land ownership, verifies and
validates transactions through smart contracts, and ensures
accessibility and accuracy of land records. By doing so, we address
common issues such as fraud, disputes, and administrative
inefficiencies, thereby creating a robust and trustworthy land registry
system.
This project has provided valuable insights into how blockchain
technology can be harnessed to solve critical issues in land
management. It has demonstrated the potential of blockchain to
streamline processes, reduce costs, and increase transparency in land
transactions. Additionally, it has highlighted the importance of
integrating modern technology with existing systems to improve overall
functionality and user experience. Through this project, we have gained
a deeper understanding of how technological advancements can
contribute to the development of secure and efficient systems,
ultimately benefiting stakeholders and promoting trust in land
registry operations.
26
REFERENCES USED :-
[Link] Documentation: Official Python Documentation. Python Software
Foundation. [[Link]]([Link]
[Link] Password Guidelines: National Institute of Standards and Technology
(NIST). [[Link]]( [Link]
[Link] Random Generation: Random module documentation. Python
Software Foundation. [[Link]]
([Link]
[Link] Libraries: Tkinter Documentation. Python Software Foundation. [Tkinter
Overview]([Link]
[Link] . S .tumbeti : complilation using py/flask edition 3
27
28