maximevaillancourt / Trace

Licence: mit
Supply chain transparency platform proof-of-concept based on the Ethereum blockchain ✍️

Programming Languages

javascript
184084 projects - #8 most used programming language
solidity
1140 projects

Projects that are alternatives of or similar to Trace

Eth Vue
Featured in Awesome Vue [https://github.com/vuejs/awesome-vue], a curated list maintained by vuejs of awesome things related to the Vue.js framework, and Awesome List [https://awesomelists.net/150-Vue.js/3863-Open+Source/18749-DOkwufulueze-eth-vue], this Truffle Box provides everything you need to quickly build Ethereum dApps that have authentication features with vue, including configuration for easy deployment to the Ropsten Network. It's also Gravatar-enabled. Connecting to a running Ganache blockchain network from Truffle is also possible -- for fast development and testing purposes. Built on Truffle 5 and Vue 3, eth-vue uses vuex for state management, vuex-persist for local storage of app state, and vue-router for routing. Authentication functionalities are handled by Smart Contracts running on the Ethereum blockchain.
Stars: ✭ 171 (+228.85%)
Mutual labels:  blockchain, ethereum, dapp, web3, truffle
Eth Crypto
Cryptographic javascript-functions for ethereum and tutorials to use them with web3js and solidity
Stars: ✭ 420 (+707.69%)
Mutual labels:  blockchain, ethereum, dapp, web3, truffle
Disperse
React/Redux dApp (decentralized app) boilerplate using Ethereum's blockchain
Stars: ✭ 36 (-30.77%)
Mutual labels:  blockchain, ethereum, dapp, truffle, decentralized
Alpha Wallet Ios
An advanced Ethereum mobile wallet
Stars: ✭ 140 (+169.23%)
Mutual labels:  blockchain, ethereum, dapp, decentralized
Trust Wallet Ios
📱 Trust - Ethereum Wallet and Web3 DApp Browser for iOS
Stars: ✭ 1,228 (+2261.54%)
Mutual labels:  blockchain, ethereum, dapp, web3
Cyb Archeology
🌎 Personal immortal robot for the The Great Web
Stars: ✭ 117 (+125%)
Mutual labels:  blockchain, ethereum, web3, decentralized
Web3 Vs Ethers
A basic cheatsheet of Web3.js vs Ethers (along w/ example apps!)
Stars: ✭ 103 (+98.08%)
Mutual labels:  ethereum, dapp, web3, truffle
Eth.social
An Ethereum dApp for posting social events.
Stars: ✭ 17 (-67.31%)
Mutual labels:  ethereum, dapp, web3, truffle
Unstoppable Wallet Android
A secure and decentralized Bitcoin and other cryptocurrency wallet for Android phones. Supports Bitcoin, Ethereum, EOS, Binance Chain, Bitcoin Cash, DASH, ...
Stars: ✭ 165 (+217.31%)
Mutual labels:  blockchain, ethereum, dapp, decentralized
Angular Truffle Starter Dapp
Angular CLI + Truffle Starter Dapp; write, compile & deploy smart contracts on Ethereum blockchains
Stars: ✭ 174 (+234.62%)
Mutual labels:  blockchain, ethereum, dapp, truffle
Love Ethereum
区块链学习
Stars: ✭ 323 (+521.15%)
Mutual labels:  blockchain, ethereum, dapp, truffle
Typechain
🔌 TypeScript bindings for Ethereum smart contracts
Stars: ✭ 769 (+1378.85%)
Mutual labels:  blockchain, ethereum, web3, truffle
Marketprotocol
Ethereum based derivatives trading protocol creating digital tokens for any asset
Stars: ✭ 78 (+50%)
Mutual labels:  blockchain, ethereum, web3, truffle
Ethvtx
🌀🛰 ethereum-ready & framework-agnostic redux store configuration
Stars: ✭ 125 (+140.38%)
Mutual labels:  blockchain, ethereum, dapp, web3
Web Sdk
Portis Web SDK
Stars: ✭ 65 (+25%)
Mutual labels:  blockchain, ethereum, dapp, web3
Embark
Framework for serverless Decentralized Applications using Ethereum, IPFS and other platforms
Stars: ✭ 3,478 (+6588.46%)
Mutual labels:  blockchain, ethereum, dapp, decentralized
React Ethereum Dapp Example
A starter boilerplate for an Ethereum dapp using web3.js v1.0, truffle, react, and parity
Stars: ✭ 384 (+638.46%)
Mutual labels:  blockchain, ethereum, web3, truffle
Starter Kit
An OpenZeppelin starter kit containing React, OpenZeppelin SDK & OpenZeppelin Contracts.
Stars: ✭ 101 (+94.23%)
Mutual labels:  ethereum, dapp, web3, truffle
Unstoppable Wallet Ios
A secure and decentralized Bitcoin and other cryptocurrency wallet for iPhone. Supports Bitcoin, Ethereum, EOS, Binance Chain, Bitcoin Cash, DASH, ...
Stars: ✭ 180 (+246.15%)
Mutual labels:  blockchain, ethereum, dapp, decentralized
Eattheblocks
Source code for Eat The Blocks, a screencast for Ethereum Dapp Developers
Stars: ✭ 431 (+728.85%)
Mutual labels:  blockchain, ethereum, web3, truffle

⚠️ This project is not supported anymore. Here be dragons! ⚠️


logo

Trace

A transparent supply chain management platform with end users in mind.

Trace is a decentralized application based on the Ethereum blockchain aiming to let consumers see the data behind the products they buy every day. It currently allows industry experts to add products to the app, as well as create certifications that can be added to products. A mobile companion app (not developed yet) would allow scanning Trace QR codes placed on the actual products to see the data on-premise (e.g. at the grocery store).

Keep in mind that this is a proof of concept. It is not production ready by any means. However, we do invite you to play around with the project and use it as you see fit. There are some rough edges, so we definitely appreciate your help in improving the platform.

This project was developed under the supervision of Bessam Abdulrazak, director of the Ambient Intelligence Lab at Université de Sherbrooke.

Made using the Truffle toolkit, React.js, Redux, and Webpack.

Logo design by Laurence Mailhiot.

Screenshot

scrot

Installing / Getting started

  1. Clone the repo:

    git clone https://github.com/maximevaillancourt/trace.git
    cd trace
    
  2. Install the Truffle toolkit globally and install project dependencies:

    npm install -g [email protected] && npm install
    
  3. In a new shell, start the Truffle development console:

    truffle develop
    
  4. In the Truffle console, compile and deploy the smart contracts:

    This will effectively reset your local blockchain, meaning that all existing transactions will be deleted.

    migrate --reset
    
  5. Back in a regular shell, start the Webpack server:

    npm run start
    

    A browser window should then open automatically at http://localhost:3000 (or whatever port you set manually). If you see the Trace home page, you're ready to go. Otherwise, if the page is stuck on "Waiting for Web3...", proceed to steps 5 and 6.

  6. Install the MetaMask browser extension. Once installed, click on the MetaMask icon, then use the "Import Account" feature to create an account from a private key. Copy the first private key from the first few lines of output of truffle develop and paste it into the "Private Key" field in Metamask.

  7. Connect to your private network. Click the network chooser (it will likely say "Main Ethereum Network" at the top), and choose "Custom RPC". In there, enter the URL that matches the configuration in the truffle.js file (which should be http://localhost:9545 by default), then click "Save".

  8. Refresh the page in your browser, and you should be good to go!

Developing

To change something in the "smart contracts" side of things, you need to compile your contracts every time you change them using the following command in the Truffle console:

migrate --reset

As for the React front-end, the Webpack server should refresh the page in your browser automatically when a change is detected.

Building

Once you're ready to bundle the front-end app, use the build script to bundle everything together.

npm run build

Deploying

You're free to deploy the generated front-end bundle wherever you see fit. As for the smart contract, you can deploy it through Ganache/Truffle by adding a new network configuration. See this guide for more information.

Features

  • Add a product to the platform
  • Search for a particular product
  • Add certifications to products (e.g. "biological", "non-GMO", etc.)
  • Browse a product's version history
  • See the product's previous positions on a map
  • Combine products into one
  • Split a product into many (WIP)

Contributing

For bug fixes, documentation changes, and small features:

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature') using GPG signing
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

For larger new features: do everything as above, but first also make contact with the project maintainers to be sure your change fits with the project direction and you won't be wasting effort going in the wrong direction

Links

Licensing

The code in this project is licensed under MIT license. See the LICENSE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].