Skip to content

prestto/BitBuyer

Repository files navigation

BitBuyer

Intro

The goal of this project is to predict buy or sell on bitcoins.

The price of bitcoin is notoriously volatile. This is because it has no inherent value, it's price is based almost exclusively on speculation. How can you accurately predict the value of such an asset? The short answer is that's almost impossible. As so much of the price is speculative though, we can suppose that the decision to buy and sell is impacted by news, and online word of mouth. This is compounded by the fact that bitcoin is held by private individuals, as opposed to companies.

Let's look at news outlets then, specifically twitter. We've taken 16M tweets and used Natural Language Processing techniques determine the sentiment of the tweet (positive, negative or passive) and used them as a predictor to buy, sell, or hodl.

Overview

Technologies

The webapp part of the project is handled in Postgres, django and Angular.

The way in which the project is deployed consititues a large part of the project, and is handled using Docker containers.

Deployment is separated into two distinct environments, production (henceforth prod) and development (dev).

In dev, the app is deployed on a minikube cluster (a single node kubernetes cluster run on a local machine), using Tilt to facilitate live updates. In prod, the project is deployed on OVH.

Dev

If you'd like to clone and run the project, this section explains how to do so (bear in mind that the project relies on bash, as it was developed on ubuntu 20.04.03).

Install

The following dependencies must be installed to run in local:

Commands to install these dependencies, along with links to the official docs can be found in the install doc.

/etc/hosts

You will then need to add the host (bitbuyer.tom-preston.info) to /etc/hosts:

# get the IP
kubectl get -n bitbuyer svc front-internal -o jsonpath='{.spec.clusterIP}'

# add to /etc/hosts
sudo nano /etc/hosts

# add an entry like
# 192.168.49.2    bitbuyer.tom-preston.info

Run a dev server

Open a bash terminal and run:

# launch tilt
./run.sh dev

# open tilt GUI
xdg-open http://localhost:10350

# open the project
xdg-open http://bitbuyer.tom-preston.info/coins