需求分析
以前做项目写文档经常用Visio,自己买了一台电脑的授权,用在了自己常用的工作电脑上。后来出差有点多,用笔记本写文档写的就有点多了,又舍不得再买一台电脑的Visio授权,所以就想找一个免费的、好用的绘制流程图的软件。
成都创新互联是一群有想法、有热情,对互联网抱有执着信念的年轻人,愿用自己的智慧和热情,帮助您使用好互联网工具,成为您的建站英雄,成为您网站制作和网络营销的“秘密武器”,专注于网站策划、备案、域名与空间、设计、后台开发、关键词优化排名、运营管理、维护服务、微信网站、手机网站开发,网站上线不是大家合作的终结,相反,网站维护才刚刚开始,我们期待常年累月的网站运行过程总着为您提供更多的支持。我们致力于解决问题,创造价值,不推诿,主动承担。
后来找到ProcessOn,一个免费的绘制流程图的网站,上面有不少免费模板,最多可以云存储9张图。但是9张图对我来说实在太少了,我就买了一年的会员,不记得是多少钱了,反正不多。后来会员到期,再想买,发现怎么都涨价到160一年了。于是我想,能不能用开源的的东西,快速做一个类似ProcessOn的网站,具体需求就两个:
- 可以绘制流程图
- 能够云存储
所以就可以从这两方面找轮子了。
寻找轮子
免费的流程图,首先我找到了draw.io。需要自己配置云存储,不过只支持国外的比如OneDrive或者Dropbox等,国内都不太好用。后了解到draw.io以及其他大部分流程图网站都是根据mxGraph的示例程序GraphEditor做出来的,因此他们的界面都基本一样,所以我也决定以这个为基础,辅以draw.io的部分组件。
然后就是云存储了,找一个开源的网盘系统就可以了,这样的系统很多,比如,Seafile,nextCloud等等。不过有一些条件,第一是要纯粹的Web系统,方便跟GraphEditor集成,第二是最好跨平台,第三是方便集成七牛云、阿里云OSS等大型公有云存储系统。最终采用了Cloudreve
系统架构
系统架构其实就挺简单了:
数据层,首先是Cloudreve是用MySQL数据库的,因此系统使用MySQL数据库并继承了Cloudreve的绝大部分数据结构。本地文件存储和七牛云都可以拿来当做文件存储,这是可以共存的,目前本系统流程图文件使用本地文件存储,图片使用七牛云。
服务层主要继承于Cloudreve系统,简单修改了其中的文件和分享部分,更好的支持流程图文件。添加了图形处理和支付服务。
应用层分为基于Cloudreve的文件管理系统和基于GraphEditor的流程图编辑系统,两个系统基本独立,同时调用服务层的文件服务和图形服务。
整合细节
整合过程中有几个细节:
- GraphEditor是使用xml明码存储流程图的,因此需要对Cloudreve进行改造,只支持xml文件,并且对xml文件进行特殊处理,比如编辑、预览等。
- 网盘系统没有新建文件这说,只有上传下载,因此需要在Cloudreve网盘系统中使用上传接口来做一个新建流程图功能。
- xml文件实际上是纯文本,因此在GraphEditor的流程图编辑界面,只需要调用Cloudreve网盘系统中的文本编辑接口直接编辑xml即可。
- php版本的mxGraph接口已经很久没有更新过,无法根据比较复杂的流程图xml文件生成预览图片,因此需要前台生成,然后上传到后台。
- 中文库以及模板可以直接使用draw.io的。
源码
示例站
分享名称:开源流程图绘制网站数字绘技术路线
链接URL:http://lswzjz.com/article/gpjjdi.html