Code Monkey home page Code Monkey logo

convertigo / convertigo Goto Github PK

View Code? Open in Web Editor NEW
292.0 21.0 62.0 101.93 MB

Convertigo is an open source Low Code platform including a No Code Application builder for full-stack mobile and web application development

Home Page: https://www.convertigo.com

License: Other

Shell 0.14% HTML 1.34% CSS 3.82% Java 64.04% JavaScript 26.32% Batchfile 0.01% XSLT 1.06% TypeScript 1.72% NSIS 0.03% Smarty 0.09% Dockerfile 0.05% SCSS 0.01% Svelte 1.36%
low-code-development-platform mobile-development microservices kubernetes ionic-framework angular convertigo no-code opensource

convertigo's Introduction

Convertigo Low Code & No Code mobile & Web Platform

Convertigo is an open source Low code & No Code platform for mobile & web application development and back-end as a service.

CircleCI

Convertigo Low Code Studio

Convertigo Community edition is an open source fullstack Low Code & No Code platform. The platform is used to build and run complex Cross-platform Enterprise Mobile and web apps in a few days. Convertigo platform is composed of several components:

  1. Convertigo Server: The back-end server MBaaS part. Handles back-end connectors, micro-services execution, offline data device synchronization and serves Mobile and PWA Web apps. Convertigo server can be downloaded from GitHub as a tomcat WAR file or run directly as containers from DockerHub
  2. Convertigo Studio: Runs on a Windows or a MacOS workstation, Eclipse based IDE, used to program MBaaS micro-services workflows and use the "Mobile Builder" to build Mobile apps UIs in Low code mode. Can be directly downloaded from GitHub
  3. Convertigo SDKs: Can be used with third party Mobile development tools such as Xcode (iOS) Android Studio (Android). SDKS are available on each platform standard repository (Bintray for Android, Cocoapods for iOS and NPM for Angular, ReactNative and Vue.js)
  4. Convertigo Forms: The No Code App Builder to build form based apps as PWAs or Web applications with a Web Based NoCode studio intented for non technical developpers (Citizen Developpers)

Convertigo Community edition brought to you by Convertigo SA (Paris & San Francisco). The platform is currently used by more than 150K developers worldwide, building enterprise class web and mobile apps.

convertigo-image

www.convertigo.com

License

Convertigo Community Edition is AGPL based.

Changelog

See CHANGELOG.md

convertigo's People

Contributors

avrahqedivra avatar charlesgrimont avatar dependabot[bot] avatar eragont06 avatar gregory-vorbe avatar julesg avatar lexinor avatar mathieu-francois avatar nadiamob avatar nathalie-lammelin avatar nicolas-albert avatar opicciotto avatar vincego avatar vnea avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

convertigo's Issues

New property to configure the current server Endpoint URL

For most production serveur, their is a frontal behind the tomcat and the public url cannot be know by convertigo.
But Convertigo need to know its own URL access (endpoint) for many operations.
Frontal can be configured to set special header to help the Convertigo to retrieve its own URL.
This isn't not always possible.

But a new property can be set to indicate the public endpoint url and used when defined.

Gradle Plugin to build Convertigo Project to CAR file

Convertigo must be Continuous Integration [CI] compliant.

To do this, gradle a is common and flexible build tool.

The Convertigo Gradle Plugin should be able to load an export a project to a car file.

Use the plugin in the build process to generate base templates.

Another features will come later.

Automatically update slashscreen version

The splash.bmp is committed with the version in the image.

It could be nice if the gradle update the splash image with a task.

If it's too complicated, just let the major number version X[.y.z]

Make Convertigo project VCS friendly

A Convertigo project is saved to a huge XML, one row by Convertigo Object (dbo).

It's easy to merge for distant objects (different sequences, connectors) but in case of conflict or change, on a single dbo, it's very hard to understand the meaning.

The idea is to skip the properties with default values and also to use the YAML instead of XML to reduce the verbosity.

Implement a Database revision number for FullSync

When we use a full sync database, clients have to be sure that the database on the server is not reset. Otherwise, all documents held locally in the client database will be pushed back to the server. To prevent this we implement a Database revision number.

This number is automatically updated each time a RESET transaction is executed on the server. The revision number is held in the _design/c8o Design document.

When the client replicates the database, we first have to see the server _design/c8o revision number and compare it to the local _design/c8o. If they do not match, the client will automatically perform a RESET on the local database before syncing, resulting in a clean client database.

This process is to be done automatically by the SDKs.

Multivalued variable values are <null> at project loading

Create a sequence:

  • add one single-valued variable and set a default value
  • add one multi-valued variable and set a default value
  • add an inputVar steps (output mode set to true)

Execute the sequence : the result is OK for both variables.
Reload project an execute the sequence: the result is KO : multivalued variable is not present (null)

Values are correctly saved in .yaml, but incorrectly loaded from .yaml into bean.

UrlMapper: v2

  • Swagger upgrade to 3.xx
  • Custom json schemas generation from xsd
  • ...

Xerces failed to write some unicode characters

Xerces write 🚀 as �� and this is forbidden (other xml reader report that).
So, if you put a rocket in your project (and many other special caracters) your project will be saved as invalid and you cannot open it again.
This is true for all things that write XML in Convertigo.
Some workarounds : write in UTF-16 / patch Xerces / use Saxon to write.

[MB] CalendarPickerAction isn't working as expected

For defaultTitle (Day Title) and defaultSubtitle (Subtitle) string properties, user is able to choose not set (false). The calendar diplays false and should not.

  • OR the implementation of the action (CalendarPickerAction.ts) should ignore those properties (when value equals false)
  • OR the description of the action (ion_objects.json) should be modified by adding values:[true]

Build Error on Centos 7

Hi Everybody,

I tried to build convertigo code on Centos 7 but I got build error messages for CSVParserBuilder
Please see below:-

` symbol: class CSVParserBuilder
location: class ReadCSVStep
/home/sanyaade/Compilers/eclipse/workspace/convertigo-7.5.2/engine/src/com/twinsoft/convertigo/beans/steps/ReadCSVStep.java:145: error: cannot find symbol
return new CSVReaderBuilder(reader).withCSVParser(new CSVParserBuilder().withSeparator(separator.charAt(0)).build()).build();
^
symbol: class CSVReaderBuilder
location: class ReadCSVStep
/home/sanyaade/Compilers/eclipse/workspace/convertigo-7.5.2/engine/src/com/twinsoft/convertigo/beans/steps/ReadCSVStep.java:265: error: cannot find symbol
CSVReader csvReader = getCSVReader(reader);
^
symbol: class CSVReader
location: class ReadCSVStep
/home/sanyaade/Compilers/eclipse/workspace/convertigo-7.5.2/engine/src/com/twinsoft/convertigo/engine/util/JAXBUtils.java:83: error: cannot access ErrorListener
XJCListener l = new XJCListener() {
^
class file for com.sun.xml.bind.api.ErrorListener not found
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
18 errors
:engine:compileJava FAILED

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':engine:compileJava'.

Compilation failed; see the compiler error output for details.

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 7.759 secs
[sanyaade@skillmender convertigo-7.5.2]$
`

image

Please help!

Hear from you soon!

God blesses!!!

Best regards,
Sanyaade

Extra markers added in saved TS content of editable mobile components

Extra markers sample (see /*Begin_c8o_function:CTS1547465225317*/):

	CTS1547465225317(page: C8oPageBase, props, vars, event: any) : Promise<any> {
		return new Promise((resolve, reject) => {
		/*Begin_c8o_function:CTS1547465225317*/
                     /*Begin_c8o_function:CTS1547465225317*/
		page.c8o.log.debug(event ? event.toString():'no event');
		resolve();
		/*End_c8o_function:CTS1547465225317*/
		});
	}

Add simple-odf.jar

add simple-odf-0.8.2-incubating-jar-with-dependencies.jar in lib directory for creating odf files.

Add a Tooltip pseudo bean to mobile palette

We need a new bean for tooltips for desktop applications. We can use the https://www.npmjs.com/package/ionic-tooltips for this.

Unfortunately, this package works by adding attributes to an existing tag, and MobileBuiler generator is currently not able to do this.

For example, we can have a new key in the ion_object.json objects such as :

	"parent-attach": true,

To indicate that the attributes described should be attached to the parent bean.

In this case the object should be

`"Tooltips" : {
"displayName": "Tooltips",
"label": "Tooltips",
"description": "ionic-tooltips| Defines a Tooltip component.
This component displays a tooltipp that can be be positioned around any item giving the position properties.

You can set as many as much tooltips in a page.
For more information: ionic-tooltips.",
"group": "Ionic Tooltips",
"icon16": "tooltips_color_16x16.png",
"icon32": "tooltips_color_32x32.png",
"properties": {
"tooltip": {
"mode": "script",
"attr":"[tooltip]",
"label": "Tooltip string",
"description": "string: string to be displayed. 'empty string = disabled').",
"category": "@Attributes",
"value": "tooltip"
},
"navTooltip": {
"attr":"[navTooltip]",
"label": "Navbar Tooltip",
"description": "boolean: add this attribute or set it's value to true to specify that the tooltip belongs to a nav button. Defaults to false.",
"category": "@Attributes",
"value": "false", // optional value (default is false)
"values": [ // possible values (false means do no set)
false,
"false"
]
},
"positionV": {
"attr":"[positionV]",
"label": "Vertical Position",
"description": "string: specifies the vertical position of the tooltip. Can be either 'top' or 'bottom'.",
"category": "@Attributes",
"value": "false", // optional value (default is false)
"values": [ // possible values (false means do no set)
false,
"bottom"
]
},
"positionH": {
"attr":"[positionH]",
"label": "Horizontal Position",
"description": "string: specifies the horizontal position of the tooltip. Can be either 'right' or 'left'",
"category": "@Attributes",
"value": "false", // optional value (default is false)
"values": [ // possible values (false means do no set)
false,
"right"
]
},
"event": {
"attr":"[event]",
"label": "Showing event",
"description": "string: the event to show the tooltip on. Can be either 'hover', 'click' or 'press'.",
"category": "@Attributes",
"value": "hover", // optional value (default is false)
"values": [ // possible values (false means do no set)
false,
"hover",
"click",
"press"
]
},
"arrow": {
"attr":"[arrow]",
"label": "Displays arrow",
"description": "boolean: add this attribute or set it's value to true to show an arrow attached to the tooltip. Defaults to false.",
"category": "@Attributes",
"value": "false", // optional value (default is false)
"values": [ // possible values (false means do no set)
false,
"true",
"false"
]
},
"duration": {
"mode": "script",
"attr":"[duration]",
"label": "Display duration",
"description": "number: number of milliseconds to show the tooltip for. Defaults to 3000.",
"category": "@Attributes",
"value": "3000"
},
"active": {
"mode": "script",
"attr":"[active]",
"label": "Display state",
"description": "boolean: add this attribute or set it's value to true to display the tooltip. Defaults to false.",
"category": "@Attributes",
"value": "false"
}
},
"config": {
"module_ts_imports": [
{"from":"ionic-tooltips-dst-optimised", "components":["TooltipsModule"]},
{"from":"@angular/platform-browser/animations", "components":["BrowserAnimationsModule"]}
],
"module_ng_imports": [
"TooltipsModule",
"BrowserAnimationsModule"
],
"package_dependencies": [
{"package":"@angular/animations", "version":"5.2.10"},
{"package":"ionic-tooltips-dst-optimised", "version":"2.0.6"}
]

  }          

},` 

Extra blank lines added in saved content of editable mobile components

Windows only ! Components: Application, Page, CustomAction, CustomValidator, Style.

Steps to reproduced:

  1. Edit a page class and add a new function between functions markers.
       /*Begin_c8o_PageFunction*/
	myDebug(msg) {
	    this.c8o.log.debug(msg);
	}
       /*End_c8o_PageFunction*/
  1. Save and Close editor.
  2. In the Projects view, copy/paste the page.
  3. Edit newly created page class, scroll down to the function : extras lines have been added to code.

Bad deployment if the ".car" is dropped in the workspace

On server version version 7.6.0_beta (build 01230-feature-3-UrlMapper_v2-7.6.0-beta), if we copy a project xxx.car in project workspace and start the server, the project is not deployed.

There is an error:
!Engine | 2018-11-15 14:17:34,037 | ERROR | MigrationJob #ReadLogFiles | An error occured while migrating project "ReadLogFiles".
com.twinsoft.convertigo.engine.EngineException: Unable to update the project from the file "/workspace/projects/ReadLogFiles.car".
at com.twinsoft.convertigo.engine.DatabaseObjectsManager.updateProject(DatabaseObjectsManager.java:706)
at com.twinsoft.convertigo.engine.DatabaseObjectsManager.updateProject(DatabaseObjectsManager.java:644)
at com.twinsoft.convertigo.engine.MigrationJob.run(MigrationJob.java:55)
Caused by: com.twinsoft.convertigo.engine.EngineException: Unable to retrieve project's version from "/workspace/projects/ReadLogFiles.car".
at com.twinsoft.convertigo.engine.DatabaseObjectsManager.needsMigration(DatabaseObjectsManager.java:1050)
at com.twinsoft.convertigo.engine.DatabaseObjectsManager.updateProject(DatabaseObjectsManager.java:663)

File upload not working in test platform sequence

If you to call a sequence from test platform, with a file as variable parameters this will not just returns the file name without, the path. Upload is not done.

To prevent from this issue you can trigger C8oLib button into Execution mode, run the sequence, then trigger XML button and run the sequence.

Projects not visible on admin page

With version Convertigo version 7.6.0_beta (build 00886-feature-3-UrlMapper_v2-7.6.0-beta).
When we deploy a project, the project is not visible on the projects admin page, but the projects are correctly deployed and can be used.

Support GetData bean in source picker

GetData bean (FullSyncGetAction) is not correctly supported in source picker.
"get" checkbox is in the Design_document>view tree.
When checked the listen generated is computed with 'ddoc' and 'view', should be 'docid'.
Marker is not supported too.

CustomEvent Route component needs to be documented

CustomEvent is used to handle generic (wildcard '*') events coming from any sequence called in the project. This is the best way to handle any errors generated by any sequences in a centralized manner. For example, any sequence called within an unauthenticated session will return an error. The customEvent can catch this error and display for example an error Toast message using a dataAction.

Wrong session counter if session limit is reached

The admin Connection part show the number of session and a table of sessions.
If the session table is displayed, the number of session should be the number of rows.
The Delete all sessions button should also remove contexts (session less).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.