This issue recommends Yao, a low-code engine for creating Web services and dashboards.
Yao is a low-code engine that uses only JSON to create a database model, write an API interface, and describe the administrative backend interface, and applications built with Yao can run in the cloud or on iot devices. Developers can be 10x more productive without writing a single line of code.
Yao is based on flow-based programming idea, adopts Go language development, and supports multiple ways to expand data stream processors. This makes Yao has excellent versatility, and can replace programming languages in most scenarios, and its reusability and coding efficiency are 10 times that of traditional programming languages. The application performance and resource ratio are better than PHP, JAVA and other languages.
Yao built a set of data management system, by writing JSON to describe the interface layout, you can achieve 90% of the common interface interaction functions, especially suitable for the rapid production of various types of management background, CRM, ERP and other internal enterprise systems. Special interactive functions can also be realized by writing extension components or HTML pages. The built-in management system is not coupled with Yao, and any front-end technology such as VUE and React can be used to achieve the management interface.
Features
- No code: using JSON to create the database model, write the interface, describe the interface, no code programming in the true sense
- Internet of Everything: supports running on ARM devices, can be used for Internet of Things, edge computing, Industrial Internet
- data visualization: easy-to-use BI components and functions that give business more possibilities
- Processor: a series of built-in processors that can be extended with data streams, Javascirpt and GRPC plugins
- data stream: Through the data stream, developers can perform any form of data processing, and Javascript
- Plug-in: plug-in mechanism based on GRPC, supporting the use of nodejs, python and other languages for function expansion
- Management background: By writing JSON to describe the interface layout, quickly build a variety of CRM, ERP and other internal systems
- File system routing: Every file in the apis folder becomes an interface to call
- Real-time query: built-in query engine comparable to ES, and JSON query through DSL, simple and easy to use
- Extreme performance: the underlying use of Go language, performance is far better than Java, PHP, distributed deployment, a line command to solve
- Enterprise-level security: permission hierarchy, separation of administrator and employee accounts, Api level permission control, and support for custom
- Natural distribution: Go language packaging to generate binaries for various platforms, for users with cloud needs, very convenient
Installation and Deployment
Docker is recommended for deployment, or you can manually deploy it yourself.
Use Docker
1 Create a container:
Install Docker Download Install Docker
Create and launch containers:docker run -d --restart unless-stopped --name yao -v <app root>:/data/app -p <Port>:5099 yaoapp/yao:0.9.1-amd64
Yao Docker Images:
Mirror |
Environment |
Usage scenario |
yaoapp/yao: 0.91-AMD64 |
Production environment |
for cloud deployment |
yaoapp/yao: 0.91-ARM64 |
Production environment |
for iot edge device deployment |
2 Check the service status :
curl http:/ / 127.0.0.1: & lt; Port> /api/xiang/ping
Manual deployment
1 Run the installation script:
curl -fsSL https://website.yaoapps.com/install.sh | bash
2 Add a user:
useradd yao
3 Create an application folder:
mkdir /yaoapps
4 Copy the application code to the application directory, for example:
git clone https://github.com/YaoApp/demo-crm.git /yaoapps/demo-crm
Note: In a production environment, set the boot mode to production.
5 Configure services and use a service process management tool, such as pm2 and supervisor.
supervisor Configuration example:
[program:demo-crm-server]
directory=/yaoapps/demo-crm
command=/usr/local/bin/yao start
process_name=demo-crm-server
numprocs=1
autostart=true
autorestart=true
user=yao
group=yao
redirect_stderr=true
stdout_logfile=/yaoapps/demo-crm/supervisor.log
Note: Do not start the service as the root user.
6 Start the service:
supervisor start
7 Check the service status :
curl http://127.0.0.1:<Port>/api/xiang/ping
Proxy server
If you need to use HTTPS or have multiple applications installed on one machine, you can use a proxy server such as Nginx, traefik, etc.
Example of traefik configuration:
[[tls.certificates]]
certFile = "/data/certs/star.yaoapps.com.crt"
keyFile = "/data/certs/star.yaoapps.com.key"
[http.routers.demo-crm]
tls = true
rule = "Host(`demo-crm.yaoapps.com`)"
service = "demo-crm@file"
[http.services]
[http.services.demo-crm.loadBalancer]
[[http.services.demo-crm.loadBalancer.servers]]
< span class = "HLJS - attr" > < / span > url = < span class = "HLJS - string" > "http://127.0.0.1:< port> /"
Component Example
A link
Jump to third-party sites, jump to customized extended pages, jump between systems
{
"Link": {
"label": "External links ",
"view": {
"type": "a",
"props": {
"value": ":link"
}
}
}
}
Tooltip
Prompt, mouse hover description text, often used to simplify the page, content focus.
{
"Instructions": {
"label": "Instructions",
"view": {
"type": "tooltip",
"props": {
"value": ":desc"
}
}
}
}
Tree tree control
Folders, organizational structures, biological categories, countries, etc., most of the structure of everything in the world is a tree structure. Using the tree control can fully display the hierarchical relationship, and has interactive functions such as expanding and folding selection.
{
"Tree": {
"label": "Tree",
"edit": {
"type": "tree",
"props": {
"value": ":tree",
"checkable": true,
"remote": {
"api": "/api/tree/search",
"query": {
"select": ["id", "name"]
}
}
}
}
}
}
NumberCard
Number card, usually used to display key indicator information.
Use on chart page:
{
"name": "Cloud computing related enterprises",
"width": 6,
"type": "numberCard",
"props": {
"icon": "cloud-outline",
"unit": "home"
}
}
Use on form page:
{
"Table chart": {
"label": "表格图表",
"edit": {
"type": "chart",
"props": {
"type": "numberCard",
"value": ":service",
"hide_label": true,
"chart_props": {
"height": 240,
"icon": "cloud-outline",
"unit": "home"
}
}
}
}
}
Line chart
Pie chart
Line k
Rising Sun graph
—END—
Open Source protocol: Apache2.0