All Projects → PhilipSkinner → elemental-lowcode

PhilipSkinner / elemental-lowcode

Licence: MIT License
Elemental lowcode development platform.

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to elemental-lowcode

Budibase
Budibase is an open-source low-code platform for creating internal apps in minutes. Supports PostgreSQL, MySQL, MSSQL, MongoDB, Rest API, Docker, K8s 🚀
Stars: ✭ 8,071 (+18243.18%)
Mutual labels:  low-code, low-code-development-platform, lowcode
tefact
🏭 (Beta) 轻量级无代码/低代码 H5、表单编辑器。Lightweight no-code/low-code editor for website、H5 page and Form. Build your page without code!
Stars: ✭ 244 (+454.55%)
Mutual labels:  low-code, low-code-development-platform, low-code-platform
H5 Dooring
H5 Page Maker, H5 Editor, LowCode. Make H5 as easy as building blocks. | 让H5制作像搭积木一样简单, 轻松搭建H5页面, H5网站, PC端网站,LowCode平台.
Stars: ✭ 5,832 (+13154.55%)
Mutual labels:  low-code, lowcode, low-code-platform
corteza-webapp-compose
cortezaproject.org/
Stars: ✭ 61 (+38.64%)
Mutual labels:  low-code, lowcode, low-code-platform
Amis
前端低代码框架,通过 JSON 配置就能生成各种页面。
Stars: ✭ 8,930 (+20195.45%)
Mutual labels:  low-code, low-code-development-platform, lowcode
Graphql2rest
GraphQL to REST converter: automatically generate a RESTful API from your existing GraphQL API
Stars: ✭ 181 (+311.36%)
Mutual labels:  api-server, api-rest
pc-Dooring
LowCode, PC Page Maker, PC Editor. Make PC as easy as building blocks. | 让网页制作像搭积木一样简单, 轻松搭建PC页面, Web网站, PC端网站. lowcode(low-code)可视化搭建平台
Stars: ✭ 407 (+825%)
Mutual labels:  low-code, lowcode
dart-express
Express-like HTTP framework written in Dart
Stars: ✭ 34 (-22.73%)
Mutual labels:  api-server, api-rest
citrus
🌈 低代码快速开发脚手架,灵活、高效,降低开发成本
Stars: ✭ 368 (+736.36%)
Mutual labels:  low-code, lowcode
Aceql Http
AceQL HTTP is a framework of REST like http APIs that allow to access to remote SQL databases over http from any device that supports http.
Stars: ✭ 68 (+54.55%)
Mutual labels:  api-server, api-rest
reedelk-runtime
Reedelk Runtime Platform Community Edition
Stars: ✭ 25 (-43.18%)
Mutual labels:  api-server, api-rest
Asher.Ai
Welcome to the API side of Asher, where all the language processing happens.
Stars: ✭ 20 (-54.55%)
Mutual labels:  api-server, api-rest
Webgo
A minimal framework to build web apps; with handler chaining, middleware support; and most of all standard library compliant HTTP handlers(i.e. http.HandlerFunc).
Stars: ✭ 165 (+275%)
Mutual labels:  api-server, api-rest
Appkernel
API development made easy: a smart Python 3 API framework
Stars: ✭ 152 (+245.45%)
Mutual labels:  api-server, api-rest
Gemini
Model Driven REST framework to automatically generate CRUD APIs
Stars: ✭ 138 (+213.64%)
Mutual labels:  api-server, api-rest
FSharp.JsonApi
Use F# to create and consume flexible, strongly typed web APIs following the JSON:API specification
Stars: ✭ 20 (-54.55%)
Mutual labels:  api-server, api-rest
Magento-Extra-RESTful
Many more REST resources for Magento's API
Stars: ✭ 32 (-27.27%)
Mutual labels:  api-server, api-rest
v6.dooring.public
可视化大屏解决方案, 提供一套可视化编辑引擎, 助力个人或企业轻松定制自己的可视化大屏应用.
Stars: ✭ 323 (+634.09%)
Mutual labels:  low-code, lowcode
pythondataintegrator
Integrate your data
Stars: ✭ 13 (-70.45%)
Mutual labels:  low-code-development-platform, low-code-platform
Json Server Heroku
Deploy json-server to Heroku & Azure 🆙 🆓
Stars: ✭ 310 (+604.55%)
Mutual labels:  api-server, api-rest
Elemental logo

Elemental low-code platform

Build Status Coverage Status Codacy Badge GitHub issues GitHub forks GitHub stars PRs Welcome

A standards based, open low-code development platform built on nodejs with the ability to fallback to writing raw nodejs code when the provided tools cannot solve your problems.

Currently ships with:

  • JSON Schema defined RESTful APIs
  • Simple async messaging queues
  • Integrations to external systems
  • API builder
  • Rulesets builder
  • Interface/website builder
  • OIDC/OAuth2.0 Identity Provider & Identity Management

Table of Contents

Installation

Installation can done using the prebuilt docker image or using the latest code from master.

Docker

You can pull down the latest docker image from dockerhub:

$> sudo docker pull philipskinner/elemental:master
$> sudo docker run -d -p 80:80 --name elemental philipskinner/elemental:master

; then open a browser and point it at (http://admin.elementalsystem.org).

The default administration login details are:

  • Username: admin
  • Password: admin

The docker image uses several pre-defined hostnames for the service, each of which resolves to 127.0.0.1:

From source

Follow these steps to build and run from source:

$> git clone https://github.com/PhilipSkinner/elemental-lowcode.git elemental-lowcode
$> cd elemental-lowcode && ./setup.sh
$> ./start.sh

You can directly run the kernel by executing the main.js file within the kernel directory:

$> cd kernel
$> node main.js

The following usage options are available when you do this:

Usage: node main.js [OPTIONS]

Options:
	--sources [SOURCE_DIR]		Sets the directory where your Elemental application
                                        source code lives.

Note: If this is the first time you have run Elemental with a sources directory you will be prompted to enter an initial admin users credentials:

First time run

; then open the admin interface on http://localhost:8002. Each example comes with an admin user with the following credentials:

Database support

Elemental supports persistence of:

  • Authentication details
  • Data types
  • Message queues
  • Website session state

; with many storage options. These storage options are:

  • In-memory
  • Filesystem
  • SQL:
    • sqlite
    • postgres
    • mysql
    • mariadb
    • mssql

Documentation

Documentation is available within Elemental:

In app documentation

; or you can read it on the Elemental Documentation website.

Examples

Examples can be found in the elemental-examples repository.

To use the examples clone the repository locally then set Elemental to run from a specific example directory:

$> git clone https://github.com/PhilipSkinner/elemental-lowcode.git elemental-lowcode
$> git clone https://github.com/PhilipSkinner/elemental-examples.git elemental-examples
$> cd elemental-lowcode && ./setup.sh
$> cd kernel && node main.js --sources ../../elemental-examples/todo

; then open the admin interface on http://localhost:8002. Each example comes with an admin user with the following credentials:

  • Username: admin
  • Password: admin

Hosting

The recommended approach for deploying your application is to build on the dockerhub image. The following is an example dockerfile that builds and configures Elemental with a set of Elemental applications:

FROM philipskinner/elemental:master

#set dir
WORKDIR /var/elemental

#copy our files
COPY api /var/elemental/kernel/.sources/api
COPY data /var/elemental/kernel/.sources/data
COPY identity /var/elemental/kernel/.sources/identity
COPY integration /var/elemental/kernel/.sources/integration
COPY queues /var/elemental/kernel/.sources/queues
COPY rules /var/elemental/kernel/.sources/rules
COPY services /var/elemental/kernel/.sources/services
COPY website /var/elemental/kernel/.sources/website

#set environment
COPY nginx.conf /etc/nginx
ENV ELEMENTAL_KERNEL_HOST="http://kernel.mysite.com"
ENV ELEMENTAL_ADMIN_HOST="http://admin.mysite.com"
ENV ELEMENTAL_API_HOST="http://api.mysite.com"
ENV ELEMENTAL_INTEGRATION_HOST="http://integration.mysite.com"
ENV ELEMENTAL_INTERFACE_HOST="http://interface.mysite.com"
ENV ELEMENTAL_STORAGE_HOST="http://storage.mysite.com"
ENV ELEMENTAL_RULES_HOST="http://rules.mysite.com"
ENV ELEMENTAL_IDENTITY_HOST="http://identity.mysite.com"
ENV ELEMENTAL_QUEUE_HOST="http://queues.mysite.com"

#run our app
CMD ["./docker-start.sh"]

If you want to run the system outside of a docker container you must set the following environmental variables on your system:

  • ELEMENTAL_KERNEL_HOST
  • ELEMENTAL_ADMIN_HOST
  • ELEMENTAL_API_HOST
  • ELEMENTAL_INTEGRATION_HOST
  • ELEMENTAL_INTERFACE_HOST
  • ELEMENTAL_STORAGE_HOST
  • ELEMENTAL_RULES_HOST
  • ELEMENTAL_IDENTITY_HOST
  • ELEMENTAL_QUEUE_HOST

Each of these needs to be a valid hostname that resolves to the relevant Elemental service.

Secrets

Elemental has built in support for secrets management. Secrets can be configured within your applications and then the secrets definition can be deployed on a per environment basis - outside of version control of your main application.

Secrets can be scoped for global access or restricted to a specific Elemental subsystem.

To deploy secrets you need to copy a JSON file for each secret into the kernel/.secrets directory. Each JSON file should follow this format:

{
    "value": "my-secret-value"
}

; where the filename is secret-name.secret.json within the kernel/.secrets directory. You can copy these at build time within your dockerfile:

COPY my-secrets/*.json /var/elemental/kernel/.secrets/

Contributing

Contributions, code or otherwise, are very welcome!

To contribute a code change:

  1. Fork the master branch
  2. Carry out your code changes
  3. Run the unit tests - nyc jasmine
  4. Submit a pull request following pull request template

To contribute a none code change raise a ticket on the original repository.

Authors

Philip Skinner
Philip Skinner

Support

Raise a ticket on the repository describing the issue in as much detail as possible.

Alternatively reach out to [email protected] and I'll reply as soon as I can.

Links

More information about Elemental can be found at:

The following are standards that Elemental attempts to follow:

Elemental relies upon several other projects, notable ones are:

License

Elemental is licensed under the terms of the MIT License and is free to use and free to modify.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].