为大学生组队、交友等社交场景提供便利匹配的系统
该系统为H5移动端,SpringBoot + Vue 全栈项目
前端代码:zqywuxie/Study_Partner_fronted: 志同道合(伙伴匹配系统前端代码) (github.com)
后端代码:zqywuxie/Study_Partner_backed: 志同道合(伙伴匹配系统后端代码) (github.com)
该系统为大学生提供一个方便的交友平台,用户可以设置自己的标签来快速的匹配与自己相符的伙伴,并且可以创建队伍来进行组队打比赛等。极大的减小了找寻合适的伙伴成本。
该项目后端采用主流的Java语言,适用spring boot框架快速搭建,前端采用Vue框架,适用Vant组件库进行搭建H5移动界面。采用单机架构开发,适用于小型应用程序,减少复杂性和维护成本,当然开发者可以选择进行微服务架构开发。
目前QQ、Wechat等社交平台虽然也有类似的功能,但是不是很满足大学生的需求。并且通过王者荣耀的伙伴招募,组队等功能启发,决定开发出一个适用于大学生伙伴匹配的系统。目前大学生缺少竞赛组队、日常交友的渠道,如果经过他人介绍也会花很大成本去了解一个人,所以搭建一个伙伴匹配的平台,为大学生提供一个更方便,全面的交友组队平台。
- 开发框架:
- Vue: 前端JavaScript框架,用于构建用户界面。
- 构建工具:
- Vite: 用于构建、打包和开发前端项目的工具,相较于Webpack更快的构建速度。
- 组件库:
- Vant: 移动端UI组件库,提供丰富的移动端UI组件,方便快速构建响应式移动应用。
- 语法拓展:
- TypeScript: JavaScript的超集,添加了静态类型支持,提高了代码的可维护性和安全性。
- Less: CSS预处理器,增强了CSS的编写和维护能力,支持变量、嵌套、混合等特性。
- 代码规范:
- Prettier: 代码格式化工具,用于保持代码风格的一致性,自动格式化代码。
- ESLint: JavaScript和TypeScript代码静态分析工具,用于发现和修复代码中的问题,强制代码规范。
- 主语言: Java
- 框架:
- Spring Boot: 用于快速构建基于Spring的应用程序。
- SSM(Spring + SpringMVC + MyBatis): 传统的JavaWeb开发框架,整合了Spring、SpringMVC和MyBatis。
- MyBatis-Plus: 在MyBatis基础上的增强工具,简化MyBatis的使用。
- 数据库:
- MySQL 8.0: 关系型数据库,用于持久化数据。
- 缓存:
- Redis: 内存缓存数据库,用于缓存数据,提高系统性能。
- 项目管理工具:
- Maven: 项目管理和构建工具,用于统一管理项目的依赖、构建和部署。
- 其他技术和库:
- HanLP: 自然语言处理库,用于中文分词、词性标注等。
- Quartz: 用于任务调度和定时任务管理。
- Alibaba Cloud OSS: 用于操作阿里云对象存储服务。
- Knife4j: 基于Swagger的API文档生成工具。
- Spring Session Data Redis: Spring框架对Redis的Session支持。
- Redission: Redis分布式锁等功能的Java客户端。
- Jakarta Mail (formerly JavaMail): 用于发送邮件的Java API。
- 环境要求:nodejs >= 14
git clone https://github.com/zqywuxie/Study_Partner_fronted.git
cd Study_Partner_fronted-master
- 安装依赖
yarn / npm install
- 启动项目
vite
或打开package.json,点击scripts/dev
旁边的箭头启动
- 环境要求:JDK1.8,SpringBoot 2.3.7.RELEASE,Maven 3.8.1
注:不要轻易更改依赖版本,否则会导致错误
git clone https://github.com/zqywuxie/Study_Partner_backed.git
cd Study_Partner_fronted-master
- 使用IDEA插件,
maven-helper
快速安装相关依赖 - 找到StudyPartnerApplication 启动项目
- 可在application.yml修改启动端口
server:
port: 8081
登录,注册
- (支持账号密码登录,邮箱登录)
- 后期接入QQ,微信登录 (待完善)
主页
- (随机展示用户),打开匹配模式后根据编辑距离算法开始匹配
- 博客广场,查看博客
博客模块
- 评论,点赞(评论,博客)
- 发布博客
消息模块
- 根据新增评论,点赞,好友申请,关注给出消息数量提示
聊天模块
- 支持私聊,群聊,公共群聊
队伍模块
- 展示队伍,包含公开私密队伍
- 创建队伍
- 进入群聊
搜索模块
- 根据标签进行搜索用户
- 搜索队伍(待完成)
- 搜索标签的唯一性,比如性别年级只能选择一个(待完善)
个人信息模块
- 个人信息的修改
- 查看创建,加入的队伍;我的博文;好友列表;关注列表
管理员
- 考虑新写一个移动端或者PC端管理(待完善)
- 阿里云OSS配置
用于用户头像的上传
aliyun:
oss:
file:
endpoint: xx
keyid: xx
keysecret: xx
bucketname: xx
- 数据库配置
datasource:
username: root
password: wszqy123.
#
url: jdbc:mysql://xxxx:3306/usercenter?useSSL=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
- Redis配置
redis:
password: xx
port: 6379
host: xx
database: 1
- server配置
# 统一前缀 /api
server:
servlet:
context-path: /api
# 定义cookie的域
session:
cookie:
domain: localhost
secure: true
- 邮箱功能配置
mail:
# 配置SMTP服务器地址
host: smtp.163.com
# 配置端口号465或者25
port: 25
# 发送者邮箱(根据自己邮箱填写)
username: xxx
# 配置密码,注意是开启POP3/SMTP的授权密码(根据自己的授权密码填写)
password: xxx
properties:
mail:
smtp:
auth: true
enable: true
ssl:
# 设为true时 端口号设为 465 设为false时 端口号设为25
# 注如果使用https域名,要设置为true
enable: false
socketFactoryClass: javax.net.ssl.SSLSocketFactory
#表示开启 DEBUG 模式,这样,邮件发送过程的日志会在控制台打印出来,方便排查错误
debug: true
# 邮箱编码格式
default-encoding: UTF-8
- JDK
- IDEA
- tomcat
- nodejs,npm
- 浏览器
- 数据库(MySQL),缓存服务器(redis)
部署上线
- 阿里云服务器 (购买 100/年)
- 阿里云OSS存储
- 域名 (9/年)
如果前端要进行跳转路由,就在配置文件里面添加如下代码
location / {
try_files $uri $uri/ @router;#需要指向下面的@router否则会出现vue的路由在nginx中刷新出现404
index index.html index.htm;
}
#对应上面的@router,主要原因是路由的路径资源并不是一个真实的路径,所以无法找到具体的文件
#因此需要rewrite到index.html中,然后交给路由在处理请求资源
location @router {
rewrite ^.*$ /index.html last;
}