Skip to content

DcaPal is a free, no registration, online tool to help you keep your portfolio balanced with dollar cost averaging investments

License

Notifications You must be signed in to change notification settings

leonardoarcari/dcapal

Repository files navigation

About

DcaPal is a pragmatic Dollar Cost Averaging tool for passive investors like me: financially-educated people managing their own portfolios of not-too-many assets replicating major world indices.

I was facing a common problem: it's that time of the month, got some savings to invest and have to split them across my portfolio assets. How the heck can I do it so that my portfolio stays balanced?

Hence DcaPal. You come here every week/month/quarter, build your portfolio, define asset allocation in percentage, input how much you want to invest and let the algorithm do the splitting for you.

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

cd dcapal-backend
docker compose -f docker-compose.yml -f docker/docker-compose.dev.yml up -d

(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

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!