GithubHelp home page GithubHelp logo

blockchain-developer-bootcamp-final-project's Introduction

blockchain-developer-bootcamp-final-project

Idea: Automated Property Purchases using Escrow Smart Contract

I like to use blockchain technology to simplify the conveyancing process and significantly reduce the time and cost it takes to buy and sell a property.

In future, I would also like to explore fractional property ownership so users can pool their money to buy home or commercial property for investments.

Current Solution

Current version: Using blockchain technology to enable users to book and make an downpayment for the property. Only the owner of the contract can finalize to accept the downpayment to complete the booking.

Current Features:

  • Only contract owner is able create property for sale
  • Any buyer with ETH is able to make a full downpayment for the property through MetaMask
  • After the buyer made the deposit, only the contract owner is able to complete the booking and transfer ETH out of the contract.

Future version: Owner is able to transfer ETH only if status of property is completed, time-base to automatically commplete the booking, tole-Based Management(Owner,Lawyer,Buyer for example) and allow owner to obtain the payment, issue NFT for property purchase. And improvement to the User Experience with better login, login and loading experiences.

APP URL

https://on9commerce.github.io/

Simple Workflow To Use The App If You Want To Test It locally

  1. Install Nodejs, Truffle and Ganache
  2. npm install to install dependencies
  3. Start Ganache.
  4. In ESCROW folder using command prompt, 'truffle migrate' to create ESCROW contract.
  5. Load the truffle-config.js file in Ganache UI
  6. In the app.js file, update the 'const escrowContractAdd = ' to the contract address in Ganache.
  7. Use live server in VSCode to start index.html in the web browser.
  8. In the web browser, login with Metamask in Rinkeby Network using the owner account that created the ESCROW smart contract and you should see the UI at the bottom to create new properties.
  9. Create a few properties.
  10. Login with Metamask using another account and you will not be able to see the UI to create any new properties.
  11. You can buy the property that you like to book the unit
  12. Switch back to the owner account and you will able to see the 'Complete (Contract Owner)' button on the property that was purchased by the previous account.
  13. Click to 'Complete (Contract Owner)' button for the property and the ESCROW account value will be updated at the bottom of the page.
  14. Click on 'Transfer ETH To Contract Owner' to receive ETH to your MetaMask wallet!

Project Structure

  • ESCROW - Solidity Contract Files
  • CLIENT - Frontend Files

Backend

  • Node.js >= 12.16.3
  • Truffle and Ganache
  • Ganache Port Number 8545

Frontend

Frontend is developed using vanilla javascript. You do not need to a server to run the frontend. You can use live server in vscode.

Unit Test

truffle test

Design Patterns

Design patterns used

Avoid Common Attacks

Avoid common attacks

Deployed Address

Deployed_address.txt

Screenscast

Youtube

Public Ethereum Address for NFT Cert

0x3B7e3ff9E864665DD747f2fa6D6A9a0780324c1b

blockchain-developer-bootcamp-final-project's People

Contributors

adrianteoyc avatar

Watchers

 avatar

blockchain-developer-bootcamp-final-project's Issues

Can't install

I pulled your project to evaluate it and am not able to install it/run the migrations.

Please could you make sure the package dependency list is in there as well as clearer instructions on how to install and get it running. Assume I am not a marker and another person learning from your repo.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.