{"id":14421400,"url":"https://github.com/dcapal/dcapal","last_synced_at":"2025-08-25T06:31:01.291Z","repository":{"id":151144733,"uuid":"568543028","full_name":"dcapal/dcapal","owner":"dcapal","description":"DcaPal is a free, no registration, online tool to help you keep your portfolio balanced with dollar cost averaging investments","archived":false,"fork":false,"pushed_at":"2025-08-18T21:27:45.000Z","size":3893,"stargazers_count":80,"open_issues_count":35,"forks_count":14,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-08-20T03:08:02.575Z","etag":null,"topics":["crypto","dollar-cost-averaging","hacktoberfest","investment","personal-finance","portfolio-management","portfolio-optimization"],"latest_commit_sha":null,"homepage":"https://dcapal.com","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dcapal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-11-20T21:07:12.000Z","updated_at":"2025-08-19T08:58:20.000Z","dependencies_parsed_at":"2023-10-15T14:58:59.804Z","dependency_job_id":"50ce1865-634e-43cc-8a04-f350cc9502ad","html_url":"https://github.com/dcapal/dcapal","commit_stats":null,"previous_names":["dcapal/dcapal"],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/dcapal/dcapal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcapal%2Fdcapal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcapal%2Fdcapal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcapal%2Fdcapal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcapal%2Fdcapal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dcapal","download_url":"https://codeload.github.com/dcapal/dcapal/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcapal%2Fdcapal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272013576,"owners_count":24858475,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-25T02:00:12.092Z","response_time":1107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["crypto","dollar-cost-averaging","hacktoberfest","investment","personal-finance","portfolio-management","portfolio-optimization"],"created_at":"2024-08-29T22:01:25.898Z","updated_at":"2025-08-25T06:31:01.284Z","avatar_url":"https://github.com/dcapal.png","language":"Rust","funding_links":[],"categories":["Applications"],"sub_categories":["Utilities"],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://dcapal.com\"\u003e\u003cimg src=\"dcapal-frontend/images/dcapal-og-bg-white-focused.jpg\" width=\"800\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://dcapal.com\"\u003e\u003cimg src=\"https://img.shields.io/website?label=dcapal.com\u0026url=https%3A%2F%2Fdcapal.com\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/dcapal/dcapal/actions/workflows/build-test.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/dcapal/dcapal/build-test.yml\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/dcapal/dcapal/blob/master/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/dcapal/dcapal\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## About\n\n[DcaPal](https://dcapal.com) is a pragmatic **Dollar Cost Averaging tool** for passive investors like me:\nfinancially-educated people managing their own portfolios of not-too-many assets replicating major world indices.\n\nI was facing a common problem: it's that time of the month, got some savings to invest and have to split them across my\nportfolio assets. *How the heck can I do it so that my portfolio stays balanced?*\n\nHence DcaPal. You come here every week/month/quarter, build your portfolio, define asset allocation in percentage, input\nhow much you want to invest and **let the algorithm do the splitting for you**.\n\n## Demo\n\nhttps://github.com/user-attachments/assets/ba80874e-5b78-440d-a055-7db8fbfe7084\n\n## Getting started\n\nYou can start using [DcaPal](https://dcapal.com) right away. It's free. No registration required.\n\n**Build** your own portfolio or, if you don't know where to start, explore our **Demo** portfolios:\n\n- [60/40 Portfolio](https://dcapal.com/demo/60-40)\n- [All-seasons Portfolio](https://dcapal.com/demo/all-seasons)\n- [21Shares Crypto Basket 10 (HODLX)](https://dcapal.com/demo/hodlx)\n\n## Build Instructions\n\nDcaPal does not store any user data. But if you are still concerned for your privacy, you can build and run it on your\nmachine.\n\n**Start Docker environment**\n\n- Setup the `.env` file\n\n```bash\ncp dcapal-backend/.env.example dcapal-backend/.env\n```\n\n- Setup a password for the db and the JWT secret (you can use `openssl rand -base64 32` to generate a random string) in\n  the new `.env` file\n\n```dotenv\nPOSTGRES_PASSWORD=\u003creplace-with-your-pwd\u003e\nJWT_SECRET=\u003cgenerated_secret\u003e\n```\n\n- Start the Docker environment\n\n```bash\nmake dev-up\n```\n\n(Note: if you're using a Mac with an ARM processor, you should replace (in the docker-compose dev file) Cadvisor's image\nversion with gcr.io/cadvisor/cadvisor:v0.47.1 and set platform: linux/aarch64)\n\n**Run DcaPal backend**\n\nPrepare `dcapal.yml` config file\n\n```bash\ncd dcapal-backend\ncp config/dcapal/dcapal.yml dcapal.yml\n```\n\nCompile and start backend service\n\n```bash\ncargo run --release\n```\n\n**Run DcaPal frontend**\n\nBuild DcaPal Optimizer\n\n```bash\ncd dcapal-optimizer-wasm\ncurl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh\nwasm-pack build --release\n```\n\nInstall NPM dependencies. Note: this is installing `dcapal-optimizer-wasm` package as well.\n\n```bash\ncd ../dcapal-frontend\nnpm install # Install dcapal-optimizer-wasm pkg as well\n```\n\nRun frontend server\n\n```bash\nnpm run start\n```\n\n## Architecture\n\n```mermaid\nflowchart LR\n    Frontend[Frontend] ---|\"/api/external/search?q={query}\u003cbr\u003e/api/external/chart/${symbol}\"|nginx[nginx]\n    subgraph dcapal.com\n        nginx---TradFiProvider[TradFi Provider]\n        nginx---Backend[Backend]\n        Backend---CryptoProvider[Crypto Provider REST API]\n        Backend---|\"/assets/fiat\u003cbr\u003e/assets/crypto\u003cbr\u003e/price/{base}?quote={quote}\"|Redis[Redis]\n    end\n```\n\n## Contributing\n\nContributions and suggestions about how to improve this project are welcome! Please follow\nour [contribution guidelines](CONTRIBUTING.md).\n\n## Thanks to all Contributors ❤️\n\nBorn as a personal Sunday morning project, DcaPal would have never grown so much without the help of heros willing to\ncontribute with their time and work. Thank you very much ya all!\n\n\u003ca href=\"https://github.com/dcapal/dcapal/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=dcapal/dcapal\"  alt=\"Missing contributors\"/\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdcapal%2Fdcapal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdcapal%2Fdcapal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdcapal%2Fdcapal/lists"}