# Durian
**Repository Path**: java2demo/Durian
## Basic Information
- **Project Name**: Durian
- **Description**: 榴莲校园🐹,致力于为校园提供一套便捷的技术服务平台
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 102
- **Created**: 2020-10-13
- **Last Updated**: 2020-12-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Durian
--------------------------------------------------------------------------------
[English](./README.en.md) | 简体中文
[](https://gitee.com/qiu-qian/Durian/wikis/pages)
[](LICENSE)
## 介绍
榴莲校园,一个专注于Java技术的实践集合,致力于为校园提供一套便捷的技术服务平台。
想法起于这段时间接手的几个校内应用,例如题库,信息发布,校内社交这类的应用。这些应用无一都需要管理一些基本的信息,例如会员,专业,课程等。又或者都需要一些常用的功能,例如评论,全文检索,后台管理等。慢慢发现,其实开发一个简单,低并发的校内应用,特别是在学习时,这些通用的功能其实占据了开发任务的很大一部分,十分冗余,让人很难专注于这个应用本身的业务。
因此我想到了做一个轻量级的校内应用平台,为在这个平台上开发的应用提供一些基本的服务,如搜索引擎服务,校内信息中心,评论系统等,化繁为简,提高你的开发效率,使您专注于业务逻辑的开发。
平台的雏形已基本搭建,为演示效果,我使用一个题库小应用(榴莲题库)作为在此平台上开发的demo。
本项目的后台管理模块是基于我的另一个开源项目
[Sky](https://gitee.com/qiu-qian/sky.git),除后台管理模块使用Thymeleaf渲染以外(使用了[ruoyi](http://doc.ruoyi.vip/ruoyi/document/qdsc.html)对Thymeleaf的组件封装,在此鸣谢!),其他模块皆为restful风格的api,使用微信小程序做的前后端分离。为了专注与业务逻辑,对于持久层的代码,我专为项目设计了与之适应的代码生成器
[Orange](https://gitee.com/qiu-qian/Orange.git),支持关联结构(非外键)的代码生成,使您的二次开发更加快速。
详细信息,请参考项目开发文档:[Durian开发文档](https://gitee.com/qiu-qian/Durian/wikis/pages)
后台演示地址:[https://duriantiku.top](https://duriantiku.top:8085/)
搜索演示: [搜索题目](https://duriantiku.top:8088/es/search/tiku/question/must?pageNum=0&pageSize=10&content=%E6%8E%A7%E5%88%B6&creatorName=swing&key=ainimemeda)
文档地址: [Durian开发文档](https://gitee.com/qiu-qian/Durian/wikis/pages?sort_id=2720449&doc_id=892234)
Gitee地址:[https://gitee.com/qiu-qian/Durian](https://gitee.com/qiu-qian/Durian)
GitHub地址:[https://github.com/qiu-qian/Durian](https://github.com/qiu-qian/Durian)
榴莲题库小程序仓库地址:[https://gitee.com/qiu-qian/durian-mini](https://gitee.com/qiu-qian/durian-mini)
(个人精力有限,暂时只提供了题库模块的后台接口,还未实现全部的小程序页面,欢迎爱好前端,爱好开源的小伙伴来协助我完成这个demo)
特别声明:本项目可用于学习或毕设,(如需商用,请联系我) ! ! !
## 预览
### 后台预览
### 小程序预览
## 快速部署
在部署前,请确保你已经搭建好了部署环境 [Durain部署环境](https://gitee.com/qiu-qian/Durian/wikis/pages?sort_id=2866363&doc_id=892234)
如果您对ES还不太熟悉,请参考我的实践笔记 [ES6.8.11实践笔记](https://gitee.com/qiu-qian/Durian/wikis/pages?sort_id=2803809&doc_id=892234)
目前项目共有三个服务一个应用,如果你的计算机配置允许,可同时全部部署(大概4G内存占用)顺序为
* sky-center 校内信息中心,提供课程,专业,学生信息等服务
* sky-es 搜索引擎服务,为应用提供全文检索服务
* sky-system 后台管理,管理应用信息
* sky-tiku 榴莲题库应用
`注:每个模块都提供了三个环境配置,本地,测试,生产。并提供了一键运行的脚本,以下使用测试环境(该环境下使用本地的Linux虚拟机部署)来做演示,其他环境请自行参考`
### sky-center
配置sky-center/sky-center-api/src/main/resources/application-test.yml
```yaml
# 此处修改为你自己的数据源
druid:
url: jdbc:mysql://127.0.0.1:3306/sky-center
username: root
password: 123456
# 此处修改为你自己的数据源
redis:
database: 0
host: 127.0.0.1
port: 6379
```
进入 sky-center 目录下,在Linux中运行以下脚本
```bash
chomd +x run-test.sh
./run-test.sh
```
默认后台运行,不占用主线程,浏览根目录(/root)下的 log-center.log文件即可查看运行日志。
### sky-es
配置sky-es/sky-es-api/src/main/resources/application-test.yml
```yaml
druid:
# 此处修改为你自己的数据源
# 信息中心数据源
center:
# 从数据源开关
enabled: true
url: jdbc:mysql://192.168.111.152:3306/sky-center
username: root
password: 123456
# 题库模块数据源
tiku:
# 从数据源开关
enabled: true
url: jdbc:mysql://192.168.111.154:3306/sky-tiku
username: root
password: 123456
# 配置Elasticsearch (配置你之前部署的ES地址)
elasticsearch:
hostName: 192.168.111.151
port: 9200
```
进入 sky-es 目录下,在Linux中运行以下脚本
```bash
chomd +x run-test.sh
./run-test.sh
```
浏览根目录下的 log-es.log文件即可查看运行日志。
### sky-system
配置 sky-system/sky-system-api/src/main/resources/application-test.yml
```yaml
druid:
# 此处修改为你自己的数据源
# 后台管理数据源
system:
url: jdbc:mysql://192.168.111.153:3306/sky-system
username: root
password: 123456
# 信息中心数据源
center:
# 从数据源开关/默认关闭
enabled: true
url: jdbc:mysql://192.168.111.152:3306/sky-center
username: root
password: 123456
# 题库模块数据源
tiku:
# 从数据源开关/默认关闭
enabled: true
url: jdbc:mysql://192.168.111.154:3306/sky-tiku
username: root
password: 123456
# 当前服务部署地址:用来为其他服务提供访问地址(修改为你上面部署的地址)
innerService:
#信息中心
center:
url: 192.168.111.152:8087
#搜索引擎中心
es:
url: 192.168.111.151:8088
```
进入 sky-system 目录下,在Linux中运行以下脚本
```bash
chomd +x run-test.sh
./run-test.sh
```
浏览根目录下的 log-system.log文件即可查看运行日志。
访问 ip:8085端口即可进入后台管理界面
### sky-tiku
配置 sky-tiku/sky-tiku-api/src/main/resources/application-test.yml
```yaml
#修改为你自己的数据源
druid:
url: jdbc:mysql://127.0.0.1:3306/sky-tiku
username: root
password: 123456
# 当前服务部署地址:用来为其他服务提供访问地址(修改为你上面部署的地址)
innerService:
#信息中心
center:
url: 192.168.111.152:8087
#搜索引擎中心
es:
url: 192.168.111.151:8088
```
进入 sky-tiku目录下,在Linux中运行以下脚本
```bash
chomd +x run-test.sh
./run-test.sh
```
浏览根目录下的 log-tiku.log文件即可查看运行日志。
至此,题库模块的部署已经基本完成,小程序的部署请参考 [Durian小程序的部署文档](#)
## 项目结构
项目采用模块化的设计,遵循低耦合高内聚的设计思想,各个模块可单独部署,一个独立的项目模块(以信息中心模块举例)是由如下三个(或四个)子模块组成:
sky-center-module |
持久层和Service接口,此处代码可完全由生成器生成 |
sky-center-framework |
相关框架,例如spring,mybatis等配置 |
sky-center-api |
对外提供api服务 |
sky-center-inner |
对内提供服务模块
(由于基于RPC的微服务通信框架较为庞大,之后再考虑此方案,目前使用RestFul实现服务间同通信) |
### ES搜索模型
## 功能概览
## 捐赠
多多支持多多star
!!!
开源不易,演示服务器每个月还要缴费,可以请作者喝一瓶哇哈哈: