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.
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
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.
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.
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.
I have a lot of visions for this project. Some of the todos include:
|webserver.py||Add another widget to display current price||incomplete|
|webserver.py||Allow the user to change graph types||incomplete|
|webserver.py||Reduce size of currency table||incomplete|
|webserver.py||Display cumulative statistics for session||incomplete|
|cryptofeed_worker.py||Change class to not store L2 updates if the coin isn't selected - performance update||incomplete|
|cryptofeed_worker.py||Potential long term change to remove cryptofeed dependency and make custom coinbase API requests||incomplete|
|webserver.py||Rename main.py to webserver.py||complete|