Announcement
Evgeny Shvarov · Oct 8, 2020

Full Stack Contest Applications and Bonuses

Hi developers!

We introduced a set of bonuses to all the participants of the Ful Stack Contest

And here is the table of current bonuses accomplishments:

Project docker zpm unit-testing jdbc native API REST API Total Bonus
feeder 1 1       1 3
app admin 1 1       1 3
realworld-intersystems-iris 1 1 1     1 4
npm-iris 1 1       1 3
IRIS import manager 1       1   2
Video-Annotator 1       1   2
QEWD Conduit         1   1
iris-battleship             0
WebSocket_with_Fhir 1         1 2
restoreUI 1 1       1 3

The table will be updated upon changes in the apps.

Please fill free to comment if the situation is changed and you have any questions.

00
0 14 110 5

Replies

npm-iris now has ZPM support! wink

Install npm-iris is easier than ever! 

USER>zpm install npm-iris 
[npm-iris]      Reload START
[npm-iris]      Reload SUCCESS
[npm-iris]      Module object refreshed.
[npm-iris]      Validate START
[npm-iris]      Validate SUCCESS
[npm-iris]      Compile START
[npm-iris]      Compile SUCCESS
[npm-iris]      Activate START
[npm-iris]      Configure START
[npm-iris]      Configure SUCCESS
[npm-iris]      Activate SUCCESS

The table is updated accordingly!

qewd-conduit could easily be set up to run in the Dockerised version of IRIS.  For simplicity, the version I shipped assume you'd be running on a Windows machine on which IRIS was installed - the commonest set-up out there in my experience.  

It's somewhat mean to deny qewd-conduit a bonus for not using IRIS's built-in REST APIs - it clearly implements REST APIs against an IRIS system, just not using the proprietary IRIS-specific APIs.  I'm not sure why their use warrants a bonus if REST APIs can be implemented just as effectively by other means.

Rob! Correct me if I'm wrong, QEWD-conduit uses InterSystems node.js driver to talk to IRIS, right?  And QEWD-conduit gets Native API bonus for this.

The REST API description requests the usage of InterSystems REST API to have IRIS be a REST API server.

As for the iris docker bonus - we didn't manage yet to run QEWD-conduit with any iris-docker image available according to the QEWD  instruction.

So I mean - please show how to run qewd-conduit with iris on docker and the bonus is yours!

I'd need information on how you're supposed to customise the IRIS Docker container.  From past experience it's a pretty complex process, but perhaps that's changed?  To summarise what's needed for qewd-conduit, I'd need to be able to install Node.js on the running container, install a C++ compiler to its Linux environment, pull in the qewd-conduit repo files and modify the package.json and config.json files, then invoke npm install and npm start.  The listener port used by the QEWD process would also need to be mapped via the Docker container's run command -p directive. 

Actually, you even can avoid the customization at all,  just running the iris container together with the node.js server and frontend using docker compose.

But maybe this template will give you some thoughts.

For these to be "bonuses", they imply that there is something better about using them than doing the equivalent in other ways and using other technologies.  They therefore rig the competition to favour solutions that use what's built-in to IRIS, and penalise systems that still use IRIS but use other technologies for achieving the same results just as effectively.  So, for example, since qewd-conduit's logic is all in Node.js and not inside the IRIS programming environment, things like ZPM are not relevant, but I'm penalised for not using it.  Ditto the REST API within the IRIS programming environment.

And no, QEWD doesn't use the Native API for Node.js which is provided within IRIS, but uses the Open Source mg-dbx interface and the APIs it provides, so I guess that means qewd-conduit will be further penalised and lose that bonus too! :-)

I suppose it comes down to what is trying to be demonstrated and promoted in the competition, but it doesn't seem to me to be a level playing field for demonstrating what's possible in terms of a full-stack application that makes use of IRIS for data storage.

Rob, there is a logic of course behind every technology bonus of the contest. Technology bonuses are to encourage the usage of technology we invest in and approaches we consider promising and productive in development with InterSystems IRIS.

With REST-API, jdbc, native-api bonuses we support different ways to communicate with IRIS which we consider perspective and continuously improve. E.g. we don't engage the legacy CSP approach as you can see. How does mg-dbx talk to IRIS in the end?

Docker bonus is to support the "docker way" to develop and deploy solutions that we think is very promising.

ZPM bonus is to support the Package manager way to deploy applications built with ObjectScript.

Unit Testing is just helpful and I hope it's clear why we support it.

Hello,

The Feeder app uses %UnitTest.TestProduction class to run a test (TestControl)  that has intention to test another production via test messages being sent from File Passthrough Service to CSP Operation. I feel it should qualify for Unit Test bonus. Please reconsider. Reading your comments here, I see you do not encourage using legacy CSP approach. What is suggested to replace CSP? Is it Angular front end? Do you have tutorial for using Angular? Does it offer native API use in Angular?

CSP is fine and prooved its efficiency!

But if you compare it with REST - REST API is better, cause you have advantages of Open API (API First approach) and API Management.

You can take any frontend framework you like: vue.js, React JS, Angular, and many, many more.

Look at my project, it implements a backend, where frontend can be any, In my example it uses Vue by default, and Angular and React as option. Frontend, is that something, that completely not related to InterSystems at all. You can do it in any way you like. In project RealWorld you can find lots of realizations of exactly the same frontend. And any of this realization can be used with any of realization of backend, and in our case, it can be IRIS as well. And this project is very cool in case, when you would like to see, how to do the same in a different way.