# Creek-dam-nova
**Repository Path**: lism/Creek
## Basic Information
- **Project Name**: Creek-dam-nova
- **Description**: Creek-dam-nova是一套全栈架构方案。 Creek是一套前端实现基于`nodejs+express+bootstrap+fis3+jquery+seajs`实现了一整套架构体系, 之后会做一套基于`nodejs+eggjs+webpack+vuejs`体系架构。dam是一套后端是基于`sca`规范`SOA` 分布式架构体系,框架使用了`spring+mybatis+mysql` 。 nova是一套自动运维平台使用`python`的`django`来搭建运维平台,支持svn自动化部署Java和nodejs项目。哈哈,关注越高,项目进度就越快 >_<
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: https://www.zaodei.com/jpress/index
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 36
- **Created**: 2018-07-16
- **Last Updated**: 2020-12-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 前言
Creek(小溪)-dam(水坝)不仅仅一个架构,而是整个开发体系,并且努力打造一套从 `前端自动化架构 - 后端分布式架构 - 基础服务 - 自动化部署 - 系统监测` 的全方位企业级开发解决方案。
# 项目介绍
Creek-dam是提供一整套全栈架构方案,从前端基于nodejs整个自动化构建体系,到后端Java的分布式体系,再到python自动化运维平台,努力打造快速构建,前端分离,持续集成一键部署。
技术体系如下:
(1)Creek是一套前端实现基于`nodejs+express+fis3+boostrap+Handlebars+jquery+seajs`实现了一整套架构体系。
企业级版本基于`nodejs+eggjs+webpack+vuejs`体系架构。
(2)dam是一套后端是基于sca规范SOA 分布式架构体系,框架使用了`Spring Framework+mybatis+mysql+redis`等常见技术
(3)nova是一个运维平台使用`python`的`django`来搭建运维平台,支持svn自动化部署Java和nodejs项目。
(4)code-factory是一个自动化生成项目代码
# 软件架构
## 整体架构体系
.png")
## 前端架构体系
### 前后端分离

### 前端架构体系

### 后端架构体系

## 版本发布流程图
### fis打包流程图

### nova自动化发布流程图

### 企业基础服务效果图

Creek项目目录结构如下:
```
creek
- 404 响应404错误
- 500 响应500错误
- bin node服务器的启动脚步
- components 前端组件
- doc 平台文档内容,不会被发布
- modules 自定义node模块(暂用)
- static 框架级别的公用静态资源
|- jquery jQuery库
|- jquery-plugins 基于jQuery的插件,如ztree等
|- bootstrap bootstrap框架
|- bootstrap-plugins 基于bootstrap的插件,如datetimepicker
|- images 框架级别的图片
|- mixins less的混入函数库
|- biz 业务跨包共用的静态内容
|-style 业务跨包共用的样式文件(css/less)
|-images 业务跨包共用的图片资源
- web 不需要权限即可以访问的站点内容
|- [module] 业务代码包
|- style 业务包内共用的样式文件(css/less)
|- images 业务包内共用的图片资源
- apps 需要进行权限控制的站点内容
|- [module] 业务代码包
|- style 业务包内共用的样式文件(css/less)
|- images 业务包内共用的图片资源
- app.js 服务器入口文件
- favicon.ico 页面标题logo(暂存)
- fdp-config.js 环境配置文件
- fis-config.js fis工具配置文件
- install.bat 用于安装node模块依赖的脚本文件
- package.json node包配置文件
- readme.md 平台文档入口,不会被发布
- release.bat 用于发布前端代码的脚本文件
- start.bat 用于启动服务器的脚本
```
dam项目目录结果
```
- dam web项目包工程
- dam-app java技术包,负责框架基础日志类,工程类,文件类
|- aop 日志切面
|- asynctask 多线程类
|- service 基础服务类,公共类,服务治理抽象类
|- servlet web服务接口入口,文件上传服务类
|- utils 依赖的第三工具,excel,pdf,md5加密等工具类
- dam-portal java技术包,负责门户相关服务
|- common 公共服务包
|- service 公共服务类,调用其他子系统接口代理类,切面类
|- dao 公共服务类,数据处理
|- utils 公共服务类,封装常用工具
|- service 业务服务类,各种应用接口
|- servlet web服务接口入口,文件上传服务类
|- interface 接口类,暴露给其他子系统接口
- dam-exception java技术包,负责全局异常处理
|- common 公共服务包
|- service 公共服务类,调用其他子系统接口代理类,切面类
|- dao 公共服务类,数据处理
|- utils 公共服务类,封装常用工具
|- service 业务服务类,各种应用接口
|- servlet web服务接口入口,文件上传服务类
|- interface 接口类,暴露给其他子系统接口
- dam-ieds java技术包,负责服务治理
|- common 公共服务包
|- service 公共服务类,调用其他子系统接口代理类,切面类
|- dao 公共服务类,数据处理
|- utils 公共服务类,封装常用工具
|- service 业务服务类,各种应用接口
|- servlet web服务接口入口,文件上传服务类
|- interface 接口类,暴露给其他子系统接口
- dam-spider java技术包,负责爬虫,集成webmagic和webcollector
|- common 公共服务包
|- service 公共服务类,调用其他子系统接口代理类,切面类
|- dao 公共服务类,数据处理
|- utils 公共服务类,封装常用工具
|- service 业务服务类,各种应用接口
|- servlet web服务接口入口,文件上传服务类
|- interface 接口类,暴露给其他子系统接口
- dam-redis java技术包,负责消息服务管理
|- common 公共服务包
|- service 公共服务类,调用其他子系统接口代理类,切面类
|- dao 公共服务类,数据处理
|- utils 公共服务类,封装常用工具
|- service 业务服务类,各种应用接口
|- servlet web服务接口入口,文件上传服务类
|- interface 接口类,暴露给其他子系统接口
- dam-rmqconsumer java技术包,负责消息服务管理,消费者
|- common 公共服务包
|- service 公共服务类,调用其他子系统接口代理类,切面类
|- dao 公共服务类,数据处理
|- utils 公共服务类,封装常用工具
|- service 业务服务类,各种应用接口
|- servlet web服务接口入口,文件上传服务类
|- interface 接口类,暴露给其他子系统接口
- dam-rmqproducer java技术包,负责消息服务管理,生产者
|- common 公共服务包
|- service 公共服务类,调用其他子系统接口代理类,切面类
|- dao 公共服务类,数据处理
|- utils 公共服务类,封装常用工具
|- service 业务服务类,各种应用接口
|- servlet web服务接口入口,文件上传服务类
|- interface 接口类,暴露给其他子系统接口
- dam-timer java技术包,负责定时任务
|- common 公共服务包
|- service 公共服务类,调用其他子系统接口代理类,切面类
|- dao 公共服务类,数据处理
|- utils 公共服务类,封装常用工具
|- service 业务服务类,各种应用接口
|- servlet web服务接口入口,文件上传服务类
|- interface 接口类,暴露给其他子系统接口
- dam-ucenter java基础服务包,负责用户,权限
|- common 公共服务包
|- service 公共服务类,调用其他子系统接口代理类,切面类
|- dao 公共服务类,数据处理
|- utils 公共服务类,封装常用工具
|- service 业务服务类,各种应用接口
|- servlet web服务接口入口,文件上传服务类
|- interface 接口类,暴露给其他子系统接口
- dam-pay java基础服务包,负责第三方支付业务
|- common 公共服务包
|- service 公共服务类,调用其他子系统接口代理类,切面类
|- dao 公共服务类,数据处理
|- utils 公共服务类,封装常用工具
|- service 业务服务类,各种应用接口
|- servlet web服务接口入口,文件上传服务类
|- interface 接口类,暴露给其他子系统接口
- dam-wechat java基础服务包,负责微信第三方业务
|- common 公共服务包
|- service 公共服务类,调用其他子系统接口代理类,切面类
|- dao 公共服务类,数据处理
|- utils 公共服务类,封装常用工具
|- service 业务服务类,各种应用接口
|- servlet web服务接口入口,文件上传服务类
|- interface 接口类,暴露给其他子系统接口
- dam-sms java基础服务包,负责短信第三方业务
|- common 公共服务包
|- service 公共服务类,调用其他子系统接口代理类,切面类
|- dao 公共服务类,数据处理
|- utils 公共服务类,封装常用工具
|- service 业务服务类,各种应用接口
|- servlet web服务接口入口,文件上传服务类
|- interface 接口类,暴露给其他子系统接口
- dam-cms java基础服务包,负责内容管理
|- common 公共服务包
|- service 公共服务类,调用其他子系统接口代理类,切面类
|- dao 公共服务类,数据处理
|- utils 公共服务类,封装常用工具
|- service 业务服务类,各种应用接口
|- servlet web服务接口入口,文件上传服务类
|- interface 接口类,暴露给其他子系统接口
- lib web项目依赖的jar
```
code-factory项目是生成对应业务代码java项目
### 私有仓库

### 安装教程
creek环境要求:node4.5.0
1、使用Sinopia搭建私有的npm仓库 [传送门](https://segmentfault.com/a/1190000005790827)
2、fis3使用(自动化构建,推送静态文件)[传送门](http://fis.baidu.com/)
3、bower使用(同seajs理前端组件库) [传送门](https://bower.io/)
4、pm2使用 (服务状态管理) [传送门](https://wohugb.gitbooks.io/pm2/content/index.html)
5、nodemon使用 (调试与检测文件)[传送门](https://www.cnblogs.com/chris-oil/p/6239097.html)
6、express使用 (node的web框架)[传送门](http://www.expressjs.com.cn/)
dam环境要求:jdk1.7
1.spring使用
2.mybatis使用
3.mysql使用
4.redis使用
5.nginx使用
nova环境要求:python2.7
1.python使用
2.django使用
3.fabric使用
### 使用说明
#### creek在线说明
[在线文档](https://www.zaodei.com/book/creek/index.html)
私有仓库:[传送门](http://118.24.181.144:4873/)
#### dam在线说明
正在整理。。。。
#### nova在线说明
nova在线地址 :[传送门](https://github.com/haohandongku/nova)
### 相关文章
1、creek-dam的性能测试报告 [地址](https://www.zaodei.com/jpress/c/482)
### 框架体系任务与计划
1)前端框架体系,并写出文档
文档设计内容:
1.服务器端搭建(nodejs_express_fis3)
2.项目目录结构
3.项目部署(测试环境,本地环境)
4.项目调试
2)后端架构体系,并写出文档
文档设计内容:
1.框架搭建(spring+mybatis+mysql+redis+SOA架构体系)
2.项目目录结构
3.项目部署
4.项目调试
3)基础项目
1.用户中心构建(java搭建)
2.授权中心搭建(使用nodejs)
4) 产品项目搭建
1.短信第三方系统(支持常见开发商天翼,阿里云等)
2.支付第三方系统(支持微信,支付宝,银联)
3.微信第三方平台(支持微信公共号,微信小程序管理)
5)运维系统搭建 (django项目)
1.部署nodejs项目(内测和生产搭建架构图)
2.部署java项目架构图
3.集群搭建(nodejs集群,java集群)
### 项目目标
该项目体系资料正在整理当中,前端项目框架成型三年多了,后端框架成型五年多了,能够支撑很强业务能力,已上线项目已经有二三十多个了,项目覆盖web应用,微信公共号,开放平台等等业务场景!项目会从架构搭建---->到三个企业级别项目(第三方微信平台,第三方短信平台,第三方支付平台)协同开发--->项目自动化部署来进行部署开发!!预计框架级别7月底搞完(基础版本),基础项目8月底搞完,还请持续关注!!