Coder Social home page Coder Social logo

montera82 / supply-chain-dapp Goto Github PK

View Code? Open in Web Editor NEW
0.0 3.0 0.0 1.9 MB

The project in this repository is an Ethereum based DApp that shows the Supply chain flow between a Seller and a Buyer.

Home Page: https://bafybeicaul43frdwj24e4fvekrffifi3a2grxlvmprox6uww4r3g7uip5m.ipfs.infura-ipfs.io/

Shell 0.03% Solidity 7.58% HTML 1.53% JavaScript 90.55% CSS 0.30%
ipfs ethereum smart-contracts solidity

supply-chain-dapp's Introduction

Coffee Supply Chain System

Motivation

The project in this repository is an Ethereum based DApp that shows the Supply chain flow between a Seller and a Buyer. The Blockchain can enable more transparent and accurate end-to-end tracking in the supply chain process and the key goal is to achieve efficient fulfillment of demand and drive outstanding customer value.

General

A Seller can add items to the inventory system stored in the blockchain. A Buyer can purchase such items from the inventory system. Additionally a Seller can mark an item as Shipped, and similarly a Buyer can mark an item as Received.

Find below the full personas involved in the system :

FARMER : The farmer persona is responsible is the originator in the system and has early responsibilites including harvesting, processing and packaging the Coffee for sale.

DISTRIBUTOR : The distrubutor role is in direct contact with the farmer and has the ability to buy harvested and packaged Coffee that are available for sell.

RETAILER : The retailer has the ability to get coffee shipments

CONSUMER : The consumer is the end user that has the ability to purchase processed Coffeee from the retailer.

Architecture

This project uses UML to describe the activity, sequence, state and datamodel of the entire supply chain system, highlighing the interactions and states of the system end to end.

UML was choosen because of how simple and yet clear it Check out the folder ./UML for all the related diagrams.

Prerequisites

Please make sure you've already installed ganache-cli, Truffle and enabled MetaMask extension in your browser.

User Interface

The DApp User Interface when running look like...

truffle test

truffle test

truffle test

truffle test

Libraries Used

Find below the modules used in this project which are all open source.

  1. [email protected] - Since we are connecting with Infura to deploy the smart contract to the ethereum blockchain, we are choosing to use this lib, which helps elangantly manage the connection string.

  2. [email protected] This library allows us to access the ethereum blockchain from the web browser.

Other Library used.

  1. jquery,Node v12.22.4,
  2. Truffle v5.4.6
  3. Solidity - 0.4.24 (solc-js)
  4. https://www.npmjs.com/package/ipfs-http-client ( via cdn ): To interact with ipfs for file uploads

IPFS

Because we the goal of our design is to be fully decentralised, i am choosing to host the project on IPFS, instead of a central server. Follow the linke below to see the project on IPFS.

https://bafybeicaul43frdwj24e4fvekrffifi3a2grxlvmprox6uww4r3g7uip5m.ipfs.infura-ipfs.io/

Installing

The code is written for Solidity v0.4.24.

Find below a step by step series of examples that tell you have to get a development env running:

Change directory to project-6 folder and install all requisite npm packages (as listed in package.json):

cd project-6
npm install

Launch Ganache:

ganache-cli -m "spirit supply whale amount human item harsh scare congress discover talent hamster"

Your terminal should look something like this:

truffle test

In a separate terminal window, Compile smart contracts:

truffle compile

Your terminal should look something like this:

truffle test

This will create the smart contract artifacts in folder build\contracts.

Migrate smart contracts to the locally running blockchain, ganache-cli:

truffle migrate

Your terminal should look something like this:

truffle test

Test smart contracts:

truffle test

All 10 tests should pass.

truffle test

In a separate terminal window, launch the DApp:

npm run dev

General

The Smart contract is deployed to the Rinkeby Testnet here: https://rinkeby.etherscan.io/address/0x2D1CC2fDee3e5A9E7584A245E3389f612e2c562d

Invoking the tests

truffle test --network test

Built With

  • Ethereum - Ethereum is a decentralized platform that runs smart contracts
  • IPFS - IPFS is the Distributed Web | A peer-to-peer hypermedia protocol to make the web faster, safer, and more open.
  • Truffle Framework - Truffle is the most popular development framework for Ethereum with a mission to make your life a whole lot easier.

Acknowledgments

  • Solidity
  • Ganache-cli
  • Truffle
  • IPFS

supply-chain-dapp's People

Contributors

montera82 avatar

Watchers

James Cloos avatar  avatar  avatar

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.