Crypto_Dashboard

This project is a WIP as a way to display useful information about cryptocurrencies. It's currently being actively developed as a proof of concept, and a way to visualize more useful data about various cryptocurrencies.

It currently uses cryptofeed (https://github.com/bmoscon/cryptofeed) and Dash by Plotly (https://plotly.com/dash/) to display live Coinbase data.

Installation

To begin, download this project as a zip or clone through your normal Git methods. In this project's current status, it's recommended to download PyCharm in order to run rather than command line.

Open the project in Pycharm and then in the terminal, install the modules:pip install requirements.txt

Running

To run, simply open the main.py file and run the if __name__ == "__main__" function or simply run the project via the top bar in Pycharm.

The project should then be viewable through any web browser at 127.0.0.1:8050. I've had some trouble with Brave and the way it blocks websites so I'd recommend any other web browser.

Usage

In this project's current state, the only available options are for users to change the selected cryptocurrency. The default view is for ETH-USD however there's also BTC-USD and ADA-USD available.

Understanding

This project utilizes two threads in order to manage both the cryptofeed worker and the Dash webserver. In the background, the cryptofeed worker is storing Level2 orderbooks for the cryptocurrencies inside objects which correspond to each coin.

Once an update has been recieved, it then updates the appropriate object. Every 500ms, the Dash server requests any changes from the currently selected currency (which corresponds to an object).

It then updates the graph with new information as well as updates the table with the 10 latest trades for that coin.

To do

I have a lot of visions for this project. Some of the todos include:

fileideastatus
webserver.pyAdd another widget to display current priceincomplete
webserver.pyAllow the user to change graph typesincomplete
webserver.pyReduce size of currency tableincomplete
webserver.pyDisplay cumulative statistics for sessionincomplete
cryptofeed_worker.pyChange class to not store L2 updates if the coin isn't selected - performance updateincomplete
cryptofeed_worker.pyPotential long term change to remove cryptofeed dependency and make custom coinbase API requestsincomplete
webserver.pyRename main.py to webserver.pycomplete

GitHub

GitHub - JoshLove-portfolio/Crypto_Dashboard: This project is a proof of concept to create a dashboard using Dash to display information about various cryptocurrencies. Currently under development.
This project is a proof of concept to create a dashboard using Dash to display information about various cryptocurrencies. Currently under development. - GitHub - JoshLove-portfolio/Crypto_Dashboa...