# 伙伴匹配
**Repository Path**: wst-wst/partner-matching
## Basic Information
- **Project Name**: 伙伴匹配
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-02-28
- **Last Updated**: 2026-03-03
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## 鱼泡-伙伴匹配系统
介绍:帮助大家找到志同道合的伙伴
## 需求分析
1. 用户去添加标签,标签的分类(要用哪些标签、怎么把标签进行分类)
2. 主动搜索:允许用户根据标签去搜索其他用户
1. redis缓存
3. 组队
1. 创建队伍
2. 加入队伍
3. 根据标签查询队伍
4. 邀请其他人
4. 允许用户修改标签
5. 推荐
1. 相似度计算算法 + 本地分布式计算
## 技术栈
### 前端
1. Vue开发框架
2. Vant UI(基于Vue的移动端组件)(React版Zent)
3. Vite(打包工具,快!)
4. Nginx来单机部署
### 后端
1. springboot框架
2. SpringMVC+Mybatis框架+plus
3. MySQL数据库
4. Redis缓存
5. Swagger+Knife4j接口文档
第一期任务
1. 前端项目初始化
2. 前端主页+组件概览
3. 数据库设计
* 标签表
* 用户表
4. 开发后端,根据标签搜索用户
5. 开发前端,根据标签搜索用户
### 前端项目初始化
脚手架初始化项目
* Vue CLI
* Vite脚手架
整合组件库
* 安装Vant
* 按需引入npm i vite-plugin-style-import@1.4.1-D
开发页面经验
* 多参考
* 从整体到布局
* 先想清楚页面需要做成什么样子,再写代码
## 组件概览
### 设计
导航条:展示当前页面名称
主页搜索框=>搜索页
内容
tab栏:
* 主页(推荐页+广告)
* 搜索框
* bannner
* 推荐信息流
* 队伍页
* 用户页
## 开发
很多页面要重复复用组件/样式,重复写会很麻烦,不利于维护,所以抽象一个通用的布局(Layout)
组件化
## 数据库表设计
标签的分类(要有哪些标签、怎么把标签进行分类)
### 标签表(分类表)
建议用标签,不要用分类,更灵活
性别:男、女
方向:java、c++、Go、前端
目标:考研、春招、秋招、社招、考公、竞赛(蓝桥杯)
身份:大一、大二、大三、大四、学生、待业、已就业、研一、研二、研三
状态:乐观、有点丧、一般、单身、已婚、有对象
【用户自定义标签】
字段:
ID int 主键
标签名 varcahr 非空
上传标签的用户 userId int
父标签id,parentId ,int 分类
是否为父标签(0、1)
创建时间createTime
更新时间updateTime
是否删除 isDelete,tinyint(0、1)
怎么查询所有标签,并且把所有标签分好组?按父标签id分组,能实现✅
根据父标签查询子标签?根据id查询,能实现✅
### 修改用户表
用户有那些标签?
**根据自己的需求来**
1. 直接在用户表补充tags字段
优点:查询方便,不用新建关联表,标签是用户的固有属性(除了该系统,其他系统可能)节省开发成本
缺点:用户表多一列,
2. 加一个关联表,记录用户和标签的关系
关联表的应用场景:查询灵活,可以正查反查
缺点:要多建一个表,多维护一个表
## 开发后端接口
1. 允许用户传入标签,多个标签存在才搜索出来and
2. 允许用户传入多个标签,有任何一个标签存在就能搜出来or
两种方式:
1. SQL查询
2. 内存查询