- Introduction
- Techstack
- Setup
- Repository Structure
- Extension
- Maintainers
Trumped: News served by ML, verified by Blockchain
Trumped has three parts of the working project:
- Machine Learning model:
For classfying a given article as fake or real and blacklisting the publishers accordingly - Smart Contracts: Users pay ether to authentic news Publishers; each Publisher is asked for a security deposit before publishing their news article
- Website: Where the Publishers publish their news for the Users to see
Demo video:
SQLAlchemy
,
Solidity (version 0.5.11)
,
Ganache (v2.1.1.) + Metamask (version 7.2.1.)
,
Python-Flask (version 1.1.1),
Pandas (version 0.25.1),
Numpy (version 1.17.2),
Sklearn
Modules:
Clone this repository.
In Trumped/
, do:
pip install -r dependencies.txt
on terminal.
Metamask:
To simulate the working of this Trumped on a local blockchain, we need at least 4 wallets.
For the purpose of this repository, the accounts used are as follows:
- trumped: Platform (Website's wallet)
- Spyder: FakeNews Publisher
- Harishchandra: AuthenticNews Publisher
- Mocha: User (viewer)
The aforementioned users are stored locally in the Ropsten network connected the host browser. The payments made by *Mocha*, *Sypder*, and *Harichandra* are done using Metamask. Solidity files, stored in `contracts`, user the active wallet address in Metamask, and have the receiver address value hardcoded.
To set up user and/or publisher accounts on local Ethereum, Ganache transactions can be used to connect to Metamask wallets. Change to Custom RPC
on Metamask to the RPC server on Ganache. Import account using Ganache account key.
In Trumped/
, run:
FakeNewsClassifier.py
.
NewsTypeClassifier.py
.
to train and save the results of these models on your local machine.
In Trumped/
, run:
python run.py
.
Select appropriate accounts for respective transactions.
- project
- contracts (Solidity smart contracts)
- SecurityDeposit.sol
- Refund.sol
- FeeForAuthentic.sol
- data
- static
- templates
- FakeNewsClassifier.py
- NSV.db
- NewsTypeClassifier.py
- init.py
- forms.py
- models.py
- news (data set for training News Category Identifier)
- routes.py
- test_fake.csv (data set for testing Fakes News Classifier)
- train_fake.csv (data set for testing Fakes News Classfier)
- contracts (Solidity smart contracts)
- .gitignore
- createDb.py
- dependancies.txt
- run.py
- LICENSE
- README.md
This project has been developed in KJSCE Hack 2019, at K.J. Somaiya College of Engineering, Vidyavihar, India in the time period of 24 hours. The contributors to the project and this repository are :
Ms. Nidhee Kamble (nidheekamble)
Mr. Shreyansh Chheda (shrey-c)
Ms. Vidhi Rambhia (VidhiRambhia)