· Mar 21, 2022

Technical Bonuses for InterSystems IRIS Globals Programming Contest 2022

Hi Developers!

Here're the technology bonuses for the InterSystems IRIS Globals Contest 2022 that will give you extra points in the voting:

  • Data-model implementation - 5
  • Functional index implementation - 5
  • Data Move usage - 3
  • Embedded Python - 4
  • Docker container usage - 2 
  • ZPM Package deployment - 2
  • Online Demo - 2
  • First Article on Developer Community - 2
  • Second Article On DC - 1
  • Code Quality pass - 1
  • Video on YouTube - 3

See the details below.<--break-><--break->

Data-model implementation - 5 points
Introduce an application that provides an API to implement any new to InterSystems IRIS data model. E.g. columnar data store, time-series database, graph datastore, document store, key-value database.

    An API should contain at least the options to create/alter entities metadata, insert/update/delete data, query data, index data. 

    E.g. here is an example of iris-graph implementation (not finished and abandoned project). You are also welcome to fork it and finish the implementation for the contest.

    The implementation can also mimic any other database engine of such in IRIS, e.g. mimic MongoDB or Redis in IRIS. Examples: 

    The implementation should be "non-trivial" - e.g. CRUD API for key-value to globals will not be enough, but the implementation with the support of metadata management, indexing, and search/query will work.

    Functional Index Implementation - 5 points

    Introduce an implementation of Functional Index with globals and collect 5 extra points. DocumenationExample

    Data Move usage -3 points

    DataMove is a powerful feature for moving data from one database to another in a live environment, but it operates at a fairly low level. Adding a layer around it for easy archiving of table data, an interface to keep track of (potentially large numbers of) subscript-level mappings, etc.. would be examples of helpful utilities in the big global space.  

    <--break->Embedded Python - 4 points

    Use Embedded Python in your application and collect 4 extra points. You'll need at least InterSystems IRIS 2021.2 for it.

    Docker container usage - 2 points

    The application gets a 'Docker container' bonus if it uses InterSystems IRIS  running in a docker container. Here is the simplest template to start from.

    ZPM Package deployment - 2 points

    You can collect the bonus if you build and publish the ZPM(InterSystems Package Manager) package for your Full-Stack application so it could be deployed with:

    zpm "install your-multi-model-solution"

    command on IRIS with ZPM client installed. 

    ZPM client. Documentation.

    Online Demo of your project - 2 points
    Collect 2 more bonus points if you provision your project to the cloud as an online demo. You can do it on your own or you can use this template - here is an Example. Here is the video on how to use it.

    Article on Developer Community - 2 points

    Post an article on Developer Community that describes the features of your project and collect 2 points for the article.

    The Second article on Developer Community - 1 point

    You can collect one more bonus point for the second article or the translation regarding the application. The 3rd and more will not bring more points but the attention will all be yours.

    Code quality pass with zero bugs - 1 point

    Include the code quality Github action for code static control and make it show 0 bugs for ObjectScript. 

    Video on YouTube - 3 points

    Make the Youtube video that demonstrates your product in action and collect 3 bonus points per each.

    The list of bonuses is subject to change. Stay tuned!

    Good luck in the competition!

    Discussion (2)2
    Log in or sign up to continue

    Things I mentioned in the kickoff webinar:

    %SQL.AbstractFind/%Library.FunctionalIndex implementations:
    Semantic version index:
    Spatial index:
    Image color index:

    Inspiration for a project:
    Implement a hierarchical index that operates on a table with a self-referential field (e.g., an employee table with a manager field) to return (via a %SQL.AbstractFind implementation) all records above (directly/indirectly), below (directly/indirectly), or in the same tree (or graph - need to consider circular references) as a given record.