188 lines
4.9 KiB
Markdown
188 lines
4.9 KiB
Markdown
# Epidemic prevention platform
|
||
|
||
> 基于微服务的社区疫情防控系统(防疫平台)
|
||
|
||
代码仓库:[GitHub](https://github.com/coder-xiaomo/epp) [Gitee](https://gitee.com/coder-xiaomo/epp) [自建](https://git.only4.work/coder-xiaomo/epp)
|
||
|
||
|
||
|
||
## 简介
|
||
|
||
|
||
|
||
## 功能
|
||
|
||
对社区疫情管控模式进行分析,针对社区人员进出入、体温上报、买菜团购、药品购置等日常生活物资的调控与管理进行分析。深入了解微服务架构,设计并实现社区疫情防控系统
|
||
|
||
|
||
|
||
## 要求
|
||
|
||
1.分析社区疫情管控模式需求;
|
||
2.深入理解微服务架构思想;
|
||
3.设计并实现社区疫情防控各模块;
|
||
4.撰写论文
|
||
|
||
|
||
|
||
## 使用技术栈
|
||
|
||
项目开发环境:Ubuntu 22.04、OpenJDK 11、MySQL 8.0.12
|
||
|
||
| 板块 | 技术栈 | 开发工具 | 备注 |
|
||
| ------ | --------------------------------------------------------- | ------------- | ---- |
|
||
| 前端 | Vue 3(JavaScript框架)、Element Plus(UI组件库) | VS Code | 暂定 |
|
||
| 后端 | Java 11(开发语言)、SpringCloud(微服务)、Redis(缓存) | Intellij IDEA | |
|
||
| 数据库 | MySQL(数据存储) | Navicat | |
|
||
|
||
|
||
|
||
## 需要确定的细节
|
||
|
||
用户是自己注册,还是社区提供账号,或者是社区提供token,用户刷卡实现身份验证?
|
||
|
||
|
||
|
||
## 一些需要细想的想法
|
||
|
||
用户和身份分离:一个用户账号可以绑定多个身份,比如一个社区人员同时可以是志愿者
|
||
|
||
|
||
|
||
## 前端系统设计
|
||
|
||
### 管理员端
|
||
|
||
### 社区人员端
|
||
|
||
### 志愿者端
|
||
|
||
|
||
|
||
## 后端模块设计
|
||
|
||
用户认证模块(用户登录、注册、三方授权登录等)
|
||
|
||
用户信息模块(用户基本信息<住址,联系方式>)
|
||
|
||
用户健康状态模块(维护用户的健康状态,与外部系统同步信息)
|
||
|
||
生活物资模块(维护生活物资商品信息<菜品、药品>)
|
||
|
||
订单模块(社区人员下单,涉及到秒杀相关,可指定上门派送、自取或者由用户自主选择)
|
||
|
||
派送模块()
|
||
|
||
|
||
|
||
## 数据库设计
|
||
|
||
用户表
|
||
|
||
人员进出日志表(按月归档)
|
||
|
||
体温上报表(按日归档)
|
||
|
||
|
||
|
||
## 启动项目
|
||
|
||
### 后端
|
||
|
||
|
||
|
||
### 前端
|
||
|
||
代码克隆下来后,第一次需要安装依赖
|
||
|
||
```bash
|
||
cd ./frontend
|
||
npm install --legacy-peer-deps
|
||
```
|
||
|
||
之后在 `frontend` 目录下运行即可
|
||
|
||
```bash
|
||
npm run serve
|
||
```
|
||
|
||
|
||
|
||
|
||
|
||
## 开发步骤记录
|
||
|
||
### 前端
|
||
|
||
#### 初始化Element-plus项目
|
||
|
||
参考:https://blog.csdn.net/weixin_39237340/article/details/121132154
|
||
|
||
```bash
|
||
# 检查 node 版本
|
||
node -v
|
||
# 安装 vue3 脚手架
|
||
npm install -g @vue/cli
|
||
# 查看安装的 vue/cli 版本
|
||
vue --version
|
||
# 使用GUI(可视化面板)形式来创建vue项目
|
||
vue ui
|
||
# npm install element-plus --save
|
||
```
|
||
|
||
|
||
|
||
### 后端
|
||
|
||
|
||
|
||
## SpringCloud组件
|
||
|
||
| 功能 | 组件 |
|
||
| -------------------------------- | ------------------------------------------------------------ |
|
||
| 服务注册中心(服务注册与发现) | Eureka(停更)、Zookeeper、Consul、Alibaba Nacos(推荐) |
|
||
| 服务调用(服务负载与调用) | Netflix OSS Ribbon(进入维护)、SpringCloud LoadBlancer<br />Netflix Feign(停更)、OpenFeign |
|
||
| 服务降级(服务熔断降级) | Hystrix(停更)、resilience4j、Alibaba Sentinel(推荐) |
|
||
| 服务网关 | Zuul(停更)、Zuul2(胎死腹中)、SpringCloud Gateway(推荐) |
|
||
| 服务分布式配置(服务分布式配置) | SpringCloud Config(不再使用)、Alibaba Nacos(推荐) |
|
||
| 服务总线 | SpringCloud Bus(不再使用)、Alibaba Nacos(推荐) |
|
||
| 服务开发 | Spring Boot |
|
||
|
||
|
||
|
||
## 相关链接
|
||
|
||
### 后端
|
||
|
||
#### JDK
|
||
|
||
OpenJDK:https://openjdk.org/
|
||
|
||
Java SE 11:https://jdk.java.net/java-se-ri/11
|
||
|
||
#### Spring
|
||
|
||
Spring Cloud官网:https://spring.io/projects/spring-cloud
|
||
|
||
Spring Cloud Alibaba GitHub repo:https://github.com/alibaba/spring-cloud-alibaba
|
||
|
||
Spring initializr:https://start.spring.io/
|
||
|
||
https://start.spring.io/#!type=maven-project&language=java&platformVersion=2.7.5&packaging=jar&jvmVersion=11&groupId=com.cxyxiaomo&artifactId=entrance&name=Epidemic%20prevention%20platform&description=&packageName=com.cxyxiaomo.entrance&dependencies=lombok,mysql,mybatis
|
||
|
||
#### Maven
|
||
|
||
MVN REPOSITORY:https://mvnrepository.com/
|
||
|
||
### 前端
|
||
|
||
#### Element Plus
|
||
|
||
Element Plus官网:https://element-plus.gitee.io/zh-CN/
|
||
|
||
安装:https://element-plus.gitee.io/zh-CN/guide/installation.html
|
||
|
||
#### Ant Design
|
||
|
||
Ant Design of Vue:https://www.antdv.com/docs/vue/introduce
|