Enterprise-level general low-code development platform - 123 application development platform releases 1.0 open source version, front-end vue3+element plus, framework vue-element-plus-admin, backend ssm+MybtaisPlus

Origin of the platform

Earlier, that is, at the beginning of March, a long-term plan was made, that is, to start again and develop an application development platform (see the first article of this column for details https://blog.csdn.net/seawaving/article/details/129334330 ).
After about two months of hard work, the prototype of the low-code configuration function has been completed, and the system management module has been implemented using the configuration function, which is equivalent to a preliminary verification. During the implementation process, the low-code configuration part has also been improved and improved. Improve.
Version 1.0 is now officially released.
The platform is completely open source, based on the MIT protocol, and uses mainstream open source frameworks and functional components.
Address: https://gitee.com/popsoft/abc-development-platform

Platform Introduction

Enterprise-level general-purpose low-code development platform, separated front-end and back-end architecture, single project, multi-module, and deployed as a single application.
The front-end is based on vue3.2.47, element-plus 2.1.0, and the front-end framework vue-element-plus-admin is deeply integrated and transformed.
Backend SSM+MybatisPlus, using SpringBoot 2.3.0.
The database uses MySql 5.7.36.
Heavy use of MybatisPlus, including primary key strategy, logical delete, optimistic lock, automatic filling, data paging, CURD interface, conditional constructor, etc., secondary packaging and extended code generator, to achieve entity, dao, service , controller, vo and front-end vue page generation.
The overall structure diagram is as follows:
insert image description here

For technical selection, see the column blog for details: https://blog.csdn.net/seawaving/article/details/130015830

overall display

The login page follows the front-end framework vue-elment-plus-admin, the functions have been integrated, and the UI has not been adjusted
image.png

The system home page, same as above, temporarily retains the frame analysis page, which will be replaced later
image.png
System management module - organization
image.png
Add new page and select page
image.png
System management module - user
image.png
System management module - user group (that is, the role that is usually called)
image.png
System Management Module - Data Dictionary
image.png
image.png
System Management Module - Permission Item
image.png
System Management Module - System Parameters
image.png
System Management Module - System Log (AOP was stopped during the development stage, so there is no data)
image.png
Entity Management Module - Module
image.png
Entity Management Module - Entity
image.png
Entity Management Module - Entity Model
image.png
image.png
Entity Management Module - Entity
image.png
View List
image.png
View New View
image.png

backend architecture

First, it is divided into two parts, one part is the platform kernel module, the naming rule is platform+module function name; the other part is the capability extension module, the naming rule is platform-boot-starter+module function name.

platform-common is a common basis, mainly including tool classes, public annotations, public parent classes, public constants, public enumeration values, and vo classes defined for interaction with the front-end UI. This module is the most basic module without pre-dependence.

platform-system is the core module of the platform, mainly including the implementation of entities and services such as organization, personnel, roles, permissions, logs, and system parameters. It should be noted that permission control and log records are not implemented in this module. Instead, it is implemented in the platform-framework platform framework, which depends on platform-common.

platform-framework is a platform framework, responsible for identity authentication, authority control, global configuration, data paging, log processing, automatic filling (creator, creation time, modification person, modification time), because identity authentication, authority control and other functions are inevitable Entities and services such as people and roles in the platform-system module need to be used, so it depends on platform-system.

platform-support is a business support module, based on functional design and packaging of technical components, to achieve some general functional design, more convenient for the realization of business logic, provide attachment management, content templates (for SMS, email, message), distribution group , document serial number, portal and other functions. These support modules also need entities and services such as personnel and organizations located in the platform-system module, so they depend on the platform-system.

platform-boot-starter: The platform startup project integrates the basic functions of the platform, similar to spring-boot-starter, and the business system introduces this package for dependency. The module itself has no entities and services, but is aggregated and integrated, and the platform-framework is referenced and configured at the same time. The configuration is divided into two aspects. On the one hand, it is to make a configuration class and add some annotations (such as: @EnableRetry, @ServletComponentScan, @EnableTransactionManagement). The business system implemented by the development platform does not need to add these annotations repeatedly on the startup class; On the one hand, it is the configuration information located in the yml configuration file, which is also divided into two parts, one part is the three-party components themselves, such as data source, connection pool, redis, quartz, logback, and the other is custom system parameters, such as The default password for the user, and the maximum number of batches for exporting excel data.

platform-boot-starter-demo: The sample project is actually a simulation of how the business system uses the development platform for the development and debugging of the platform's own functions.

The four modules on the right are relatively easy to understand. They are usually the encapsulation and integration of third-party components, relying on the public basic module platform-common. These modules can be continuously expanded, and the business system can be introduced on demand, thus realizing the core The purpose of the module is mandatory and the extension module is optional.
platform-boot-starter-mail: email
platform-boot-starter-oss: object storage
platform-boot-starter-scheduler: task scheduling
platform-boot-starter-notification: message notification
For extension modules, the core module of the platform is actually possible It will be used, for example, the accessory function in platform-support will use platform-boot-starter-oss; the automatic unlock user function in platform-system will use platform-boot-starter-scheduler.

See the column blog post for details: https://blog.csdn.net/seawaving/article/details/129425316

how to run

1. Initialize the database

Execute init.sql in the root directory to create a database named abc.

2. Front end

nodejs 18.14.2 (version compatibility has not been tested, theoretically higher versions are available, lower versions may be compatible)
use vscode to open the platform-web directory, execute pnpm install to install the npm module
to execute the dev script, open localhost:4000 by default

3. Backend

Standard SpringBoot project, multi-module, the startup class is located under platform-boot-starter-demo, the default port is 8080.

overall plan

1. Realize the system kernel, connect the front and back ends, and the system can run
2. Realize the low-code configuration function, which is an incubator for subsequent development
3. Realize the system management module based on low-code configuration + high-code assistance
4. Integrate the SpringSecurity framework to realize identity Authentication and authority control
5. Migrate the general interface platform that has been implemented by yourself as part of the development platform
6. Integrate functional components and expand technical capabilities, such as quartz, mail, oss, echarts
7. Encapsulate business functional components based on technical components
8. Realize Mobile terminal access 9. Current progress of
integrated workflow : The first item of the system kernel has been completed and the second item has been completed by 60%. The low-code configuration function is available, and the follow-up details will continue to be improved. Item 3 has been completed and implemented based on the low-code configuration function. Item 4 is done.




about naming

Regarding the name, I actually thought about it for a long time. In daily design and development, class names, variable names, and naming are difficult, let alone a platform.
This is my own child, and I need a good name.
According to our industry practice, naming needs to have business meaning :).
As a low-code configuration platform, the incubator of the application first anchored a word "Yuan", and then wanted to add a word in front. I thought about some names one after another, such as Kaiyuan and Chuangyuan, but they couldn't reflect the meaning I wanted to express. I once considered using Huayuan, but the name is too grand, and this platform may not be able to support such a large platform.
In the middle, I thought of an old saying "One life is two, two is three, three is all things", this is the artistic conception I want. However, Sanyuan, as a brand name, has already been used and can only be abandoned.
Baidu checked, but couldn't find the name I wanted. After thinking about the names of existing platforms, such as Yida, Ruoyi, Renren, and JEECG, I didn’t get any inspiration. Thinking further, is it possible to abandon the above meaning and refer to those well-known companies, such as Apple, Xiaomi... I still feel that these are not because of their well-known names, but because of their own development. The logic is reversed.
Suddenly one day, a flash of inspiration came back to the original idea, "one life is two, two is three, and three is all things", so let's just call it one two three, and the English name is also there, ABC. Although the three-character name is not as easy to pronounce as the two-character name, it finally has the taste I want. Simple, ordinary, fine.

Development platform information

Platform name: One Two Three Development Platform
Introduction: Enterprise-level general development platform
Design information: csdn column
Open source address: Gitee
open source protocol: MIT

Favorites, likes, and comments are welcome. Your support is the driving force for me to move forward.

Guess you like

Origin blog.csdn.net/seawaving/article/details/130450275