GithubHelp home page GithubHelp logo

colcoffee's Introduction

ColCoffee

Coffee Supply chain & data auditing DApp.

This repository containts an Ethereum DApp that demonstrates a Supply Chain flow between a Seller and Buyer. The user story is similar to any commonly used supply chain process. 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.

The DApp User Interface when running should look like...

truffle test

truffle test

truffle test

truffle test

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

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

Installing

A step by step series of examples that tell you have to get a development env running

Clone this repository:

git clone https://github.com/andrescabsi14/colcoffee.git

Install all requisite npm packages (as listed in package.json):

npm install

Launch contracts server:

npm run start

Launch client app:

cd cient && npm start

Your terminal should look something like this:

truffle test

In a separate terminal window, Compile smart contracts:

npm run contracts: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:

npm run contracts:migrate

Your terminal should look something like this:

truffle test

Test smart contracts:

npm run test

All 10 tests should pass.

truffle test

In a separate terminal window, launch the DApp:

npm start

Platform

  • Ethereum - Ethereum is a decentralized platform that runs smart contracts

Framework

  • Truffle - Truffle is the most popular development framework for Ethereum with a mission to make your life a whole lot easier.
  • Ganache

Libraries

  • React: Handle the UI
  • dotenv: Store as environmental variables details to deploy at .env file.

Network

  • Scale: 1000 users actives on the network at a time.
  • Trust: Participate without knowing all about each other.

Performance

  • Ammount of data per TX:
  • TX Throughput: # of TX/time
    • Create and modify data
    • Query data

Consensus

  • Arbitrator needed? Yes
  • Who validates transactions? All participant involved
  • Immutability of the records No need to ammend or cancel transactions

Database

  • Storage transactional data: Ethereum Rinkeby testnet

Contract Addresses

Contract: 0xECb80b2a02886D89A5236c449e3146693bECc50B

SupplyChain: 0x216bb528a956a5432570093fb9353bde24cf015f

FarmerRole: 0x6a045066b2fdba2e7661ccad60216db98c2d5dac

DistributorRole: 0xe1e4a87698ece438bbdf2b6d88ff14e21f6b22cf

RetailerRole: 0xdcbb907ccfe7edc104d070ef900ca6b581561371

ConsumerRole: 0x3bf9a1e925cc827ae21f8262f17f0dc911242a60

Transaction

Deploy Tx: 0xf1f734509e49e660db72c7a275e4c27ce628e84dfabf8f426fe77a633025003e

Program version numbers

  • Truffle: v4.1.15 (core: 4.1.15)
  • Solidity: v0.4.25 (solc-js)
  • NodeJS: v10.13.0
  • Web3.js: v1.2.5

Diagrams

header image

Acknowledgments

  • Solidity
  • Ganache-cli
  • Truffle

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.