connorjoleary / DeepCite

Traversing links to find the deep source of information
GNU General Public License v3.0
69 stars 7 forks source link
javascript machine-learning python

DeepCite extension

In a world filled with fake news and alternative facts, get the real deep sources for your information.

https://chrome.google.com/webstore/detail/deepcite/oibmgglhkkaigemacdkfeedffkjbpgoi?hl=en-US

Join the discussion here:

https://discord.gg/wr7uMAdWGz

Discord Banner 2

Table of Contents

Donate

Unfortunatly running code is not cheap and I would really appreciate any support you could give to see this project flourish.

website payment address
Bitcoin 361Dq2e5wnjAhCnQ8FEkeiK3CYZZJ9QuGs
Venmo @fippy24
Paypal and Sofi Money connor.trumpet@gmail.com

Run Locally

Extension

Chrome
  1. Install Google Chrome
  2. In Chrome, navigate to chrome://extensions/
  3. Enable developer mode
  4. Then click Load unpacked
  5. Select DeepCite/extension folder

Lambda (Now run on GCP Cloud Functions)

Run
cd backend/lambda
python3 -m venv v-env-test
source v-env-test/bin/activate
pip3 install -r requirements.txt -r test_requirements.txt
gunicorn -c gunicorn_config.py wsgi:app

Model (Now run on GCP Cloud Run)

Run python -m spacy download en_core_web_lg once to download the model

cd backend/model
python3 -m venv v-env
source v-env/bin/activate
pip3 install -r requirements.txt
gunicorn -c gunicorn_config.py wsgi

Testing

Frontend Testing

System Testing

Note: connection issues make occur when webscrapping, wait a minute then run again

Curl request for testing model

Configuration

There are a couple ways to configure both the backend and the aws lambda service. The first priority, or the first place the config will look is in the root folder for a json file named deep-cite-config.json. Next the config will look in the environment, and finally anything not found in the json config or environment will fallback to the defaults. Here are the defaults and config options:

For Maintainers eyes only :eyes:

Semantic Versioning Policy

It's not really the responsiblity of contributors to manange the CHANGELOG and/or version numbers. Also adding the version number to PR's can lead to needless conflicts. After a PR is merged it is a good idea to see if the CHANGELOG needs to be updated. If the CHANGELOG needs to be updated then the extension version should also be updated. For our version control we follow semantic verisoning standards, which follows the general format: MAJOR.MINOR.PATCH.

There are multiple services in this repo and each has there own version number. Luckily there is a shell script in the scripts/ that makes updating the version for each service very simple.

$ cd scripts/
$ ./semver.sh minor model
$ cd scripts/
$ ./semver.sh patch lambda commit

NOTE: Our git tags are associated with the extension version number so if you update the extension version number a git tag will be added. This means that when you end up pushing your changes don't forget to push the tags like so:

$ git push --follow-tags

Authors

Connor O'Leary, Joe Pagani, and Jake Heaser

With great help from the University of Wisconsin, Madison CS506 team Shourya Goel, Jiayi Hu, Vinay Janardhanam, Dillon O'Leary, Noah SickLick, and Catherine Yan