MoChat - 国内首款完全开源的 PHP 企业微信管理系统正式发布

logo

MoChat —— 让企业微信开发更简单

Php Version Swoole Version MoChat License

输入图片说明

项目地址

项目简介

MoChat, easy way to WeWork

MoChat 是开源的企业微信应用开发框架&引擎,是一套通用的企业微信管理系统,得益于 Hyperf 框架的优秀,MoChat 可提供超高性能的同时,也保持着极其灵活的可扩展性。

应用场景

可用于电商、金融、零售、餐饮服装等服务行业的企业微信用户,通过简单的分流、引流转化微信客户为企业客户,结合强大的后台支持,灵活的运营模式,建立企业与客户的强联系,让企业的盈利模式有了多种不同的选择。

功能特性

六大模块助力企业营销能力升级:

  • 引流获取:通过多渠道活码获取客户,条理有序分类
  • 客户转化:素材库、欢迎语互动客户,加强与客户联系
  • 客户管理:精准定位客户,一对一标签编辑,自定义跟踪轨迹,流失客户提醒与反馈
  • 客户群管理:于客户的基础,进一步获取客户裂变,自动拉群。集中管理,快速群发
  • 聊天侧边栏:提高企业员工沟通效率,精准服务
  • 企业风控:客户聊天记录存档,并设立敏感词库、敏感词报警,多方位跟进管理员工服务

业务架构

严格的分层来保证架构的灵活性

架构

核心技术

  • 前端技术栈: VueVuexVantAnt Design of Vue
  • 后端技术栈: PHPMySQLRedisHyperf

环境部署

准备工作

PHP >= 7.2 (推荐7.4版本)
Swoole >= 4.5
Composer
MySQL >= 5.7
Redis
FFmpeg
Node.js >= 10

运行系统

后端运行
# 目录
git clone https://github.com/mochat-cloud/mochat.git

cd /path/to/mochat/api-server

# 安装依赖
composer install

# 运行PHP服务
php bin/hyperf.php start
前端运行
# 进入项目目录
cd /path/to/mochat/dashboard

# 安装依赖
yarn install

# 编译生成dist
yarn run build
必要配置

1、后端配置运行脚本

  • php bin/hyperf.php mc:init,根据提示完成配置

2、前端配置

  • 修改 .env 中的配置 VUE_APP_API_BASE_URL= 接口地址

部署系统

后端部署
  • Docker:推荐根据api-server/Dockerfile使用K8S部署
  • Shell: 使用linux-install.sh安装必要依赖
    cd /usr/local/src && wget https://mochatcloud.oss-cn-beijing.aliyuncs.com/deploy/CentOS-install.sh && ./CentOS-install.sh
  • Nginx 配置:具体参考开发文档
前端部署

当项目开发完毕,只需要运行一行命令就可以打包你的应用

# dashboard 打包正式环境
yarn run build

# sidebar 打包正式环境
yarn run build

构建打包成功之后,会在根目录生成 dist 文件夹,里面就是构建打包好的文件,通常是 .js.cssindex.html 等静态文件。

通常情况下 dist 文件夹的静态文件发布到你的 nginx 或者静态服务器即可,其中的 index.html 是后台服务的入口页面。

项目介绍

文件结构

.
├── api-server------------------------------------------ 后端接口代码
├── dashboard------------------------------------------- 管理后台前端代码
├── sidebar--------------------------------------------- 聊天侧边栏前端代码
└── workbench------------------------------------------- 工作台前端代码
后端结构
.
├── app
│  ├── Action------------------------------------------- 控制器
│  ├── Command------------------------------------------ 命令行
│  ├── Constants---------------------------------------- 枚举
│  ├── Contract----------------------------------------- 契约
│  ├── Listener----------------------------------------- 监听
│  ├── Logic-------------------------------------------- 逻辑层
│  ├── Middleware--------------------------------------- 中间件
│  ├── Model-------------------------------------------- 模型层
│  ├── Process------------------------------------------ (消费)进程
│  ├── QueueService------------------------------------- 异步列队
│  ├── Service------------------------------------------ 服务层
│  ├── Task--------------------------------------------- 任务
│  ├── Tool--------------------------------------------- 工具
├── plugins--------------------------------------------- 插件
│  ├── archive------------------------------------------ 插件归档
│  └── vendor------------------------------------------- 插件代码 
├── public
├── bin
├── composer.json
├── composer.lock
├── config
├── docker-compose.sample.yml
├── docker-entrypoint.sh
├── Dockerfile
├── migrations
├── package.json
├── phpstan.neon
├── phpunit.xml
├── README.MD
├── runtime
├── seeders
├── storage
├── test
└── vendor
前端结构
dashboard 和 sidebar 项目结构类似
.
├── README.md------------------------------------------- 项目说明
├── babel.config.js------------------------------------- babel配置文件
├── config
│   ├── plugin.config.js-------------------------------- 插件配置文件
│   └── themePluginConfig.js---------------------------- 主题配置文件
├── jest.config.js
├── jsconfig.json
├── package.json
├── postcss.config.js
├── public
│   ├── favicon.ico------------------------------------- 浏览器icon
│   └── index.html-------------------------------------- Vue 入口模板
├── src
│   ├── App.vue----------------------------------------- Vue 模板入口
│   ├── api--------------------------------------------- Api ajax 等
│   ├── assets------------------------------------------ 本地静态资源
│   ├── components-------------------------------------- 业务通用组件
│   ├── core-------------------------------------------- 项目引导, 全局配置初始化,依赖包引入等
│   ├── global.less------------------------------------- 全局样式
│   ├── layouts----------------------------------------- 控制器
│   ├── main.js----------------------------------------- Vue 入口 JS
│   ├── router------------------------------------------ Vue-Router
│   ├── store------------------------------------------- Vuex
│   ├── utils------------------------------------------- 工具库
│   └── views------------------------------------------- 业务页面入口和常用模板
├── vue.config.js--------------------------------------- Vue主配置
└── webstorm.config.js---------------------------------- ide配置文件

联系作者加入群

输入图片说明

部分演示图,持续更新

输入图片说明
输入图片说明
输入图片说明
输入图片说明
输入图片说明
输入图片说明
输入图片说明
输入图片说明
输入图片说明

版权声明

MoChat 开源版遵循 GPL-3.0 开源协议发布,并提供免费研究使用,但绝不允许修改后和衍生的代码做为闭源的商业软件发布和销售!

本帖已被设为精华帖!
本帖由系统于 3年前 自动加精
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 27

:+1:拉下来学习下

3年前 评论
zhanghaidi

可以,感觉比微伴助手厉害

3年前 评论

很厉害。最后一个图是什么?另外前端用的是什么开发的?

3年前 评论

学习一下 :+1:

3年前 评论

你这开源协议有问题啊,GPL本身可商用,你这不让商用,不矛盾吗?

3年前 评论
overtrue 3年前
Larva (作者) 2年前

膜拜中,希望提供一个在线演示的demo

3年前 评论

后台页面很工整,看着很舒服,,,不是粗制滥造的那种,,,

3年前 评论

这个厉害了,最近一直再学习这个,终于可以有参考对象了

3年前 评论

@牛铁柱

最后一个图是聊天侧边栏。

UI框架是阿里的 Ant Design of Vue

3年前 评论

@91hero

可以加交流群,群里会提供。

3年前 评论
celaraze

可以,很强!

3年前 评论

很棒的产品 如何进群呢?

3年前 评论

@24K大白羊 加我微信 maxincai ,拉你进群

3年前 评论

官网 开发文档点击不了

3年前 评论

@keer 开发文档还差一点,等补充完整会开放。

3年前 评论
keer 3年前

请问商业版多少钱

3年前 评论
maxincai (楼主) 3年前

mark一下,代码的写法可以好好学习了

2年前 评论

很多bug 收费后不处理售后

1年前 评论
咕咕噜 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!