{"id":24895397,"url":"https://github.com/albertosantini/conpa","last_synced_at":"2025-12-16T21:43:07.340Z","repository":{"id":468686,"uuid":"2469044","full_name":"albertosantini/conpa","owner":"albertosantini","description":"Asset Allocation application","archived":true,"fork":false,"pushed_at":"2025-03-15T12:23:55.000Z","size":5312,"stargazers_count":82,"open_issues_count":0,"forks_count":19,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-23T03:41:28.625Z","etag":null,"topics":["asset-allocation","finance","optimization","portfolio-optimization"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/albertosantini.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2011-09-27T16:48:00.000Z","updated_at":"2025-03-15T12:24:22.000Z","dependencies_parsed_at":"2024-04-09T22:54:16.179Z","dependency_job_id":"90f5071b-13be-416b-8b41-1a63dedd4e0b","html_url":"https://github.com/albertosantini/conpa","commit_stats":{"total_commits":606,"total_committers":4,"mean_commits":151.5,"dds":"0.14026402640264024","last_synced_commit":"9e792170ce41557744316b0b1025ce83aac8aeb5"},"previous_names":["albertosantini/conpa","albertosantini/node-conpa"],"tags_count":97,"template":false,"template_full_name":null,"purl":"pkg:github/albertosantini/conpa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albertosantini%2Fconpa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albertosantini%2Fconpa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albertosantini%2Fconpa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albertosantini%2Fconpa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/albertosantini","download_url":"https://codeload.github.com/albertosantini/conpa/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albertosantini%2Fconpa/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279178920,"owners_count":26120317,"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-10-16T02:00:06.019Z","response_time":53,"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":["asset-allocation","finance","optimization","portfolio-optimization"],"created_at":"2025-02-01T19:18:24.857Z","updated_at":"2025-10-16T10:30:55.939Z","avatar_url":"https://github.com/albertosantini.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"CONPA\n=====\n\nConPA is a complete stack for an asset allocation application.\n\nConPA is a single page app with the following components: the asset search,\nthe list of assets, the basket info, the assets stats and the dashboard of\nportfolios.\n\nTo fill the basket, the user needs to add an asset, using the autocomplete\nsearch: typing the name or the symbol of an asset, the autocomplete component\nsuggests a few assets. When the user selects an asset, it is added to the\nbasket, displaying the symbol.\n\nIn the meantime for the last asset added to the basket, the app provides the key\nstatistics.\n\nWhen the basket contains at least three assets, the basket is optimized,\ndisplaying the optimal weights of the assets.\n\nThere is also a dashboard of portfolios. It contains the stats of all portfolios\ncreated by the users: last created portfolios, best/worst performing portfolios,\nhigh/low risk profile portfolios and high/low return profile portfolios.\n\nInstallation\n============\n\nAfter cloning the project, install the dependencies and execute sql in `db`\nfolder on Supabase instance.\n\n- `npm run dev` to locally run the web server\n\nNotes\n=====\n\n- Sometimes the weights of the optimal portfolio (To Date or Year To Date) are zeroes:\nthis is due to a problem retrieving the historical prices.\n\n- Setting a Supabase instance, you need to use the environment variables:\n`SUPABASE_URL` and `SUPABASE_KEY`.\n\n- Optionally, you may add a Rserve configuration (local or remote). If Rserve is\nnot configured, ConPA uses a javascript implementation for the optimization.\n\n- ConPA [Sequence Diagram](http://www.websequencediagrams.com/cgi-bin/cdraw?lz=Q29uUEEtPk5vZGVKUzogbmF2aWdhdGlvbgphbHQgABkFIGJhY2tlbmQgd2l0aCBqcyBjYWxjCiAgICBub3RlIG92ZXIgADoGABAFABMGZGUtY29ucGEgAAYOZmluYW5jZQAbDnF1YWRwcm9nAE8FZW5kAFMFCmVsc2UAbRRSIGNsb3VkAF4jcmlvIChSc2VydmUgYWRhcHRlcikAVg4gICAAgTQHLT4AUQVudW1iZXJzLmNvbTogZ2V0IG9wdGltYWwgcG9ydGZvbGlvABEjcGVyZm9ybWFuY2VzAEAjaW1wbGllZCB2b2xhdGlsaXR5AIJODwCBChAAgl4JAIFWBgCCbQl0c2VyaQBsBwAaBUpTT05JTwCBYRIAgVsQLQCDdgsAgXwFIGNydW5jaGluZyByZXNwb25zZQplbmQKAIIlBy0-AIQyBToAEwoKCgoKCgo\u0026s=napkin).\n\nHistory\n=======\n\n- ConPA rel. 0 (2008 - 2011): Jaxer + YUI.\n- ConPA rel. 1 (2011 - 2012): Node.js + YUI + Cloudant.\n- ConPA rel. 2 (2012 - 2015): Node.js + jQuery MVC + Cloudant.\n- ConPA rel. 3 (2015 - 2016): Node.js + AngularJS + Cloudant.\n- ConPA rel. 4 (2016 - 2018): Node.js + AngularJS + PouchDB / Cloudant.\n- ConPA rel. 5 (2018 - 2020): Node.js + hyperHTML / workway + PouchDB / Cloudant.\n- ConPA rel. 6 (2020 - 2021): Zeit Now + hyperHTML + PouchDB / Cloudant.\n- ConPA rel. 7 (2021 - 2023): Netlify (functions) + hyperHTML + Supabase.\n\n-- \"So long and thanks for all the fish!\"\n\nThere are two old videos about ConPA 0:\n[welcome](http://www.youtube.com/watch?v=ia_UVHtuBTM) and\n[tutorial](http://www.youtube.com/watch?v=xIwbc6lQzNk).\n\nDisclaimer\n==========\n\nNOT INVESTMENT ADVICE AND WILL LOSE LOTS OF MONEY SO PROCEED WITH CAUTION.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falbertosantini%2Fconpa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falbertosantini%2Fconpa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falbertosantini%2Fconpa/lists"}