# l-workflow **Repository Path**: lang_junnan_admin/l-workflow ## Basic Information - **Project Name**: l-workflow - **Description**: 1、初衷: 目前很多业务系统都需要工作流框架,但是市面上的工作流框架及其臃肿,没有一款好用的,例如 Activiti,Camunda,Flowable这些框架动不动就需要部署 30-40来张表,里面复杂且很多功能用不到,例如用户权限等,我相信很多公司都会有自己的权限体系。 2、成功:一个超级经典的小型工作流框架,只需要5张表,可以根据上一步下一步灵活配置并嵌入到项目当中,提供历史数据查询,任务等 - **Primary Language**: Unknown - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: https://gitee.com/lang_junnan_admin - **GVP Project**: No ## Statistics - **Stars**: 13 - **Forks**: 9 - **Created**: 2023-11-18 - **Last Updated**: 2024-04-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: Gin, gorm, nacos, Redis, MySQL ## README # l-workflow 最经典的小型可配置工作流框架 #### 介绍 1、初衷: 目前很多业务系统都需要工作流框架,但是经过我的市场调研之后发现市面上的工作流框架及其臃肿,没有一款好用的,例如 Activiti,Camunda,Flowable这些框架动不动就需要部署 30-40来张表,里面复杂且很多东西没用,我只想要工作流相关的东西,他们却自带绘制及用户权限相关的东西,这种确实不是我想要的效果, 2、目标: 研发l-workflow框架可以做到 体积小又灵活且可配置,而且对外提供接口, 3、成果: l-workflow仅仅只有5张表,可以做到根据动态配置的工作流信息,审批人信息及步骤信息例如上一步下一步,通过接口调用方式 动态处理审批通过,拒绝,开始,重新发起,当前节点及数据,当前任务,历史数据查询等功能,非常好用 #### 软件架构 golang gin gorm mysql redis nacos gopkg #### 安装教程 1. 执行db文件夹的sql脚本,初始化在mysql上 2. 需要配置配置config相关的初始化文件信息,包括 mysql,reids,nacos 链接的信息 3. 本项目使用[Go Mod](https://github.com/golang/go/wiki/Modules)管理依赖。 4. 项目运行后启动在 8080 端口上 传统部署方式 这种方式需要手动将源代码复制到服务器上,并编译生成可执行文件。具体步骤如下: 将项目源代码拷贝到服务器上。 在服务器上安装Go语言环境。 使用 go build 命令编译项目,并生成可执行文件。 使用 nohup ./可执行文件 & 命令启动程序并转入后台运行。 这种方式比较繁琐,需要手动管理进程和日志等信息,但在一些简单的场景下仍然是一种可选的方式。 使用容器化技术部署 使用容器化技术(如Docker)可以让部署更加便捷,同时还提供了更好的隔离性、可移植性和扩展性。具体步骤如下: 构建镜像:使用Dockerfile文件构建Docker镜像,其中包含了项目的源代码和依赖库等信息。 启动容器:使用Docker命令启动容器,并将端口映射到宿主机上。 这种方式需要学习一些Docker相关的知识,但能够提高部署效率和可靠性。 #### 目录结构 1. cache 内部缓存 2. common 工具 3. config 配置 4. controllers 接口层 5. log 日志 6. logic 逻辑层 7. models 实体层 8. nacos 注册中心配置中心 9. redis 外部缓存 10. repository 数据操作层 11. route 路由层 12. db sql脚本 #### 作者/参与贡献者 1. 郎俊楠