The Investment project is a powerful, containerized tool designed to automate and streamline the management and analysis of investment portfolios. At its core, the project provides robust functionality for handling investment configurations and updating fund quotations, ensuring that financial data is consistently up-to-date and accurate. Users can quickly configure investments, retrieve and update quotations, and visualize the results on Grafana dashboards. One application instance can handle many investment owners with multiple investment wallets for each owner.
Presented dashboards are automatically provisioned in Grafana instance.
Management view allows to manually trigger fund quotation download and investment result re-calculation. As the data kept in a database like quotation and investment results is full recoverable, there are also buttons to delete quotation and results in order to perform all calculation steps from scratch in case of any errors.
Consists of following components:
- PostgreSQL - Database to store fund quotation and investment results
- Flask - Backend app which downloads fund quotation from Analizy.pl and calculates investment results
- Grafana - Visualization of the results
- Checker - On startup imports investment configuration to the system. During the system runtime it is responsible for checking if there are new fund quotation available, triggers Flask to download them, and recalculate the results.
- Loki - Log server to capture logs from application components.
- Promtail - Log scraper, scrapes logs generated by apps and send them to Loki.
Run Re-build_from_scratch.sh
script, which will build docker images, and start docker compose.
During the application startup sample investment config will be inserted to the system, and fund quotation will be downloaded from Analizy.pl to calculate refunds.
Alternatively you can run following steps to build and start containers:
docker compose build
docker compose up -d
Important
Application data files are stored locally at ./APP_DATA
and ./APP_LOG
. To re-deploy application from scratch you need to remove them.
Grafana will be available at: http://localhost:3000/login.
Default credentials:
- username:
admin
- password:
admin