/leakSpeak

1st place overall at Gotham DLT Hackathon (HERD) @ Microsoft and 1st place for Brooklyn Law Incubator & Policy Clinic challenge

Primary LanguageJavaScript

Leak Speak

1st place overall at Microsoft's Gotham DLT Hackaton and 1st place for Brooklyn Law Incubator & Policy Clinic challenge. LeakSpeak is a journalist platform leverging Ethereum technology that provides incentives for sources to convey breaking news!

🤓 Motivation

Distributed Ledger Technology has the potential to greatly improve the efficiency and transparency of law and legal processes, while improving access to justice. The application aims to to advance environmental, economic, or social justice through the use of blockchain technology to provide a streamline process for global issues to be easily communicated. LeakSpeak allows journalists to anonymously reward their sources for their information and protects information from censorship by hosting the data on a non-custodial, decentralized network. In the era of fake news, leakSpeak is a way to get on the ground information and to prevent the rewriting of history. We hope leakSpeak will inspire a new wave of citizen journalism and awareness.

🛒 Functionality

  • An Organzation can create tokens with Leak Speak
  • Journalist can pose question and attempt to gain insight
  • Sources can navigate to home page and provide information pertaining to a journalist question

⚒️ Built With

We used Ethereum to manage the data flow and IPFS to slice and distribute all uploaded information. Our tech stack uses react, truffle, ganache, and drizzle for on-demand updates from the blockchain.

Full Tech Stack List

  • Javascript
  • React
  • React Semantic UI
  • HTML/CSS
  • Ethereum
  • Ganache
  • Drizzle
  • IPFS
  • Truffle
  • Web3
  • MetaMask
  • Node.js
  • Solidity

✍️ Authors

Screenshots

Screen Shot 2019-12-08 at 2 22 32 PM

Screen Shot 2019-12-09 at 9 36 54 AM

Screen Shot 2019-12-09 at 9 36 44 AM

Screen Shot 2019-12-09 at 9 36 27 AM

Screen Shot 2019-12-09 at 9 35 36 AM

Screen Shot 2019-12-09 at 9 36 44 AM

Installation

Note: this configuration process is long and fraught with errors due to the nature of Ethereum development! Please reach out if you encounter issues, we may have encountered and resolved the same ones during our development process.

Ensure that the local Node version is 10.16.10 (the truffle library has dependecy issues with Node v12+)

Navigate to the root directory

npm i in root directory

Navigate to the leakSpeak directory

npm i in the leakSpeak directory

Download and open up Ganache (https://www.trufflesuite.com/ganache). This is our local test Ethereum network that we will be deploying our smart contract on.

In Ganache:

create a new workspace under the server tab, change the port number to 8545 (this is our local testnet port) under the accounts & keys tab, copy the mnemonic key (this is how we generate our ethereum address) save Create a .secret file in your root directory and paste your mnemonic key from step 7 (this allows the code to deploy our contract with the same address)

In the root directory, compile and migrate the contracts using command truffle migrate (If you do not have truffle installed globally use "./node_modules/.bin/truffle migrate") to deploy the contracts to the local network.

Download Metamask extension for your browser and log in to Metamask (https://metamask.io/) This is an Ethereum address management tool and our interface with the Ethereum blockchain

Enter the Ganache seed account (12 word mnemonic from step 7) into metamask.

Change metamask network to localhost 8545. Our test network is deployed to port 8545.

Navigate to the openhire directory and npm start to run our front end to interact with the blockchain

Demo

TBD