Crypto Portfolio Tracker

Building a crypto portfolio tracker with Python, Flask, and SQL to learn about investing

I build a crypto portfolio tracker that connects to a variety of exchanges using Python, SQL, and the CCXT library. It integrates multiple platforms with the application to bring a single view of multiple crypto exchange holdings to one screen. 

Getting the Data

Before building the app, I prototype API connections using Jupyter Notebook, a tool for interactively developing and presenting data science projects.

The CCXT library connects cryptocurrency exchange services worldwide, providing quick access to market data for storage, analysis, and visualization.

For data storage, I’m using SQLite an open-source, transaction relational database engine designed to be embedded into applications.

Building the App

I start creating a python virtual environment. Then I set up Flask with blueprints. A blueprint defines a module containing views, templates, static files, and other elements. It helps create reusable modules for the application.

Backend Tasks

Server-side tasks containing behind-the-scene activities that occur when performing any action on the application. It uses functions and classes to connect APIs, update portfolios, and manage the SQLite database.

User Interface

The interface light and dark modes are built with Tailwind and Jinja. Tailwind is a utility-first CSS framework packed with classes that can be composed to create designs directly in the HTML markup. Jinja is an extensible markup and templating engine used by flask to build the interfaces. It allows writing code similar to Python syntax. 

For the charts, I used Charts.js, a simple yet flexible JavaScript charting library. Table sorting, pagination, and searching are built with tablesorter.js. A jQuery plugin for turning standard HTML tables into sortable tables.