# 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.撰写论文 ## 使用技术栈 项目开发环境:Windows 11 / Ubuntu Desktop 22.04 LTS、OpenJDK 11、MySQL 8.0.12(暂定) 项目部署环境:Linux、MySQL、nacos(暂定) | 板块 | 技术栈 | 开发工具 | 备注 | | ------ | ------------------------------------------------------------ | --------------------------------------- | ---- | | 前端 | Vue 3(JavaScript框架)、Element Plus(UI组件库) | VS Code | 暂定 | | 后端 | Java 11(开发语言)、SpringCloud(微服务)、nacos-server-2.1.2(服务注册与发现)、Redis(缓存) | Intellij IDEA | | | 小程序 | Taro(小程序跨端跨框架) | VS Code、微信开发者工具、小程序开发工具 | | | 数据库 | MySQL(数据存储) | Navicat | | ## 数据库设计 > 微服务:一个服务对应一个数据库,同一个信息可能存在不同的数据库 用户表 人员进出日志表(按月归档) 体温上报表(按日归档) ## 启动项目 ### Step1. 启动项目后端 #### 1.启动nacos Nacos下载地址:https://github.com/alibaba/nacos/releases/tag/2.1.2 > standalone代表着单机模式运行,非集群模式 > ```bash cd nacos/bin # Windows startup.cmd -m standalone # Linux/Unix/Mac # sh startup.sh -m standalone # bash startup.sh -m standalone ``` Nacos后台默认用户名密码都是:**nacos** #### 2.启动MySQL #### 3.启动各个微服务 ``` # 启动 UserProvider # 启动 ``` ### Step2. 启动项目前端 #### 1.启动后台管理员项目 代码克隆下来后,第一次需要安装依赖 ```bash cd ./frontend # 建议使用 cnpm 安装依赖,如果没有安装 cnpm,可以通过 npm i cnpm进行安装 cnpm install # npm install --legacy-peer-deps ``` 之后在 `frontend` 目录下运行即可 ```bash npm run serve ``` #### 2.小程序打包 待更新 ## 开发步骤记录 ### 前端 #### 初始化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
Netflix Feign(停更)、OpenFeign | | 服务降级(服务熔断降级) | Hystrix(停更)、resilience4j、Alibaba Sentinel(推荐) | | 服务网关 | Zuul(停更)、Zuul2(胎死腹中)、SpringCloud Gateway(推荐) | | 服务分布式配置(服务分布式配置) | SpringCloud Config(不再使用)、Alibaba Nacos(推荐) | | 服务总线 | SpringCloud Bus(不再使用)、Alibaba Nacos(推荐) | | 服务开发 | Spring Boot | #### 创建Module步骤 1. 创建Module 2. 改pom 3. 写yml 4. 主启动 5. 业务类 ## 相关链接 ### 后端 #### 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 ##### Gateway B站教程:https://www.bilibili.com/video/BV1JB4y1F7aL #### Maven MVN REPOSITORY:https://mvnrepository.com/ #### Nacos Quick Start:https://nacos.io/zh-cn/docs/v2/quickstart/quick-start.html ### 前端 #### 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 ### 小程序端 #### Taro Taro:https://docs.taro.zone/docs #### 微信小程序 开发文档:https://developers.weixin.qq.com/miniprogram/dev/framework/ #### 支付宝小程序 开发文档:https://opendocs.alipay.com/mini/developer/getting-started 支付宝开放平台:https://open.alipay.com/develop/manage 支付宝沙箱应用:https://open.alipay.com/develop/sandbox/app 支付宝沙箱应用 - 文档:https://opendocs.alipay.com/common/02kkv7