Queds Finance is a finance portfolio management tool that allows you to track your finance assets, including stock transactions and crypto transactions. It automatically reads data from various brokers and crypto exchanges, making it easier for you to manage your investments.
See Queds Finance in action: https://queds.fly.dev/overview
- Track stock and crypto portfolios
- Wallet tracking with Session/Pre/Post market prices
- Tax calculation with FIFO
- Watchlist for monitoring assets
- Automatic data import from Degiro, Clicktrade and InteractiveBrokers
- Automatic data import from exchanges: Bitstamp, Kraken, Bittrex and Binance
- TradingView graphs for visualizing asset performance
- Set price alerts via Telegram
- Dividends tracking
- Import broker/crypto data from CSV files
- Set default portfolio currency
- Investment fund tracking
- Include Kucoin Exchange
To get started with Queds Finance, you can deploy the tool using docker-compose or install each component individually.
Deploy everything with docker-compose (including external services: redis + nginx + timescaledb):
docker-compose build (also you can use --parallel)
docker-compose up
Check the VUE_APP_BACKEND_URL environment variable in docker-compose.yml.
The database is created automatically via alembic migrations. To be sure, once everything is ready, apply migrations again.
docker-compose run migrate
- Visit http://0.0.0.0:6060
- Create a user using the Register form
- Add a broker/exchange account in Accounts view
- Execute a read over the accounts
- Check orders
- Execute wallet calculation in order to generate the Wallet and the Tax report
- Add stock to a watchlist
Queds Finance is built using Python, Vue, Redis, and Timescaledb. Here's an overview of the directory structure:
.
├── api/ (flask app)
├── backend/ (worker)
├── config/ (app configs)
├── frontend/ (vue web page)
├── models/ (DB models)
└── docker-compose.yml
Edit the configuration file config/local.py
and set the parameters according to your local environment.
DEBUG = True
SQL_CONF = {
'user': 'username',
'password': 'password',
'host': 'localhost',
'port': '5432',
'database': 'queds_local'
}
REDIS = {
'host': 'localhost',
'port': 6379
}
Create a database in Timescale and apply migrations:
BACKEND_SETTINGS=config.local alembic upgrade head
Create new migrations:
BACKEND_SETTINGS=conf.local alembic revision --autogenerate
You can modify the database using the docker-compose. After the model modification, you can generate the new migrations with:
docker-compose run migrate /bin/bash
cd models && alembic revision --autogenerate
To downgrade a migration, use:
docker-compose run migrate /bin/bash
cd models && alembic downgrade -1
To initialize the API, create a virtual environment and run:
cd api
pip install -r requirements.txt
BACKEND_SETTINGS=config.local python app.py run -h 0.0.0.0
Test the API:
BACKEND_SETTINGS=config.local python -m unittest
Finally, check API endpoints in Swagger: http://0.0.0.0:5000/api
Also you can visit the demo api at https://queds.fly.dev/api/
Create a virtual environment and initialize a worker:
cd backends
pip install -r requirements.txt
BACKEND_SETTINGS=config.local python finance_reader/worker.py
Init test client:
BACKEND_SETTINGS=config.local python finance_reader/client.py
Init frontend:
cd frontend
npm install
npm install @vue/cli -g
npm run serve
Build:
npm run-script build
You can access to the database using the docker-compose.
Track your assets and monitor your portfolio performance.