This proposal has been approved and the Eclipse Novamoon project has been created.
Visit the project page for the latest information and development.

Eclipse Novamoon

Friday, January 21, 2022 - 07:03 by Olivier Picciotto
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Created
Background

Low Code platforms are now more than trendy.  Providing a development environment used to create application software through a graphical user interface instead of traditional hand-coded computer programming,  a low-coded platform may produce entirely operational applications.

According to gartner 65% of Business applications will be developped using low code technologies. see

https://www.gartner.com/en/newsroom/press-releases/2021-02-15-gartner-forecasts-worldwide-low-code-development-technologies-market-to-grow-23-percent-in-2021. 

Today, several platforms are leading the market, but they all lack openness, they have some vendor lock-in issues including sometimes a strong link to a specific cloud offering.

Scope

Eclipse NovaMoon provides an open source low code platform with all the similar features as the main proprietary low-code platforms, with a goal to help companies to accelerate their digital transformation. 



The application platform runs inside a container (Apache Tomcat based web application) and applications are edited using an Eclipse based IDE,  and in the future, Theia IDE

Description

Eclipse Novamoon offers a full stack low code platform providing all services to build business applications :

  • Low Code back end flows
  • Low code Data access layers to SQL
  • Low Code REST API Connectors (Including Swagger Definition imports)
  • REST API Generator for back end flows (Including the Swagger Definition portal)
  • Low Code Font End Responsive UI Builder
  • Low Code Font End Action Flows
  • Angular Code Generators
  • Android / Apple APK/ IPA package generators
  • PWA Generators
  • Eclipse IDE Plugin to Author Low Code projects

Novamoon Architecture

The platform can hold many projects, isolated by the URL with common requesters, but they can do internal calls to each other.

Custom REST APIs can also be declared to map HTTP calls to any project API. A project uses a YAML based description that configures all technical objects used by the back-end core and the front-end generator. This YAML based description allows usage of source control like GIT.

The back-end YAML descriptor configures properties of Java objects that run on a performance optimized JVM (now Java 17). Java is a robust and optimized stack for years.

The front-end YAML descriptor configures properties of Java or JSON objects that generate all the complex client side (HTML / Typescript / NPM package) without writing a line of code.

A CI module (ready to use with Gradle and CI platforms) allows users to generate and to perform production builds of their front-end applications, then deploy the whole project (front+back) to the integration or production back-end server.

Novamoon Eclipse IDE

  • The IDE is based on an Eclipse Plugin providing all the views and editors to author LowCode projects :
  • Project View listing all projects and Low Code Objects
  • Property view to edit any object property
  • Console views to display logs and other useful information
  • Palette Views to allow user to Drag & Drop object in the project view or directly on the App Canvas
  • Source picker views to allow user to bind data from back low code steps on to another or to bind data from back flows to frontend UI objects
  • Connector Editors to Display Connector data

Novamoon Frontend Low Code

NovaMoon IDE allows you to create a live angular based application on your side browser. Every change is generated, built and loaded in seconds and lives like the production application.

Code Generated on the front end is Standard Angular 13.XX + Type Script Code including all the necessary frameworks.

With low-code objects from the Palette, users can invoke back-end service and bind  each parameter without coding. The call is performed using an integrated SDK and returned values can in turn be binded to any Ul objects or chained to other actions.

The IDE does live builds for development but can also perform production builds and deploy them to a back-end server with a simple 2 clicks process.

Production builds and deployment can also be performed after a GIT push and a CI/CD configured to run the ready-to-use Gradle tasks for build and deploy.

Users have the capacity to customize any part of the code by adding CustomAction (TypeScript code)  and by implementing some custom handlers directly in the application classes. NovaMoon also brings a unique Component architecture that enables some Low Code components to be reused in the same projects or within cross referenced projects.

All iOS / Android builds are automatically handled by the Gradle build tasks or directly by the IDE.

Why Here?

The eclipse Foundation is the perfect place for low code platforms as Eclipse has a long history about application development, and the current Novammon project IDE is based on Eclipse IDE as an Eclipse Plugin.

Project Scheduling

We expect the first initial contribution to be done mid february 2022.  

Future Work

In a  first step Convertigo Employees will contribute to the novamoon platform, to extends customization features and prepare the community to contribute to the project. Next, Theia studio will be integrated to be the next Low Code Authoring Tool.

Initial Contribution

Novamoon initial contribution will be done by transfering the Convertigo Open Source Low Code Platform core  from current AGPL to EPL 2..0 Licences.

Source Repository Type