# ruangongshixun **Repository Path**: yalimh/ruangongshixun ## Basic Information - **Project Name**: ruangongshixun - **Description**: 软工实训项目,社团联盟 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-23 - **Last Updated**: 2025-07-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ruangongshixun # 社团联盟管理系统 ## 项目简介 社团联盟管理系统是一个针对高校社团提供信息管理和用户管理的平台。用户可以浏览社团信息,进行日常安排,习惯记录等。社团管理人员可以进行该社团用户的管理,以及社团日常活动信息的发布。系统管理人员可以进行社团信息的记录和管理。 ## 开发团队 **社团联盟开发小组** - 组长:刘毅 - 开发者:刘若水、李宁、王鸿锐、刁文杰 ## 技术栈 - **后端**: Spring Boot 3.5.3 - **数据库**: MySQL 8.0 - **ORM**: Spring Data JPA - **构建工具**: Gradle - **Java版本**: JDK 17 ## 项目结构 ruangongshixun/ ├── CommunityAlliance/ # 前端项目 (Vue.js + TypeScript) │ ├── .vscode/ # VS Code 配置 │ ├── e2e/ # 端到端测试 │ ├── public/ # 静态资源 │ │ └── favicon.ico │ ├── src/ # 前端源代码 │ │ ├── api/ # API 接口定义 │ │ │ ├── achievement.ts # 成就相关 API │ │ │ ├── activity.ts # 活动相关 API │ │ │ ├── admin.ts # 管理员相关 API │ │ │ ├── club.ts # 社团相关 API │ │ │ ├── user.ts # 用户相关 API │ │ │ └── index.ts # API 统一导出 │ │ ├── assets/ # 静态资源 │ │ │ ├── base.css # 基础样式 │ │ │ ├── main.css # 主样式 │ │ │ └── logo.svg # Logo 图标 │ │ ├── components/ # 公共组件 │ │ │ └── icons/ # 图标组件 │ │ ├── router/ # 路由配置 │ │ │ └── index.ts │ │ ├── stores/ # 状态管理 (Pinia) │ │ │ ├── activity.ts # 活动状态 │ │ │ ├── club.ts # 社团状态 │ │ │ └── user.ts # 用户状态 │ │ ├── views/ # 页面组件 │ │ │ ├── activity/ # 活动相关页面 │ │ │ │ ├── ActivitiesView.vue # 活动列表 │ │ │ │ ├── ActivityDetailView.vue # 活动详情 │ │ │ │ └── CreateActivityView.vue # 创建活动 │ │ │ ├── admin/ # 管理员页面 │ │ │ │ ├── AdminView.vue # 管理员主页 │ │ │ │ └── ClubApplicationsView.vue # 社团申请管理 │ │ │ ├── auth/ # 认证相关页面 │ │ │ │ └── LoginView.vue # 登录页面 │ │ │ ├── club/ # 社团相关页面 │ │ │ │ ├── ClubDetailView.vue # 社团详情 │ │ │ │ ├── ClubsView.vue # 社团列表 │ │ │ │ ├── CreateClubView.vue # 创建社团 │ │ │ │ └── MyClubApplicationsView.vue # 我的社团申请 │ │ │ ├── user/ # 用户相关页面 │ │ │ │ ├── MyActivitiesView.vue # 我的活动 │ │ │ │ ├── MyClubsView.vue # 我的社团 │ │ │ │ └── ProfileView.vue # 个人资料 │ │ │ ├── debug/ # 调试页面 │ │ │ ├── AboutView.vue # 关于页面 │ │ │ └── HomeView.vue # 首页 │ │ ├── App.vue # 根组件 │ │ └── main.ts # 应用入口 │ ├── package.json # 依赖配置 │ ├── vite.config.ts # Vite 配置 │ ├── tsconfig.json # TypeScript 配置 │ └── index.html # HTML 模板 │ ├── backend/ # 后端项目 (Spring Boot) │ ├── gradle/ # Gradle 包装器 │ ├── src/ │ │ ├── main/ │ │ │ ├── java/com/communityalliance/ # Java 源代码 │ │ │ │ ├── config/ # 配置类 │ │ │ │ │ ├── AppConfig.java # 应用配置 │ │ │ │ │ ├── DatabaseConfig.java # 数据库配置 │ │ │ │ │ ├── SecurityConfig.java # 安全配置 │ │ │ │ │ ├── WebConfig.java # Web 配置 │ │ │ │ │ └── ... │ │ │ │ ├── controller/ # 控制器层 │ │ │ │ │ ├── ActivityController.java # 活动控制器 │ │ │ │ │ ├── AdminController.java # 管理员控制器 │ │ │ │ │ ├── ClubController.java # 社团控制器 │ │ │ │ │ ├── UserController.java # 用户控制器 │ │ │ │ │ └── ... │ │ │ │ ├── entity/ # 实体类 │ │ │ │ │ ├── Activity.java # 活动实体 │ │ │ │ │ ├── Club.java # 社团实体 │ │ │ │ │ ├── User.java # 用户实体 │ │ │ │ │ ├── ClubApplication.java # 社团申请实体 │ │ │ │ │ └── ... │ │ │ │ ├── repository/ # 数据访问层 │ │ │ │ │ ├── ActivityRepository.java │ │ │ │ │ ├── ClubRepository.java │ │ │ │ │ ├── UserRepository.java │ │ │ │ │ └── ... │ │ │ │ ├── service/ # 业务逻辑层 │ │ │ │ │ ├── ActivityService.java │ │ │ │ │ ├── ClubService.java │ │ │ │ │ ├── UserService.java │ │ │ │ │ ├── impl/ # 服务实现类 │ │ │ │ │ └── ... │ │ │ │ ├── dto/ # 数据传输对象 │ │ │ │ └── CommunityAllianceBackendApplication.java # 启动类 │ │ │ └── resources/ # 资源文件 │ │ │ ├── data.sql # 初始化数据 │ │ │ ├── schema.sql # 数据库结构 │ │ │ └── static/ # 静态资源 │ │ └── test/ # 测试代码 │ ├── uploads/ # 文件上传目录 │ ├── build.gradle # Gradle 构建配置 │ ├── gradlew # Gradle 包装器脚本 │ └── update_club_table.sql # 数据库更新脚本 │ ├── uploads/ # 全局上传目录 ├── 文档文件夹/ # 项目文档 │ ├── 01项目启动书.doc │ ├── 02社团联盟系统需求说明书.doc │ └── 03 社团联盟系统设计说明书.doc ├── HELP.md # 帮助文档 ├── MySQL_Setup_Guide.md # MySQL 安装指南 ├── README.md # 项目说明 └── .gitignore # Git 忽略文件 ## 核心功能 ### 1. 用户管理 - ✅ 用户注册/登录 - ✅ 用户信息管理 - ✅ 权限管理(普通用户、社团负责人、管理员) - ✅ 用户搜索 ### 2. 社团管理 - ✅ 社团创建与发布 - ✅ 社团信息编辑 - ✅ 社团分类管理 - ✅ 社团审核流程 - ✅ 社团搜索与筛选 ### 3. 社团申请 - ✅ 用户申请加入社团 - ✅ 社团负责人审核申请 - ✅ 申请状态管理 ### 4. 社团交流 - ✅ 社团内发帖讨论 - ✅ 帖子评论功能 - ✅ 可见性控制 ### 5. 社团收藏 - ✅ 用户收藏感兴趣的社团 - ✅ 收藏列表管理 ### 6. 活动管理 - ✅ 社团活动发布 - ✅ 活动信息管理 ## 数据库设计 ### 主要数据表 1. **users** - 用户表 - 用户基本信息 - 角色权限 - 账户状态 2. **clubs** - 社团表 - 社团基本信息 - 社团类别 - 审核状态 3. **club_applications** - 社团申请表 - 申请记录 - 审核状态 - 审核意见 4. **posts** - 帖子表 - 帖子内容 - 可见性设置 - 统计信息 5. **comments** - 评论表 - 评论内容 - 回复关系 6. **activities** - 活动表 - 活动信息 - 时间地点 - 参与人数 ## API 接口 ### 用户相关接口 - `POST /api/users/register` - 用户注册 - `POST /api/users/login` - 用户登录 - `GET /api/users/{id}` - 获取用户信息 - `PUT /api/users/{id}` - 更新用户信息 - `GET /api/users/search` - 搜索用户 ### 社团相关接口 - `GET /api/clubs` - 获取社团列表(分页) - `POST /api/clubs` - 创建社团 - `GET /api/clubs/{id}` - 获取社团详情 - `PUT /api/clubs/{id}` - 更新社团信息 - `GET /api/clubs/search` - 搜索社团 - `GET /api/clubs/popular` - 获取热门社团 - `GET /api/clubs/latest` - 获取最新社团 - `POST /api/clubs/{id}/favorite` - 收藏社团 - `DELETE /api/clubs/{id}/favorite` - 取消收藏 ### 管理员接口 - `GET /api/clubs/pending` - 获取待审核社团 - `PUT /api/clubs/{id}/review` - 审核社团 - `PUT /api/users/{id}/role` - 更新用户角色 ## 快速开始 ### 1. 环境要求 - JDK 17+ - MySQL 8.0+ - Gradle 7.0+ ### 2. 数据库配置 1. 创建数据库: ```sql CREATE DATABASE community_alliance CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 2. 修改 `application.properties` 中的数据库连接信息: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/community_alliance spring.datasource.username=your_username spring.datasource.password=your_password ``` ### 3. 运行项目 ```bash # 使用 Gradle 运行 ./gradlew bootRun # 或者使用 IDE 直接运行 CommunityAllianceBackendApplication.java ``` ### 4. 访问应用 - 后端 API: http://localhost:8080 - 前端展示页面: http://localhost:5173 ## 测试数据 项目启动后,数据库表会自动创建。你可以通过 API 接口创建测试数据: ### 创建管理员用户 ```bash curl -X POST http://localhost:8080/api/users/register \ -H "Content-Type: application/json" \ -d '{ "username": "admin", "password": "Qq1111", "email": "admin@example.com", "real_name": "系统管理员", "role": "ADMIN" }' ``` ### 创建测试社团 ```bash curl -X POST http://localhost:8080/api/clubs \ -H "Content-Type: application/json" \ -d '{ "name": "计算机协会", "description": "致力于计算机技术交流与学习的学生社团", "category": "TECHNOLOGY", "maxMembers": 100, "requirements": "对计算机技术有兴趣" }' ``` ## 开发计划 ### 已完成功能 ✅ - [x] 基础实体类设计 - [x] 数据访问层实现 - [x] 用户管理服务 - [x] 社团管理服务 - [x] RESTful API 接口 - [x] 基础前端展示页面 ### 待开发功能 🚧 - [ ] 社团申请管理服务 - [ ] 帖子管理服务 - [ ] 评论管理服务 - [ ] 活动管理服务 - [ ] 文件上传功能 - [ ] 邮件通知功能 - [ ] 数据统计功能 - [ ] 完整的前端界面 ### 扩展功能 🔮 - [ ] AI 推荐算法 - [ ] 实时聊天功能 - [ ] 全文搜索 - [ ] 移动端适配 ## 贡献指南 1. Fork 项目 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开 Pull Request ## 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。