{ "info": { "author": "Alen Siljak", "author_email": "alen.siljak@gmx.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Other Environment", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# GnuCash Portfolio Web UI\n\nThe code is written in Python on the back-end, and HTML/JavaScript/CSS on the front-end.\n\nAll the dependent libraries are listed in `requirements.txt` for Python and `package.json` for node.\n\n## Set Up\n\nTo install the required development and runtime dependencies, run\n\n```console\npip install -r requirements.txt\n```\n\nNpm's package.json is in the app directory. Go to app directory and run\n\n```console\nnpm install\n```\n\nTo compile all client-side (.scss, .js) code, run\n\n`npm run build`\n\nin the \"app\" directory. This will compile production-ready images, styles, and scripts into `/static` folder.\n\n`npm run dev` will do the same but for development. Meaning, the source code will not be minimized and webpack will continue monitoring the folders for any changes to the source files.\n\n### CSS\n\nCustom SCSS is compiled with Webpack (when `npm run build` is executed).\n\nVendor CSS is bundled with Flask Assets automatically when the site starts.\n\n### JS\n\nCustom JavaScript code is compiled through Webpack.\n\nVendor libraries are currently bundled through Flask Assets. It collects the vendor code from installed development node modules. Make sure all the npm dependencies are installed in order for this to work.\nThe bundle will be built automatically during the app runtime. No additional actions required by the user.\n\n## Development\n\nFor development, run the web site:\n`python app.py`\n\nand compile and monitor the client-side code with\n\n`npm run dev`\n\n## Running\n\nHow to run the web app.\n\n### Desktop Application\n\nThe installation will create a command-line application called `gnucash-portfolio`. This will start a desktop application, using pywebview to start a cross-platform web view for the Flask Python web application.\n\n### First-Time Setup\n\n- Config:\n In order to run the app, copy `config/settings.json.template` into `config/settings.json`. The options can be customized via the Settings link in the web app.\n\n### Execution\n\nAll the functionality is provided through a web UI. Besides the desktop application, the server can be run with Python using\n\n`py gnucash_portfolio_webui`\n\nfrom the root folder.\n\nThere are several ways to run the web app:\n\n1. Run `py gnucash_portfolio_webui` directly,\n2. Run the \"run\" task from VS Code,\n3. Run \"run.py run\" (This script was created so that the app could be debugged with Python extension for Visual Studio Code).\n4. Run `gnucash_portfolio_webui.run.main()`\n\n#### Server\n\nTo run the web server only, go into gnucash-portfolio-webui directory and execute `flask run`.\n\nRun `npm run build` to compile the UI for production version.\n\n### Lint\n\n- run `pylint app/` to run lint on the web app,\n\n### Debugging\n\nThe configuration for Flask debugging can be set in environment variables:\n\n```\nFLASK_APP=gnucash_portfolio_webui/app\nFLASK_ENV=development\n```\nSee run-server.sh script.\nAdd the variables to vscode Python extension settings.\n\n# Web Application\n\nThis project contains the web application implemented in Flask. It is intended to be used as the full GUI for accepting user input (parameters) and displaying the output.\n\nThe app is located in the `/app` directory.\n\nIt is intended to run on a desktop workstation, with direct access to the GnuCash book file, stored as an SQLite database.\n\n## Benefits\n\nConsidering several factors below, it might be preferrable to use an independent application to work with Portfolio then to provide the UI functionality through GnuCash reports using gnucash_utilities project. This approach would utilize the gnucash book/database directly.\n\n- Ease of development \nDeveloping reports on piecash stack seems fairly straightforward and much simpler than Scheme, GnuCash reporting engine. The control of the output is also easier by directly editing HTML templates and CSS styles.\n\n- Performance \nComparing the output through GnuCash reports on Windows to the output produced using the Python stack (flask + jinja HTML output + piecash), the advantage is significantly on the side of the Python components.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/MisterY/gnucash-portfolio-webui", "keywords": "gnucash,finance,portfolio,webui", "license": "", "maintainer": "", "maintainer_email": "", "name": "gnucash-portfolio-webui", "package_url": "https://pypi.org/project/gnucash-portfolio-webui/", "platform": "", "project_url": "https://pypi.org/project/gnucash-portfolio-webui/", "project_urls": { "Homepage": "https://github.com/MisterY/gnucash-portfolio-webui" }, "release_url": "https://pypi.org/project/gnucash-portfolio-webui/1.3.6/", "requires_dist": [ "flask", "flask-assets", "gnucash-portfolio" ], "requires_python": "", "summary": "Web UI for GnuCash Portfolio", "version": "1.3.6" }, "last_serial": 4518413, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "d469504632f6d135c3a4191c5c857088", "sha256": "719ee052f00c747147929d2642523fca9932da634d403f21d6c1eb6c25df49ba" }, "downloads": -1, "filename": "gnucash-portfolio-webui-0.0.1.tar.gz", "has_sig": false, "md5_digest": "d469504632f6d135c3a4191c5c857088", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4666, "upload_time": "2018-04-25T08:30:14", "url": "https://files.pythonhosted.org/packages/57/94/babc683b8f9e6e7d3b9669994006e0d59dd09e0321c03f9f5d8812e5be38/gnucash-portfolio-webui-0.0.1.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "cfbfdd59882eb61c366b9c2d66343e03", "sha256": "8cc878d5a49cf7609d5739e8d2025776f3e95eda449c58a0f05c736a6569c6f7" }, "downloads": -1, "filename": "gnucash-portfolio-webui-0.1.0.tar.gz", "has_sig": false, "md5_digest": "cfbfdd59882eb61c366b9c2d66343e03", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4664, "upload_time": "2018-04-26T10:39:53", "url": "https://files.pythonhosted.org/packages/55/3e/0a4f19e2a72dd3ba3e8c8ab6de4bfbcada13ab9e22291079ccdadf5100ee/gnucash-portfolio-webui-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "b5794e1f792613015a19e9a84296277f", "sha256": "516e973b027e1ca7c7e83522722b325ba6c69ac2e5e545472f71141c5c3019d2" }, "downloads": -1, "filename": "gnucash-portfolio-webui-0.2.0.tar.gz", "has_sig": false, "md5_digest": "b5794e1f792613015a19e9a84296277f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4735, "upload_time": "2018-06-30T23:00:25", "url": "https://files.pythonhosted.org/packages/08/d6/8723dc3a85423647f9d89c9054c403a88f4a0d728888c5a82dce2faf4af1/gnucash-portfolio-webui-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "850f7316d17b09cd8967f43f6e962929", "sha256": "26907c2218c7758aef7121424518ce7f84668eac7a1757fcca2ea48fd45c7dfa" }, "downloads": -1, "filename": "gnucash-portfolio-webui-0.3.0.tar.gz", "has_sig": false, "md5_digest": "850f7316d17b09cd8967f43f6e962929", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4781, "upload_time": "2018-07-05T08:30:30", "url": "https://files.pythonhosted.org/packages/75/63/3c10d52e1f6730b3859a24f84781acedb4ee144b20c3e95d279f2120d8af/gnucash-portfolio-webui-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "8840eeaefa528e87ad591ca66984b881", "sha256": "ecfdcba1ad24a93c025ebc0bc0bd4fe14ab2bb85d8db1c407e4153e44c1a2259" }, "downloads": -1, "filename": "gnucash-portfolio-webui-0.4.0.tar.gz", "has_sig": false, "md5_digest": "8840eeaefa528e87ad591ca66984b881", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4762, "upload_time": "2018-09-26T20:41:14", "url": "https://files.pythonhosted.org/packages/14/a0/a9e9cff7e0dc250c1803a8a41341f212ffdcf7dd0f7d52f400c96f91c998/gnucash-portfolio-webui-0.4.0.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "bb6c4946ef82adefd253ec604fc17aa4", "sha256": "5b3b5f72d38cd7152a25f4345d596d68e94bbabcc1b6a0c855f18732c443137c" }, "downloads": -1, "filename": "gnucash-portfolio-webui-1.1.2.tar.gz", "has_sig": false, "md5_digest": "bb6c4946ef82adefd253ec604fc17aa4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5595, "upload_time": "2018-09-28T20:19:59", "url": "https://files.pythonhosted.org/packages/1f/ae/d93808f91242658283108a9549f7d7956e150c34fed8be036949dc1222c2/gnucash-portfolio-webui-1.1.2.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "0e12ffb4551ac1cbbd4efb9efdf09986", "sha256": "f369e968c42befa54b994e6676d81d0d4825de3c5ce30b6f899313ba7aacbd51" }, "downloads": -1, "filename": "gnucash-portfolio-webui-1.2.0.tar.gz", "has_sig": false, "md5_digest": "0e12ffb4551ac1cbbd4efb9efdf09986", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5798, "upload_time": "2018-10-02T10:43:25", "url": "https://files.pythonhosted.org/packages/77/10/f37f50e824b84e79dc7fa34d0ef733d4a76dcf4e8c5569d197c28191403c/gnucash-portfolio-webui-1.2.0.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "d4bab46ad4780c3435520add661f6767", "sha256": "b09b6fd19c166111ae3ef3d7aa4347c4b3276dba604beafa8f90bf7da94377ce" }, "downloads": -1, "filename": "gnucash-portfolio-webui-1.2.2.tar.gz", "has_sig": false, "md5_digest": "d4bab46ad4780c3435520add661f6767", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5806, "upload_time": "2018-10-25T11:45:45", "url": "https://files.pythonhosted.org/packages/f6/06/9dc4b184d79700c1514c00ef19e5eca76e1d1a17a0fdd433d4121247895c/gnucash-portfolio-webui-1.2.2.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "40f927f71983ba9fc54fbfe43cc261e6", "sha256": "6b2c08bfc1917c6f807c750e6cefaf2de1ef699e77ed699242865cbf4a30b522" }, "downloads": -1, "filename": "gnucash-portfolio-webui-1.3.0.tar.gz", "has_sig": false, "md5_digest": "40f927f71983ba9fc54fbfe43cc261e6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5864, "upload_time": "2018-11-20T08:37:52", "url": "https://files.pythonhosted.org/packages/8a/89/8f124d7e6ed689230fda76cce0e6c60862260866e08c2f5d5f1d93bd1584/gnucash-portfolio-webui-1.3.0.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "ea5c5e2409f01b8eb2fb91f5223f9015", "sha256": "c9b8692313342bd4036e910d8b0de838f2886929f281a1fa32bae28fcb85bff8" }, "downloads": -1, "filename": "gnucash-portfolio-webui-1.3.1.tar.gz", "has_sig": false, "md5_digest": "ea5c5e2409f01b8eb2fb91f5223f9015", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5836, "upload_time": "2018-11-20T11:06:56", "url": "https://files.pythonhosted.org/packages/ee/20/1e95e4d4ef7ea0ab76f093d2667ff52ff363d8da612790c5469eabe28c0b/gnucash-portfolio-webui-1.3.1.tar.gz" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "be18f3dfaf7a6ff256bc8a0990aacab9", "sha256": "51a0dd398577b824feb6cb4a54e8d5b04a15b5b540d4af20a4739227f5ba3674" }, "downloads": -1, "filename": "gnucash-portfolio-webui-1.3.2.tar.gz", "has_sig": false, "md5_digest": "be18f3dfaf7a6ff256bc8a0990aacab9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5833, "upload_time": "2018-11-20T11:12:17", "url": "https://files.pythonhosted.org/packages/31/97/0242adc89227667cf811b3abfa23d49bbf62bba597fd643721d445ac9c81/gnucash-portfolio-webui-1.3.2.tar.gz" } ], "1.3.3": [ { "comment_text": "", "digests": { "md5": "24c6e4eba6865ad912b4fde0a469ae8d", "sha256": "f56f7da3dcf23755f0d16aad6d3e5b71da325ee3971678581a990719e8b0792f" }, "downloads": -1, "filename": "gnucash-portfolio-webui-1.3.3.tar.gz", "has_sig": false, "md5_digest": "24c6e4eba6865ad912b4fde0a469ae8d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22387, "upload_time": "2018-11-20T11:26:01", "url": "https://files.pythonhosted.org/packages/6b/6f/a694ddfed67b48273f8e4137bb51c02f2bd443a892328a42fdf994f7db79/gnucash-portfolio-webui-1.3.3.tar.gz" } ], "1.3.4": [ { "comment_text": "", "digests": { "md5": "d1545a5a56ee6a7c90851f96a8ffa86f", "sha256": "ca08cb07ff13a743d720e4335212b5d4cbd8bc340d2c5c52fa078928859f3273" }, "downloads": -1, "filename": "gnucash_portfolio_webui-1.3.4-py3-none-any.whl", "has_sig": false, "md5_digest": "d1545a5a56ee6a7c90851f96a8ffa86f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 44705, "upload_time": "2018-11-22T21:26:28", "url": "https://files.pythonhosted.org/packages/c5/16/df54917f780bd0c2d3858173088d432a2eff61ab8e79305267cecbe838d6/gnucash_portfolio_webui-1.3.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b034da79fe405cbb8b998fbb3e7f3c81", "sha256": "f13b56ecf8a2a2057ba7eea246c2e0c7eb572b569cd2ac8de69776ff9c70a7e8" }, "downloads": -1, "filename": "gnucash-portfolio-webui-1.3.4.tar.gz", "has_sig": false, "md5_digest": "b034da79fe405cbb8b998fbb3e7f3c81", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22793, "upload_time": "2018-11-22T21:26:30", "url": "https://files.pythonhosted.org/packages/9c/17/13b58df61fbe9c24b34cbbdc2d2e0d94898e4b9af50645302479c6ff79d9/gnucash-portfolio-webui-1.3.4.tar.gz" } ], "1.3.5": [ { "comment_text": "", "digests": { "md5": "bb0291cb924448ba7019d7ca0df60513", "sha256": "b9b3619b00b0eb2869f0a229f24392b891f8eb5d896791855c0eb2c3dadd7b25" }, "downloads": -1, "filename": "gnucash_portfolio_webui-1.3.5-py3-none-any.whl", "has_sig": false, "md5_digest": "bb0291cb924448ba7019d7ca0df60513", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 762108, "upload_time": "2018-11-22T21:37:37", "url": "https://files.pythonhosted.org/packages/2d/ec/e9664e265e374d6417456b9d9bc305b604b9445105c1583c7efc0d12b746/gnucash_portfolio_webui-1.3.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ce99fb623c2010cd03c69a0bb2099759", "sha256": "7c49562132d06e2502e40e1e669de9c09867d58260cf7ea7dad634cc70cfcf02" }, "downloads": -1, "filename": "gnucash-portfolio-webui-1.3.5.tar.gz", "has_sig": false, "md5_digest": "ce99fb623c2010cd03c69a0bb2099759", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 707512, "upload_time": "2018-11-22T21:37:40", "url": "https://files.pythonhosted.org/packages/d4/b7/5861f40b5e5e1fb9a9fb3c04bc341f099840bb30b0f4bbd64f4e1304a8f9/gnucash-portfolio-webui-1.3.5.tar.gz" } ], "1.3.6": [ { "comment_text": "", "digests": { "md5": "012eea12a62516032f04064614ef0784", "sha256": "d7dab162a4b73bb0d4dbbd5e972575341d1822e469d4bd4dcb531aa8e5d642c3" }, "downloads": -1, "filename": "gnucash_portfolio_webui-1.3.6-py3-none-any.whl", "has_sig": false, "md5_digest": "012eea12a62516032f04064614ef0784", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 974819, "upload_time": "2018-11-22T21:48:24", "url": "https://files.pythonhosted.org/packages/7f/c8/fe7c149ac5200462d5486779a2808be9aea969e82a2b650b6dbcd3a48fb0/gnucash_portfolio_webui-1.3.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "434ec5f98c299f63d599ff368b7dee52", "sha256": "b2d94ec443d8caa08a808eebdbba91e5f73e00f044421799dc6de5fa35a3a006" }, "downloads": -1, "filename": "gnucash-portfolio-webui-1.3.6.tar.gz", "has_sig": false, "md5_digest": "434ec5f98c299f63d599ff368b7dee52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 915316, "upload_time": "2018-11-22T21:48:28", "url": "https://files.pythonhosted.org/packages/a0/ed/be44f4eb5015aedcff5b211b44b7f70accdd171ff36345bc16711c17f87d/gnucash-portfolio-webui-1.3.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "012eea12a62516032f04064614ef0784", "sha256": "d7dab162a4b73bb0d4dbbd5e972575341d1822e469d4bd4dcb531aa8e5d642c3" }, "downloads": -1, "filename": "gnucash_portfolio_webui-1.3.6-py3-none-any.whl", "has_sig": false, "md5_digest": "012eea12a62516032f04064614ef0784", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 974819, "upload_time": "2018-11-22T21:48:24", "url": "https://files.pythonhosted.org/packages/7f/c8/fe7c149ac5200462d5486779a2808be9aea969e82a2b650b6dbcd3a48fb0/gnucash_portfolio_webui-1.3.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "434ec5f98c299f63d599ff368b7dee52", "sha256": "b2d94ec443d8caa08a808eebdbba91e5f73e00f044421799dc6de5fa35a3a006" }, "downloads": -1, "filename": "gnucash-portfolio-webui-1.3.6.tar.gz", "has_sig": false, "md5_digest": "434ec5f98c299f63d599ff368b7dee52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 915316, "upload_time": "2018-11-22T21:48:28", "url": "https://files.pythonhosted.org/packages/a0/ed/be44f4eb5015aedcff5b211b44b7f70accdd171ff36345bc16711c17f87d/gnucash-portfolio-webui-1.3.6.tar.gz" } ] }