What framework is CabloyJS
CabloyJS is a node. js full stack framework with workflow engine, a low code development platform for developers, and a flexible customization PAAS platform with both low code out of the box and professional code
Every feature built into CabloyJS has been carefully tuned for seamless transition from out-of-the-box to flexible customization, including: Role system, user authentication, menu permissions, data permissions, form rendering, form validation, workflow engine, dictionary, dashboard, online push, page theme, multi-language internationalization, CMS rendering engine, wechat interface, enterprise wechat interface, nail interface, etc
Technology stack
scenario | Technology stack |
---|---|
The front end | vue2 + framework7 |
The back-end | koa2 + egg2 |
The database | mysql |
Distributed (cache/queue/message) | Redis, BullMQ, Websocket |
Markdown rich text editing | Prosemirror |
The online demo
Please use PC and Mobile respectively to visit the demo site, experience the unique PC = Mobile +pad adaptive style, true cross-multi-terminal architecture, a set of code for both PC and Mobile
scenario | Link/QR code |
---|---|
PC | test.cabloy.com/ |
Mobile terminal |
Account type | The name of the | password |
---|---|---|
The administrator | admin | 123456 |
The average user | tom | 123456 |
The average user | jane | 123456 |
The introduction
Who can use JavaScript to write applications, will eventually use JavaScript to write | Atwood’s law
At present, most of the frameworks related to NodeJS in the market basically position NodeJS at the tool layer, aggregation layer, intermediate layer, and proxy layer, and rarely carry out in-depth research at the business level, which is considered to be the domain of JAVA and NodeJS is not suitable for it. This trend of thought clearly contradicts Atwood’s law
If you want a different NodeJS full stack development experience, be sure to try CabloyJS full stack open source framework with workflow engine. In order to improve the development efficiency and development experience at the business level, CabloyJS provides a large number of practical tools and components in both the front-end and back-end
What real world pain points does CabloyJS solve?
There are currently (as of January 2022) several pain points in NodeJS development:
1. How can the middle and background management system support the mobile terminal more gracefully?
With the popularization and upgrading of mobile terminals, a large number of business scenarios need the support of mobile terminals. For example, the management needs to check statistics and review business documents through mobile phones. O&m personnel use mobile phones to remotely check the server status and adjust and optimize it
As we know, most of the middle and background management systems on the market are preferentially adapted to THE PC end, but the mobile end experience is not good, in the barely usable, but not good to use stage
In addition, most XXX Admin frameworks and middle and back office management frameworks are essentially code templates. For specific development projects, write code directly in the code template. In this way, although the modification is very direct, it is not conducive to the continuous upgrade and optimization of the template; Nor is it conducive to continuous precipitation and migration of business code (to other projects). Therefore, when a code template is downloaded from the repository, it is modified by a third, added by a third, and deleted by a third, and is henceforth insulated from subsequent upgrades of the code template
2. There is no good workflow engine in the NodeJS world!
CRUD alone is easily implemented by most programming language development frameworks and should not be a core advantage of NodeJS development business systems. The workflow engine is a core component of NodeJS development in the business domain
3. Drag and drop low code platforms have become a weak point!
Most business forms are not just a simple combination of some fields and add, delete, change and check. Different businesses have their own unique business demands, which often require customization of front-end interface and back-end logic. Drag-and-drop, low-code platforms don’t have enough tools for business people to customize, and don’t have enough mechanisms for developers to develop
Many drag-and-drop, low-code platforms realize this and offer official pre-configured suite solutions for different business scenarios, which also puts business people and developers in the awkward position of being useless and useless
CabloyJS highlights
Based on the above analysis, CabloyJS achieves the following three highlights of function and architecture
1. Three highlights of function
- Adaptive layout: PC = Mobile + Pad
CabloyJS pioneered the adaptive layout mechanism of PC = Mobile + pad: only a set of code is needed to achieve the native effect on mobile, while seamlessly bringing the control experience and development mode on mobile to PC
Please open the demo link on PC and mobile: test.cabloy.com/ to see the unique adaptive mechanism
- Automatic form rendering and data validation engine based on JSON Schema
By defining the JSON Schema in one place, you can support both automatic form rendering on the front end and data validation on the back end, making it both out-of-the-box and customizable
- Built-in NodeJS workflow engine
CabloyJS takes advantage of the flexibility of the JS language and the convenience of the JSON format to provide a NodeJS workflow engine that is far simpler and easier to use than Activiti in the JAVA domain
For example, we generally only know how to use the active nodes and boundary events provided in Activiti, but have little way to understand how to develop custom active nodes and custom boundary events. Because of Activiti’s complex architecture, most people won’t even try to read the source code. However, the workflow engine provided by CabloyJS can easily customize all workflow elements, and the source code is clear and easy to learn
2. Three highlights of the architecture
As a low code development platform for developers, in order to combine low code out of the box with flexible customization of professional code, CabloyJS mainly makes the following points in the architecture level:
- Modular development systems are isolated from modules
In order to satisfy the large business system development demands CabloyJS thinking planning system architecture of module, to business functions (such as the application for business trip, will be related to the business functions of the front-end components with the back-end logic group as a business module, which is conducive to business functions of cohesion and reuse, and conducive to team division of labor in business
In addition, the pages, data, logic, routing, configuration and other elements within the service module are namespace isolated to avoid variable contamination and conflict between modules. In other words, when we name a resource in our own business module, we don’t have to worry about whether other business modules have resources with the same name, thereby reducing the mental burden
- Native distributed architecture
EggJS is positioned as the framework of the framework. Based on EggJS, CabloyJS extends a set of new features suitable for business scenarios by using the custom Loader mechanism
For example, the original Worker + Agent process model of EggJS is very convenient for a single machine. However, in the face of multi-machine cluster, especially docker-based cluster deployment, Agent process loses its use. More importantly, if you start your development on an Agent basis, it will be difficult to make a smooth transition to a distributed scenario. Therefore, The CabloyJS backend uses Redis to start the native distributed architecture design from the bottom of the framework, and derived a series of distributed development components such as Broadcast, Queue, Schedule, Startup, which is convenient for us to carry out distributed development from the beginning. Therefore, you can easily expand the cluster when the system is overloaded. For details, see Broadcast, Queue, Schedule, Startup
- Front and rear end separation, full scene development
The architecture is designed to separate the front and back ends, enabling rapid development of services in all scenarios
scenario | The front end | The back-end |
---|---|---|
PC: Web | CabloyJS front-end | CabloyJS backend |
PC: Exe | CabloyJS front end + Electron | CabloyJS backend |
Mobile: IOS | CabloyJS front-end + Cordova | CabloyJS backend |
Mobile: Android | CabloyJS front-end + Cordova | CabloyJS backend |
Wechat official account | CabloyJS front-end + wechat API | CabloyJS backend |
Enterprise WeChat | CabloyJS front-end + enterprise wechat API | CabloyJS backend |
nailing | CabloyJS front-end + pin API | CabloyJS backend |
Slack | CabloyJS front-end + Slack API | CabloyJS backend |
Small programs: wechat, Alipay, etc | Uni-app + CabloyJS front-end SDK | CabloyJS backend |
The back-end
: Because of the complete front and back end separation design, only a set of CabloyJS back-end code can be developedThe front end
: All scenarios that can be based on H5 need only develop a set of CabloyJS front-end codeSmall program
: Provides CabloyJS front-end SDK so uni-App can easily interconnect with CabloyJS back-end code
What systems can CabloyJS develop
- You can develop
Multi-tenant SAAS business system
- The front and rear ends can be developed separately
Background business management system
, such as OA, CRM, ERP, e-commerce, etc - You can develop
JAMStack
The architecture of theCMS content management system
, support SEO optimization, such as blogs, technical documents, communities, knowledge stores, and so on - It can be developed first
Background business management system
, and then extended developmentCMS content management system
; Or you can go the other way and develop firstCMS content management system
, and then extended developmentBackground business management system
- Can be achieved by
Cordova
Develop all kinds of App applications, supporting IOS and Android - Can be achieved by
Electron
Developing desktop Applications - Can develop wechat public number, enterprise wechat, nail nail, and other third-party platform applications, solve
Information island
The problem of - Can I do for
Uniapp applet
Develop back-end API interfaces
A formal system developed by CabloyJS
Site type | Links to sites |
---|---|
Background Management System (PC layout) | admin.cabloy.com |
Background Management System (Mobile layout) | |
blog | zhennann.com |
Technical Documentation (English) | cabloy.com/index.html |
Technical Documentation (Chinese) | Cabloy.com/zh-cn/index… |
Community (English) | community.cabloy.com/index.html |
Community (Chinese) | Community.cabloy.com/zh-cn/index… |
Courses (English) | course.cabloy.com/index.html |
Courses (Chinese) | Course.cabloy.com/zh-cn/index… |
Cabloy Store | store.cabloy.com/index.html |
Cabloy Shop (Chinese) | Store.cabloy.com/zh-cn/index… |
The development of CabloyJS
CabloyJS has been under development since 2016 and has gone through two stages:
1. Stage 1: EggBornJS
The core focus of EggBornJS is the isolation of modular architecture and modules to achieve a complete full-stack development framework
For example, the egg-born-front module is the core module of the front end of the framework, the egg-born-backend module is the core module of the backend of the framework, and the egg-born module is the command line tool of the framework, which is used to create the skeleton of the project
Is this why all business modules are prefixed with egg-born-module-
2. Stage 2: CabloyJS
EggBornJS is just a basic full-stack development framework. In order to support rapid business development, there are many business-related supporting features, such as workflow engine, user management, role management, permission management, menu management, parameter setting management, form verification, login mechanism, and so on. Especially in the scenario where the front and back ends are separated, the requirement for permission management rises to a higher level
Based on EggBornJS, CabloyJS provides a set of core business modules, so as to realize a series of business support features, and combine these features organically to form a complete and flexible upper ecological architecture, so as to support specific business development process
With EggBornJS, you can reuse not only components, but also business modules
With CabloyJS, you can quickly develop all kinds of business applications
belief
Who can use JavaScript to write applications, will eventually use JavaScript to write | Atwood’s law
We believe that deep explorers of Javascript will be inspired by this quote and work together to contribute to the Javascript ecosystem and build a more prosperous application ecosystem
CabloyJS is an exploration of this famous saying. You are welcome to join the CabloyJS community to promote the prosperity and application of Javascript
Origin of name
1. EggBorn
The origin of the name is relatively simple, as Egg(back-end framework) is the result of EggBorn. There is a cartoon called “Tianshu strange tan”, the adorable Lord inside is called “eggs”, I like to see (accidentally exposed the age 😅)
2. Cabloy
Cabloy is a magical spell from the Smurfs that has magical effects when spelled correctly. Likewise, CabloyJS is magic about chemistry, based on modular combinations with biochemical reactions, you’ll achieve anything you want
License
MIT