Skip to content

Open Lowcode Developper Guide

openlowcode edited this page Feb 29, 2020 · 25 revisions

Table of Content

Architecture

Open Lowcode framework allows to build quickly an application. An application is made of different modules. A module is composed of coupled data objects. A data object is made of “bricks”: fields and properties.

Application Architecture

When a data object is defined, the Gallium framework will build automatically all the action and pages necessary for the application to work. Just define your data objects, and you get a working application. Gallium uses a three-tier architecture with:

  • the database storing all database
  • An application server managing business logic and security
  • A client that displays pages from server and launches actions to the server

Execution Architecture

Development Environment

To develop an Open Lowcode Application, you need a java project with the following content

Library Jar Name IDE Client Server
Derby database Derby.jar Yes (for local tests)
Server JAR OLcServer.jar Yes Yes
Client JAR OLcClient.jar Yes Yes Yes (for download during client upgrade procedure)
Javamail library Javax.mail.jar Yes Yes
Apache PDF Library commons-logging.jar
fontbox-2.0.7.jar
pdfbox-2.0.7.jar
Yes Yes Yes
Apache POI (to generate and read spreadsheets) commons-collections4-4.2.jar
commons-compress-1.18.jar
poi-4.0.1.jar
poi-ooxml-4.0.1.jar
poi-ooxml-schemas-4.0.1.jar
xmlbeans-3.0.2.jar
Yes Yes
Javafx runtime Jfxrt.jar Yes Yes

In your IDE, for every application module, the following folders will be used. In the example below, the module path is defined as bugkiller.app. An application is made of:

  • A model file that is written by the user. If you only assembly bricks on objects, you just have to write this file1
  • Automatically Generated classes: they are built by running the generation script on the model, and contain all files necessary for the application to work.
  • You may need to develop your own custom actions, custom pages and utilities if you declare some in the model file

Automatic generation is launched for a package by running the java class Module ( org.openlowcode.design.module.Module ) with as a unique argument the class of your module model (e.g. bugkiller.model.BugKiller ).

To run the Open Lowcode server, you need to deploy the compiled classes of your module on the server. There is no need to deploy the classes on the client. The diagram below showns an example of the structure of an Open Lowcode project in an IDE

IDE Structure Example

There is a risk your module model is overwritten at code generation if it is present in the core folder of your module, and has the same class name as the module (e.g. your root folder is bugkiller.app, and your module name is Bugkiller: you should not put your model in the path bugkiller.app.Bugkiller).

Declaration of Data Objects

Data objects

Fields

Properties

Fields and Properties priorities

Specific object Layout

Privileges

Development on Open Lowcode

Utilities

Actions

Pages

Clone this wiki locally