1
0
Code Issues Pull Requests Packages Projects Releases Wiki Activity GitHub Gitee
Epidemic prevention platform (防疫平台) 课程设计项目:基于微服务的社区疫情防控系统
Go to file
2022-11-27 21:02:04 +08:00
.VSCodeCounter 后端微服务框架初步完成(还没跑起来) 2022-10-23 11:43:25 +08:00
backend [后端] 添加OpenFeign RPC框架;添加access微服务项目;添加进出码接口;添加postman-collection JSON 2022-11-27 21:01:38 +08:00
backend-mock 出入码小程序刷新请求完成;优化调试输出;添加出入码接口mock;配置业务域名SSL证书 2022-11-26 17:57:37 +08:00
database 小程序登录逻辑跑通;登陆密码MD5存储;小程序首页添加调试输出 2022-11-24 02:06:50 +08:00
docs 更新README 2022-11-24 01:02:28 +08:00
frontend CRLF改为LF 2022-10-22 22:37:41 +08:00
intranet-penetration 出入码下拉刷新功能;内网穿透配置文件 2022-11-26 15:31:35 +08:00
miniprogram 小程序添加体温上报页面 2022-11-27 19:32:42 +08:00
postman-collection [后端] 添加OpenFeign RPC框架;添加access微服务项目;添加进出码接口;添加postman-collection JSON 2022-11-27 21:01:38 +08:00
.editorconfig CRLF改为LF 2022-10-22 22:37:41 +08:00
.gitignore 将调试内容抽离出Component 2022-11-26 01:36:34 +08:00
README.md 支付宝小程序、微信小程序输出到不同dist目录;一些小调整 2022-11-27 13:54:04 +08:00
TODOs.md [后端] 添加OpenFeign RPC框架;添加access微服务项目;添加进出码接口;添加postman-collection JSON 2022-11-27 21:01:38 +08:00

Epidemic prevention platform

基于微服务的社区疫情防控系统

代码仓库:GitHub Gitee 自建

简介

新冠疫情的出现,给人们的工作和生活带来了较大影响,也对社区疫情防控相关工作做了更高的要求。如何准确、快速、有效的落实疫情防控相关工作是对社区工作能力的一次全方位检验。基于此背景,结合社区疫情防控主要特点及核心要求,在对社区疫情管控模式进行充分分析后,开发了该基于微服务的社区疫情防控系统。

本系统采用微服务架构进行开发,充分发挥架构优势,围绕社区人员进出入、体温上报、买菜团购、药品购置四个社区疫情防控核心需求展开,为社区疫情防控工作保驾护航。

功能

对社区疫情管控模式进行分析,针对社区人员进出入、体温上报、买菜团购、药品购置等日常生活物资的调控与管理进行分析。深入了解微服务架构,设计并实现社区疫情防控系统

要求

1.分析社区疫情管控模式需求;

2.深入理解微服务架构思想;

3.设计并实现社区疫情防控各模块;

4.撰写论文

使用技术栈

项目开发环境Windows 11 / Ubuntu Desktop 22.04 LTS、OpenJDK 11、MySQL 8.0.12、Node 14.18.0、Git暂定

项目部署环境Linux、MySQL 8.0.x、nacos暂定

板块 技术栈 开发工具 依赖管理 备注
前端 Vue 3JavaScript框架、Element PlusUI组件库 VS Code代码编辑器 npm 8.19.2 暂定
后端 Java 11开发语言、SpringCloud微服务、nacos-server-2.1.2服务注册与发现、Redis缓存 Intellij IDEA Ultimate集成开发环境
Postman接口测试
Maven 3.6.3
小程序 Taro 3.x小程序跨端解决方案、Vue 3JavaScript框架 VS Code代码编辑器
微信开发者工具(微信小程序打包工具)、
小程序开发工具(支付宝小程序打包工具)
npm 8.19.2
数据库 MySQL 8.0.12(数据存储) Navicat -

数据库设计

微服务:一个服务对应一个数据库,同一个信息可能存在不同的数据库

用户表

人员进出日志表

体温上报表

需要注意

写在最前

这个项目是我的本科毕设项目,所以部分功能做的比较粗糙,并不能保证数据安全及抗住并发,不建议直接部署到真实场景使用。

如果你想要拿我的项目作为毕设,我有义务先让你知晓,我并不保证这个项目在你演示的时候不出任何问题,也没有义务免费帮你答疑、安装环境和调试等。当然,如果我有空,可以付费咨询,我不保证付费就能解决你的问题,但如果没有解决你的问题,我不会收你一分钱。

不允许

  • ⚠不允许使用这个项目进行广告营销

  • ⚠不允许提供本项目第三方下载渠道(例如网盘分享等)

  • ⚠不允许以任何形式二次出售卖钱。如果你想拿我的项目进行包装后收费卖给其他人,那么这里不欢迎你

  • ⚠不允许拿本项目去申请版权、著作权等相关权属证明

一些说明

微信小程序支付功能如果没有微信支付商户号无法开发&测试,我没有商户号,所以微信小程序的支付功能没有做兼容。

支付宝小程序在沙箱环境下,可以测试完整的支付流程,所以支付宝小程序的开发全部在沙箱环境下进行(没有在线上支付宝环境测试过)。

启动项目

Step0. 启动前的准备

1.安装运行环境

需要准备如下项目运行环境

代码管理:Git

前端:Nodejsnpm安装node时会自带npmTaro CLIVue 3

后端:安装OpenJDK 11Maven需要JDK、Maven配置环境变量及Maven国内镜像源nacos

数据库:MySQL 8.0.xNavicat(需要激活,可使用其他数据库管理工具代替)

开发工具:VSCode(建议安装扩展:EditorConfig for VS CodeVue Language Features (Volar))、IDEA Ultimate(需要激活)、微信开发者工具小程序开发工具(需要安装 沙箱环境切换插件 扩展并重启工具)

手机应用:微信(用于测试微信小程序)、支付宝客户端沙箱版(用于测试支付宝小程序)

接口测试工具:Postman

如果希望查看环境变量是否配置成功,可以使用以下命令:

(下面以 Windows 下命令说明Linux 系统下 echo %变量名% 需要改成 echo $变量名

echo %PATH%
# 您会看到以;分隔的很多路径,其中应该包括:
# JDK 所在文件夹下的 bin 目录:...\openjdk-11\bin
# Maven 所在文件夹下的 bin 目录:...\apache-maven-3.6.3\bin

echo %JAVA_HOME%
# 您会看到 JDK 所在文件夹

echo %MAVEN_HOME%
# 您会看到 Maven 所在文件夹

如果希望查看环境是否安装成功或安装的环境版本,可以使用以下命令:

# 查看 Git 版本
git --version
# 您应该看到类似如下输出👇
# git version 2.35.1.windows.2

# 查看 MySQL 版本(如果 MySQL 的 bin 目录没有配在环境变量中,则需要先 cd 切换到 bin 目录下)
mysql --version
# 您应该看到类似如下输出👇
# mysql  Ver 8.0.12 for Win64 on x86_64 (MySQL Community Server - GPL)

# 查看 JDK 版本
java -version
# 您应该看到类似如下输出👇
# openjdk version "11" 2018-09-25
# OpenJDK Runtime Environment 18.9 (build 11+28)
# OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)

# 查看 Maven 版本
mvn -v
# 您应该看到类似如下输出👇
# Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
# Maven home: xxxxxx\apache-maven-3.6.3\bin\..
# Java version: 11, vendor: Oracle Corporation, runtime: xxxxxx\openjdk-11
# Default locale: zh_CN, platform encoding: GBK
# OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

# 查看 node 版本
node -v
# 您应该看到类似如下输出👇
# v14.18.0

# 查看 npm 版本
# 您应该看到类似如下输出👇
# 8.19.2

Maven 镜像源配置(下面以阿里云镜像为例,其他镜像可自行替换):

用编辑器打开 maven 目录下 conf/settings.xml 文件,找到如下位置,将 <mirror></mirror> 部分粘贴进去:

  <!-- mirrors
   | This is a list of mirrors to be used in downloading artifacts from remote repositories.
   |
   | It works like this: a POM may declare a repository to use in resolving certain artifacts.
   | However, this repository may have problems with heavy traffic at times, so people have mirrored
   | it to several places.
   |
   | That repository definition will have a unique id, so we can create a mirror reference for that
   | repository, to be used as an alternate download site. The mirror site will be the preferred
   | server for that repository.
   |-->
  <mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
	 <!-- ######## 👇👇👇将以下部分粘贴进去👇👇👇 ######## -->
	 <mirror>
	  <id>alimaven</id>
	  <name>aliyun maven</name>
	  <url>https://maven.aliyun.com/repository/public</url>
	  <mirrorOf>central</mirrorOf>
	 <!-- ######## 👆👆👆将以上部分粘贴进去👆👆👆 ######## -->
	</mirror>
  </mirrors>

npm 镜像源配置(下面以淘宝镜像为例,其他镜像可自行替换):

# 配置镜像源
npm config set registry https://registry.npm.taobao.org/
# 配置后可通过以下命令查看是否配置成功
npm config get registry

2.克隆项目代码到本地

# 克隆项目代码到本地
git clone https://github.com/coder-xiaomo/epp
# 或者选择以下地址
# git clone https://gitee.com/coder-xiaomo/epp
# git clone https://git.only4.work/coder-xiaomo/epp
# 进入项目根目录
cd epp

3.数据库

导入数据库SQLSQL文件在 database 目录下)

4.后端依赖

# 进入 backend 目录
cd backend
mvn clean install
# 回到项目根目录下
cd ../

5.前端依赖

代码克隆下来后,第一次需要安装依赖

# 进入 frontend 目录
cd frontend
# 建议使用 cnpm 安装依赖,如果没有安装 cnpm可以通过 npm i cnpm进行安装
cnpm install
# npm install --legacy-peer-deps
# 回到项目根目录下
cd ../

6.小程序依赖

# 进入 miniprogram 目录
cd miniprogram
npm install
# 回到项目根目录下
cd ../

7.小程序配置

配置业务域名

1.修改 miniprogram/src/app.js 文件

App.use(setGlobalDataPlugin, {
  globalData: {
    baseUrl: "⚠此处修改为你自己的后端地址。注意需要https://开头,最后不带/",
  }
})

2.配置服务域名

  • 小程序:在微信小程序后台 - 左侧最下方开发 - 开发管理 - 右侧上方开发设置 - 服务器域名 添加 https:// 开头的request合法域名
  • 小程序测试号:在微信小程序后台 - 服务器域名 添加 https:// 开头的request合法域名(注意不是业务域名)
  • 支付宝沙箱应用:在支付宝开放平台 - 左侧沙箱应用 - 服务端域名白名单 添加 https:// 开头的httpRequest接口请求域名白名单
配置微信小程序appid

在哪里找appid

如果没有注册小程序,可以申请小程序测试号进行测试,申请地址:https://mp.weixin.qq.com/wxamp/sandbox

如果已经注册过小程序,可以在此处微信扫码登录:https://mp.weixin.qq.com/ ,然后左侧菜单最后一项【设置】,滑到最下面【帐号信息】,AppID(小程序ID)一栏就是appid

修改 miniprogram/project.config.json 文件

{
    ...
    "appid": "⚠此处修改为你的微信小程序appid",
    ...
}

8.小程序打包

打包微信小程序
cd miniprogram
npm run build:weapp

打开微信开发者工具,小程序目录选择 miniprogram 目录

接下来按照正常的小程序发布流程进行发布即可。发布前记得测试小程序各功能是否正常。

打包支付宝小程序
cd miniprogram
npm run build:alipay

打开小程序开发者工具,小程序目录选择 miniprogram/dist 目录

重点:点开右上角【详情】,勾选【小程序配置】下的 启用小程序基础库2.0构建编译node_modules模块ES6转ES5

需要注意的是,支付宝小程序打包很慢,需要等比较长的时间。

接下来按照正常的小程序发布流程进行发布即可。发布前记得测试小程序各功能是否正常。

Step1. 启动项目后端

1.启动nacos

standalone代表着单机模式运行非集群模式

cd nacos/bin
# Windows
startup.cmd -m standalone
# Linux/Unix/Mac
# sh startup.sh -m standalone
# bash startup.sh -m standalone

Nacos后台地址为http://localhost:8848/nacos/index.html默认用户名密码都是nacos

2.启动MySQL

3.启动各个微服务

# 启动 UserProvider
# 启动 Gateway
# ......

Step2. 启动项目前端

1.启动后台管理员项目

之后在 frontend 目录下运行即可

npm run serve

2.小程序打包

待更新

停止项目

Step1. 停止各个微服务

Step2. 停止nacos

Step3. 停止MySQL

启动项目开发环境

  • 启动开发工具IDEA Ultimate、VSCode、微信开发者工具、小程序开发工具

  • 启动数据库及可视化工具MySQL、Navicat

  • 启动后端微服务注册中心nacos

  • 在本地启动Gateway及各个微服务项目

  • 在服务器端启动内网穿透Server端在本地启动内网穿透Client端

    cd ./intranet-penetration/bin
    # server
    rathole ../conf/server.toml
    # client
    rathole.exe ../conf/client.toml
    
  • 启动接口测试工具Postman

  • 启动命令行:npm run dev:alipay(支付宝小程序)、npm run dev:weapp(微信小程序)

    因为支付宝小程序和微信小程序输出都在dist目录下所以不可以同时开发调试

  • 拉取项目仓库最新代码&切换到对应分支

相关链接

后端

JDK

OpenJDKhttps://openjdk.org/

Java SE 11https://jdk.java.net/java-se-ri/11

Spring

Spring Cloud官网https://spring.io/projects/spring-cloud

Spring Cloud Alibaba GitHub repohttps://github.com/alibaba/spring-cloud-alibaba

Spring initializrhttps://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 REPOSITORYhttps://mvnrepository.com/

Nacos

Quick Starthttps://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 Vuehttps://www.antdv.com/docs/vue/introduce

小程序端

Taro

Tarohttps://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