灵魂交友是一款强调"先懂灵魂,再看外表"的深度社交平台。通过性格测试、兴趣标签、AI智能匹配和问答互动等多维度机制,帮助用户找到真正契合的灵魂伙伴。
- 🧠 多维度匹配 - MBTI性格测试 + 兴趣标签 + AI智能推荐
- 🔐 安全可靠 - Spring Security + JWT + RBAC权限控制
- 💬 实时通信 - 私信聊天、语音/视频通话支持
- 📊 内容审核 - AI自动审核 + 人工复审机制
- 🎯 精准推荐 - 基于深度学习的用户画像建模
| 类别 | 技术 | 版本 |
|---|---|---|
| 框架 | Spring Boot | 3.2.1 |
| 安全 | Spring Security + JWT | - |
| 权限 | RBAC(用户-角色-权限) | - |
| ORM | MyBatis-Plus | 3.5.5 |
| 数据库 | MySQL | 8.0 |
| 缓存 | Redis | latest |
| 文档 | Knife4j (Swagger) | 4.4.0 |
| 工具库 | Hutool | 5.8.24 |
| 构建工具 | Maven | - |
soul-app-server/
├── src/main/java/com/soul/
│ ├── controller/ # 控制器
│ │ ├── admin/ # 管理端接口
│ │ └── app/ # App端接口
│ ├── service/ # 业务逻辑层
│ │ └── impl/ # 实现类
│ ├── mapper/ # 数据访问层
│ ├── entity/ # 实体类
│ │ ├── system/ # 系统实体(用户、角色、权限)
│ │ ├── user/ # 用户相关
│ │ ├── match/ # 匹配相关
│ │ ├── message/ # 消息相关
│ │ └── content/ # 内容相关
│ ├── dto/ # 数据传输对象
│ │ ├── request/ # 请求DTO
│ │ └── response/ # 响应DTO
│ ├── vo/ # 视图对象
│ ├── config/ # 配置类
│ ├── security/ # 安全相关
│ │ ├── filter/ # 过滤器
│ │ └── handler/ # 处理器
│ ├── common/ # 公共组件
│ │ ├── result/ # 统一响应
│ │ ├── exception/ # 异常处理
│ │ ├── constant/ # 常量
│ │ └── annotation/ # 自定义注解
│ └── utils/ # 工具类
├── src/main/resources/
│ ├── mapper/ # MyBatis XML
│ ├── sql/ # SQL脚本
│ └── application.yml # 配置文件
└── pom.xml
- JDK 17+
- Maven 3.6+
- MySQL 8.0+
- Redis
# 1. 创建数据库
mysql -u root -p
# 2. 执行初始化脚本
mysql -u root -p < soul-app-server/src/main/resources/sql/init.sql修改 soul-app-server/src/main/resources/application.yml:
spring:
datasource:
url: jdbc:mysql://localhost:3306/soul_app?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
username: your_username
password: your_password
redis:
host: localhost
port: 6379# 进入项目目录
cd soul-app-server
# 编译项目
mvn clean compile
# 运行项目
mvn spring-boot:run
# 或打包后运行
mvn clean package -DskipTests
java -jar target/soul-app-server-1.0.0-SNAPSHOT.jar项目启动后访问:http://localhost:8080/api/doc.html
本项目采用标准RBAC(基于角色的访问控制)模型,实现用户-角色-权限的三级控制。
| 角色编码 | 角色名称 | 权限范围 |
|---|---|---|
| ROLE_SUPER_ADMIN | 超级管理员 | 所有权限 |
| ROLE_ADMIN | 普通管理员 | 用户管理、内容审核、数据统计 |
| ROLE_OPERATOR | 运营人员 | 内容审核、活动管理、推送管理 |
| ROLE_AUDITOR | 审核员 | 内容审核、举报处理 |
| ROLE_USER | 普通用户 | App端所有用户功能 |
| ROLE_VIP_USER | VIP用户 | 普通用户权限+VIP特权(预留) |
- 用户名:
admin - 密码:
admin123
// 需要ADMIN角色
@PreAuthorize("hasRole('ADMIN')")
@DeleteMapping("/users/{id}")
public Result<Void> deleteUser(@PathVariable Long id) { ... }
// 需要user:list权限
@PreAuthorize("hasAuthority('user:list')")
@GetMapping("/users")
public Result<List<User>> listUsers() { ... }# 运行所有测试
mvn test
# 运行单个测试类
mvn test -Dtest=ClassName
# 运行单个测试方法
mvn test -Dtest=ClassName#methodName- Controller层 - 只做参数校验和结果返回
- Service层 - 业务逻辑实现
- 统一响应 - 使用
Result<T>统一响应格式 - 异常处理 - 通过
BusinessException抛出业务异常 - 代码风格 - 遵循阿里巴巴Java开发规范
- 注册登录(手机号+微信)
- 基础个人资料
- MBTI性格测试
- 兴趣标签系统
- 基础匹配推荐
- 私信聊天
- 开屏广告+信息流广告
- 更多性格测试
- AI智能匹配优化
- 灵魂广场
- 问答互动匹配
- 语音通话
- 更多广告位
- 视频通话
- Web端上线
- 实名认证体系
- 数据分析平台
- 运营活动系统
- 线下活动模块
- 产品需求文档 (PRD) - 完整的产品设计文档
- 开发待办列表 - 任务追踪
- Claude工作指南 - Claude Code开发指南
欢迎提交 Issue 和 Pull Request!
如有问题或建议,请通过以下方式联系:
- 提交 Issue
- 发送邮件至:[email protected]
本项目采用 MIT 许可证 - 详见 LICENSE 文件
用心连接每一个灵魂 ❤️
Made with ❤️ by Soul Team