开源利器:Madong-Admin——让企业级SaaS开发变得简单高效

kzhzjdyw888

引言:SaaS开发的痛点与机遇

在当今数字化转型的浪潮中,SaaS(软件即服务)模式已成为企业服务的主流形态。然而,对于开发团队而言,构建一个稳定、安全且可扩展的SaaS产品却面临着诸多挑战:多租户隔离、权限管理、计费系统、性能优化……这些基础功能的开发往往需要耗费团队大量的时间和精力,严重拖慢了产品迭代的速度。

向大家介绍一款开源解决方案——Madong Admin,它旨在帮助企业快速构建SaaS产品的核心框架,让开发者能够专注于业务逻辑的创新,而非重复造轮子。

技术理念

Madong Admin是一款基于Webman打造的企业级SaaS快速开发框架,其核心设计理念是"约定优于配置"。通过提供一套完整的SaaS基础架构,帮助开发者避免了从零开始的繁琐工作。

我们的目标是让SaaS基础功能的开发时间从几个月缩短到几天

核心技术

1.智能多租户隔离

采用了创新的"混合隔离"策略,开发者可以根据业务需求灵活选择:

  • 共享数据库,独立Schema:适合中小规模SaaS应用
  • 完全独立数据库:满足企业级安全合规需求
  • 混合模式:关键数据独立存储,非敏感数据共享

2. 模块化权限中心

内置了基于RBAC(基于角色的访问控制)和ABAC(基于属性的访问控制)的混合权限系统,内置适配Casbin插件轻松拓展自己的权限,支持:

  • 可视化权限配置界面
  • 细粒度资源控制
  • 实时权限变更生效

在线体验

系统架构介绍

在后端系统中,控制层、服务层、验证层、DAO层和模型层是常见的架构组成部分。以下是对每个层次的简要介绍:

1. 控制层 (Controller)

控制层负责处理来自客户端的请求,接收输入并返回响应。它的主要职责包括:

  • 接收和解析 HTTP 请求。
  • 调用服务层的相应方法进行业务处理。
  • 返回处理结果给客户端,通常是 JSON 格式的数据。
  • 处理请求的路由和参数。

2. 服务层 (Service)

服务层负责实现具体的业务逻辑,通常包括:

  • 处理复杂的业务规则和流程。
  • 调用 DAO 层进行数据访问。
  • 进行事务管理,确保数据一致性。
  • 提供接口供控制层调用,简化控制层的逻辑。

3. 验证层 (Validation)

验证层主要负责对输入数据进行验证,确保数据的有效性和完整性。它的主要功能包括:

  • 定义输入数据的验证规则。
  • 检查请求参数是否符合预期格式。
  • 返回验证错误信息,阻止无效数据进入业务逻辑层。

4. DAO层 (Data Access Object)

DAO层负责与数据库进行交互,提供数据访问方法。它的主要职责包括:

  • 封装数据库操作,如增删改查。
  • 提供对数据的持久化操作。
  • 处理与数据库的连接和资源管理。

5. 模型层 (Model)

模型层定义了系统的数据结构和业务对象,通常包括:

  • 数据模型的定义(例如,用户、订单等)。
  • 数据与对象之间的映射关系。
  • 可能包含一些与数据相关的业务逻辑。

这种分层架构使得后端系统的各个部分职责明确,便于维护和扩展。每一层都可以独立开发和测试,增强了系统的可读性和可复用性。通过这种结构,开发者可以更容易地管理复杂的业务逻辑和数据操作,从而提高系统的整体性能和稳定性。

系统功能

  • 用户管理
  • 部门管理
  • 职位管理
  • 角色管理
  • 菜单管理
  • 字典管理
  • 系统配置
  • 操作日志
  • 登录日志
  • 服务监控
  • 定时任务
  • 短信发送
  • 邮件服务
  • 附件管理
  • 文件上传
  • 平台管理
  • 公告管理
  • 消息管理
  • 数据权限

前置准备

在启动项目前,你需要确保你的环境满足以下要求:

  • Node.js 20.15.0 及以上版本,推荐使用 fnm 或者 nvm 进行版本管理。
  • Git 任意版本。
  • Composer 大于2.0+。
  • Php 8.1级以上版本。
  • MySQL 5.7级以上版本。
  • Redis 任意版本。

项目展示

截图
截图
截图
截图
截图
截图

代码仓库

仓库 地址
gitee https://gitee.com/motion-code/madong
gitcode https://gitcode.com/motion-code/madong

gitee代码可能不是最新的

社区交流

点击链接加入腾讯频道【madong】:https://pd.qq.com/s/3edfwx2lm
截图

WeChat群聊

截图

6526 31 11
31个评论

a511721932

很好用的一套开源系统

  • kzhzjdyw888 2024-11-09

    感谢支持
    持续更新中后续还将推出更多开源计划。若您想掌握最新的进展动态,欢迎加入我们的QQ频道,实时获取相关信息。

ncluoyu

很好用的一套开源系统

Tinywan

不错

  • kzhzjdyw888 2024-11-10

    感谢支持
    有大佬您的鼓励,我们将更佳努力,持续完善项目,谢谢!

yajie

大佬牛批

  • kzhzjdyw888 2024-11-10

    感谢夸奖!
    还有很多需要学习和进步的地方。

saithink

非常棒! 👍 👍 👍

  • kzhzjdyw888 2024-11-10

    非常感谢saiadmin作者的认可和肯定!

    MaDong会持续努力,保持并提升产品质量,期待未来有更多合作和交流的机会,共同推动Webman生态和进步。

oliver.

大概看了下项目的代码风格和分层结构,还挺规范的。想请问下大佬,目前 master 分支稳定吗,最近刚好有个新项目在选开源框架

  • kzhzjdyw888 2024-11-13

    感谢支持
    后端RBAC已完善整体架构没什么变动,框架已预留CRUD代码生成部分实现。

kenshin

无条件支持!webman和vben5 也是我喜欢的两个技术栈。期待第一个release

567

支持 这个后端才是我喜欢的版本
前端顺便学习一下

  • kzhzjdyw888 2024-11-20

    感谢支持!
    如果只要前端,这边可以导出一份apifor 模型接口数据,可以脱离后端开发。

阿沁

支持 !!!

搬砖小助手

支持!!!代码生成什么时候能安排上

  • kzhzjdyw888 2024-11-20

    感谢支持
    这个功能需求好像用处不大吧!

  • 阿沁 2024-11-20

    一键curd很有必要 对于前端小白比较友好 起到引导作用

10bang

赞一个

北楚

给力,支持一下,

huihui14569

大佬, 啥时候上数据权限, 哈哈

  • kzhzjdyw888 2024-11-29

    数据权限
    前后端分离接口权限不够用,默认关闭默认路由是无法直接访问控制器的所有请求都必须经过定义路由,默认菜单表不添加接口权限不做验证的,如果需要更细可以在菜单表添加接口对应角色授权了才能访问,这块可以对菜单进行选项拓展选择路由列表进行添加创建。

saym

不错

Ace华

可以,这个系统真的挺不错的,可以直接拿来就用,后台功能很全,堪比java界的若依框架

efnic

点赞一个,正好需要学习Vue

  • kzhzjdyw888 2025-01-08

    开箱即用
    后端可选自己钟情的ORM tp或者la,前端也可以选择对应的拿手的ui 元数组驱动上手快。

tanhongbin

大佬我们系统准备用你这个开发,一会加你好友哈

Achun

作者大大--源码拉下来更新composer后,怎么安装呢

  • kzhzjdyw888 2025-01-18

    选择对应的分支下载,代码拉下来composer install 导入scripts 目录下的sql 就可以了
    1.master thinkORM模型
    2.laravel laraverORM模型
    3.mixture 混合模型适合测试多模型

  • Achun 2025-01-18

    感谢回复

yookey

项目拉下来,试用了下,前端是真够大。
开启定时任务执行时:报错
登录时,图形验证码错的也可以登录哈

  • kzhzjdyw888 2025-01-20

    感谢你的反馈
    1.大前端脚手架相对比较大,最终看打包后项目大小,不建议放到后端代码里面。
    2.验证码不生效默认关闭了,config/captcha captcha_open_flag 打开即可 这里后面做调整关闭了验证码前端不显示该组件。
    3.getCureeUser() 获取当前登录用户信息,定时任务没有经过路由没有相关登录信息导致。

  • yookey 2025-01-20

    好的,谢谢!

luscio

有代码生成的功能吗

  • kzhzjdyw888 2025-01-21

    很抱歉暂不支持该功能
    不过接口都标准化定义,可以自己写模板扩展。

567

不错 赞一个

jian1098

后台页面很漂亮👍如何能像saiadmin一样生成代码就完美了

  • kzhzjdyw888 2025-02-27

    关于可视化生成代码的功能

    已有很多小伙伴私信表示期待,认识到这一功能对于提高开发效率和简化工作流程的重要性。因此,我可以确认,该功能已经在我们的开发计划中了。

稚出

composer install提示找不到madong/madong-helper

solo123

老铁,什么时候开放演示站呢

  • kzhzjdyw888 2025-03-31

    可以正常访问,已追加原来域名地址或者使用admin.madong.tech访问

567

支持一下

lla

牛批

z

坐等更新代码生成,顶

  • kzhzjdyw888 2025-06-06

    先验证一波
    没问题后面集成CI/DI 要不代码生成有什么用

yookey

看了JWT部分:$payload = JWT::jsonDecode(JWT::urlsafeB64Decode($bodyb64));
这个是不是没有作token的签名验证,如果token被恶意篡改岂不是很不安全?还是我看错了?

  • kzhzjdyw888 2025-06-08

    创建token 有添加签名的请查看对应getToken
    parseToken解析的时候只使用body结合redis 用户信息验证过期时间,如果用户觉得不安全可以改成完整token解析。

  • oliver. 4天前

    jwt 签名校验是 jwt 安全性的基本保障,最核心的步骤不能少。难道是疏忽了?

  • kzhzjdyw888 8小时前

    该部分已更新

Jinson

看过源码,感觉比较规范,不错

xiaobai

不错,啥时候更新

superkingm

我上个月使用这个这个系统master应该是升级到了2.0.模型生成雪花ID会出现重复。切换到PGSQL数据库部分方法会失效。还有一些方法的返回标记的是TP的orm。导致运行报错,不知道是不是还没有迭代更新完的原因。自己陆陆续续给修改了一些使用了。整体还是不错的

  • kzhzjdyw888 7天前

    感谢支持!
    目前主分支3.x,社区近期放出最新版本测试体验没有问题的话应该在在最近发公开。可以关注一下频道动态或者群动态。

kzhzjdyw888

460
积分
0
获赞数
0
粉丝数
2023-06-07 加入
🔝