/smart-contract-for-public-procurement

This is a smart contract in order to realize a highly transparent public procurement (tender & bid).

Primary LanguageJavaScript

Smart contract for Public Procurement


【Introduction of the smart contract for Public Procurement 】

  • This is a smart contract in order to realize a highly transparent public procurement (tender & bid).
  • Split a large contract into several small contracts. (and they are managed with NFTs)

 


【Workflow】

  • ① A project is created by a project owner (e.g. Goverment, etc...)
    • smart contract publish NFTs for each project (bit & tender)

  • ② Bidders submit proposal of conditions for a project owner.

  • ③ Once a proposal is chosen, a project owner submit a contract agreement with a chosen bidder.
    • smart contract publish NFTs for each contract (in order to identify owner of each contracts) => Each NFT is associated with IPFS backed contract agreement.

  • ④ A project owner (e.g. Goverment, etc...) deposit money for the best bidder.

  • ⑤ Once a selected bidder's efforts is approved, deposited money is transferred into company. (Escrow) (All transaction process and financial flows are recorded. It is useful to do a financial investigation)

 


Tech stack

  • Solidity v0.6.12
  • Truffle v5.1.52
  • web3.js v1.2.1
  • Node.js v11.15.0

 


Setup

① Install modules

$ npm install

② Run ganache-cli

(Please make sure whether port number is 8545 or not)

$ ganache-cli

③ Compile & migrate contracts

$ npm run migrate:local

④ Test contracts (※ In progress)

$ npm run test:local

 


【Remarks】

 


【References】