Initial Release
This app was developed using iris-fullstack-template. It consists of InterSystems IRIS REST API and Frontend Application.
It has Unit tests which could be run interactively, or using ZPM, or via Github CI.
It demoes the way to develop using Docker containers.
It demoes how to package the application in ZPM module and how to deploy it using ZPM.
I need a table of categories to create a budget for my personal finance.
I chose to use Streamlit for my frontend application to communicate with InterSystes IRIS.
Clone the repo, run:
docker-compose up -d
Run the application with URL: http://localhost:52773/csp/IRISAPP/index.html#/
Open IRIS terminal and run ZPM:
USER>zpm
zpm:USER>install "demo-coffeemaker"
Run the appliction in URL: http://yourserver:52773/csp/coffee/index.html#/
This repository has [U]nit Tests](https://github.com/intersystems-community/iris-fullstack-template/blob/787acb10efae8847e3084db26c3e4211bd5a753a/tests/UnitTest/Demo/coffeemaker.cls).
THere is a Github Actions CI workflow in this repo, which performs unit testing with every push to Github repository and fails if tests fail.
But you also can run the test script locally with:
IRISAPP>set ^UnitTestRoot="/irisdev/app/tests"
IRISAPP>do ##class(%UnitTest.Manager).RunTest(,"/nodelete")
Or with ZPM:
IRISAPP>zpm
zpm:IRISAPP>load /irisdev/app
zpm:IRISAPP>test demo-coffeemaker
I created a classMethod to run tests which I can remember:
IRISAPP>Do ##class(dc.iris.test).Run()
Review UnitTest results in URL: http://yourserver:52773/csp/sys/%25UnitTest.Portal.Indices.cls?$NAMESPACE=IRISAPP
This module is zpm-packaged, which means that it is described with module.xml and available in public repository and installable with:
zpm “install iris-budget”
docker compose up -d
docker exec -it iris-budget-iris-1 bash
irisowner@f71c77f15f28:~/irisbuild$ cd /irisdev/app/python/
irisowner@f71c77f15f28:/irisdev/app/python$ pip install streamlit
irisowner@f71c77f15f28:/irisdev/app/python$ streamlit run budget.py
View the Streamlit appliction in browser at http://yourserver:8501