0%

weconnected交友匹配系统

缘由

在大学生活中,我发现很多同学虽然渴望社交,却苦于没有合适的渠道。传统的社交平台要么信息过载,要么匹配机制粗糙。于是,我萌生了开发 weconnected 的想法——一个让用户通过自定义标签(如“摄影”“考研”“Java后端”)快速找到志同道合伙伴的轻量级社交平台。

💡 项目初衷:降低高质量社交的门槛,让“找人”变得更精准、更自然。

项目概览

  • 核心功能
    • 用户注册/登录(含密码加密)
    • 自定义兴趣标签(可增删改)
    • 基于标签的用户匹配与展示
    • 简易个人主页
  • 技术栈
    • 后端:Spring Boot 3 + MyBatis + MySQL + Redis
    • 安全:盐值 + MD5 加密(可后续升级为 BCrypt)
    • 工具:Knife4j(API文档)、Lombok、Maven
    • 前端:Vue 3 + Vite + Vue Router + Axios(借助 CLI 脚手架 + AI 辅助)

后端设计亮点

1. 标签系统设计

  • 用户标签存储在表 user中,支持一对多关系。
  • 查询“相同标签用户”时,使用 SQL 的 JOIN 实现高效匹配。
  • 为提升性能,对高频查询(如热门标签用户列表)引入 Redis 缓存,设置合理过期时间。

2. 安全实践

  • 密码采用 盐值 + MD5 加密存储(说明:MD5 已不推荐用于生产,但作为学习项目可接受;后续可替换为 Spring Security + BCrypt)。

3. API 文档与调试

  • 集成 Knife4j,自动生成美观的 Swagger UI,方便前后端联调。

前端实现简述

由于我主要专注后端开发,前端借助 Vue 3 官方脚手架(Vite) 快速搭建,并使用 AI 工具辅助编写组件逻辑(如标签选择器、用户卡片渲染)。虽然界面较为简洁,但功能完整、交互流畅。

🙏 欢迎前端高手提 PR 或建议!项目开源地址:https://github.com/darkyellowcat/weconnected

遇到的挑战与收获

  • 挑战1:如何高效实现“标签匹配”?
    → 最初用全表扫描,性能差;后改用 Redis 缓存热门标签用户 ID 列表,QPS 提升明显。

  • 收获:完整走通一个全栈项目流程,加深了对 Spring Boot、Redis 缓存策略、RESTful API 设计的理解。

下一步计划

  • 引入 WebSocket 实现实时聊天
  • 用 Spring Security 重构认证模块
  • 添加单元测试(JUnit + Mockito)
  • 优化前端 UI/UX

结语

weconnected 不仅是一个技术练手项目,更是我对“技术如何解决真实问题”的一次尝试。如果你也在做类似的项目,欢迎交流!也欢迎 Star / Fork 项目,一起让它变得更好 🌟