Skip to content

BalanceBot is Build your portfolio, define allocations, and let the algorithm handle the rest — making investing simple, automated, and stress-free.

License

Notifications You must be signed in to change notification settings

Zephyr6410/BalanceBot

About

DcaPal is a pragmatic Dollar Cost Averaging tool for passive investors: financially-educated people managing small-to-medium portfolios replicating major world indices.

Every month/quarter, many investors face the same question: “How do I split my savings across assets so my portfolio stays balanced?”

DcaPal solves this problem. Simply:

  1. Build your portfolio and define your asset allocation in percentages.
  2. Enter the amount you want to invest.
  3. Let the algorithm split it automatically — keeping your portfolio balanced and saving you time.

Demo

demo-dcapal.mov

Getting started

You can start using DcaPal right away. It's free. No registration required.

Build your own portfolio or, if you don't know where to start, explore our Demo portfolios:

Build Instructions

DcaPal does not store any user data. But if you are still concerned for your privacy, you can build and run it on your machine.

Start Docker environment

  • Setup the .env file
cp dcapal-backend/.env.example dcapal-backend/.env
  • Setup a password for the db and the JWT secret (you can use openssl rand -base64 32 to generate a random string) in the new .env file
POSTGRES_PASSWORD=<replace-with-your-pwd>JWT_SECRET=<generated_secret>
  • Start the Docker environment
make dev-up

(Note: if you're using a Mac with an ARM processor, you should replace (in the docker-compose dev file) Cadvisor's image version with gcr.io/cadvisor/cadvisor:v0.47.1 and set platform: linux/aarch64)

Run DcaPal backend

Prepare dcapal.yml config file

cd dcapal-backend cp config/dcapal/dcapal.yml dcapal.yml

Compile and start backend service

cargo run --release

Run DcaPal frontend

Build DcaPal Optimizer

cd dcapal-optimizer-wasm curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh wasm-pack build --release

Install NPM dependencies. Note: this is installing dcapal-optimizer-wasm package as well.

cd ../dcapal-frontend npm install # Install dcapal-optimizer-wasm pkg as well

Run frontend server

npm run start

Architecture

flowchart LR Frontend[Frontend] ---|"/api/external/search?q={query}<br>/api/external/chart/${symbol}"|nginx[nginx] subgraph dcapal.com nginx---TradFiProvider[TradFi Provider] nginx---Backend[Backend] Backend---CryptoProvider[Crypto Provider REST API] Backend---|"/assets/fiat<br>/assets/crypto<br>/price/{base}?quote={quote}"|Redis[Redis] end 
Loading

Contributing

Contributions and suggestions about how to improve this project are welcome! Please follow our contribution guidelines.

Thanks to all Contributors ❤️

Born as a personal Sunday morning project, DcaPal would have never grown so much without the help of heros willing to contribute with their time and work. Thank you very much ya all!

Missing contributors

About

BalanceBot is Build your portfolio, define allocations, and let the algorithm handle the rest — making investing simple, automated, and stress-free.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6