Home

Awesome

Blockchain-Based-Property-Registration

<a href="LICENSE"><img src="https://img.shields.io/static/v1?label=license&message=MIT&color=green"></a> <img src="https://img.shields.io/badge/Ethereum-20232A?style=for-the-badge&logo=ethereum&logoColor=white"> <img src="https://img.shields.io/badge/Flutter-%2302569B.svg?style=for-the-badge&logo=Flutter&logoColor=white">

Land Registration using Blockchain

Problem it Solves:

  1. The elimination of middlemen: The elimination of middlemen or brokers makes the process of land registration less expensive. Brokers who try to defraud uninformed people will be unable to do so any longer. Brokers frequently take a long time to finish procedures, thus our project will help people save time.
  2. A distributed tamper-proof ledger that prohibits ownership fraud.
  3. IPFS is used to store important property registration papers in a secure manner.

Technology Stack:

  1. Ethereum Blockchain
  2. Polygon/Matic
  3. Web3Dart
  4. IPFS
  5. Flutter
  6. Metamask

Demo

Our Dapp is demonstrated in this video here

Run Application on deployed website

Check out the deployed website here

https://landregistry.live/

This is for demonstration purposes only. With this key, you can log in as Land Inspector:

<pre><b>6b86cddfedbec68ed2a1c7e14b993840a0848595ba5787aec9e8a38b18f0d96a</b></pre>

For user: <pre><b>3ed4aff1a8ff8e28df3cd307112f9166886edcc85a27136908e3b1687b111f89</b></pre>
You can also use your own Ethereum wallet key as a user.

Check new Smart contract At Polygon Testnet: here

Check Smart contract At (discontinued) Ropsten Ethereum Testnet: here

To Run Application Locally

  1. Clone the github repository and cd to the folder
  2. Install the flutter 3.0.2, nodejs
  3. Install ganache and truffle as shown below:
npm install -g truffle
  1. Open Ganache and keep it running in the Background
  2. Install the Metamask chrome extension, choose the local network and import the accounts
  3. Compile and run our migrations from the command line as shown below:
truffle compile
truffle migrate

6 .Copy contract address as seen in the image below and paste in variable contractAddress located in the file ./lib/constant/constant.dart

<pre> 2_deploy_migration.js ===================== Replacing 'Land' ---------------- > transaction hash: 0x427b2b402f767ac6a90334ab3c687b086b274de747fe10d6e194743b15057d78 > Blocks: 0 Seconds: 0 <b>>contract address: 0xed690C24C60A48F8A9819c9A15AD75B70CFBEa5a</b> > block number: 3 > block timestamp: 1650602828 > account: 0x33e94e4619f0AecDf81e9676Eb82c109FBa53356 > balance: 99.9154895 > gas used: 3996227 > gas price: 20 gwei > value sent: 0 ETH > total cost: 0.07992454 ETH </pre>
  1. In constant.dart file, change the value of the variable chainId to '1337' and change the value of the variable rpcUrl to "http://127.0.0.1:7545"
  2. Run the flutter web app
flutter pub get

flutter run -d web-server --web-port 5555
  1. Open the browser and the dapp will be running in http://localhost:5555/
  2. Create mapbox api key from https://www.mapbox.com/ and Replace it with mapBoxApiKeyin constant.dart file

Project Flowchart

<img src="screenshots/flowchart.png" height="450">

Screenshots

Home PageWallet connect/Login
<img src="screenshots/Screenshot1.png" height="225"><img src="screenshots/Screenshot7.png" height="225">
Contract Owner DashboardUser Registration
<img src="screenshots/Screenshot10.png" height="225"><img src="screenshots/Screenshot12.png" height="225">
Land Inspector DashboardUser Verification
<img src="screenshots/Screenshot11.png" height="225"><img src="screenshots/Screenshot5.png" height="225">
User DashboardAdding land on Map
<img src="screenshots/Screenshot2.png" height="225"><img src="screenshots/Screenshot8.png" height="225">
Land GalleryLand Details
<img src="screenshots/Screenshot3.png" height="225"><img src="screenshots/Screenshot9.png" height="225">
Received RequestMake Payment
<img src="screenshots/Screenshot6.png" height="225"><img src="screenshots/Screenshot4.png" height="225">
Transfer ownership,Seller,buyer photo captureWitness info,photo capture,transfer ownership
<img src="screenshots/Screenshot14.png" height="225"><img src="screenshots/Screenshot13.png" height="225">