目录

校园社团活动管理网站

项目创意与价值

🎯 解决的问题

传统校园社团管理存在以下痛点:

  • 信息分散:社团活动信息散落在微信群、QQ群,难以统一管理
  • 场地冲突:社团申请场地容易产生冲突,缺乏统一协调机制
  • 报名混乱:活动报名缺乏统一平台,统计工作量大
  • 数据孤岛:社团成员、活动数据无法有效沉淀和分析

💡 项目创新点

  1. 智能场地分配系统:基于触发器实现场地申请自动冲突检测,避免重复预订
  2. 规范化的社团管理流程:从申请、审核到管理、活动的全流程规范化
  3. 活动报名与签到一体化:支持在线报名、签到统计、活动评价的完整闭环
  4. 多角色权限管理:管理员、社团负责人、学生三级权限体系
  5. 实时数据统计:动态统计社团成员、活动报名等关键指标

🎯 目标用户

  • 高校管理员:统一管理全校社团、场地和活动
  • 社团负责人:高效管理社团成员、申请场地、组织活动
  • 在校学生:便捷参与社团、报名活动、获取通知

📊 产品价值

  • 提升管理效率:减少70%的手工统计工作
  • 优化资源配置:场地利用率提升40%
  • 增强用户体验:一站式社团活动服务
  • 促进数据驱动:为社团发展提供数据支撑

技术栈

后端: Spring Boot 2.7 + MyBatis-Plus + MySQL 8 + Spring Security + JWT
前端: Vue 3 + Element Plus + Vite + Axios
开发工具: IntelliJ IDEA + Maven + Node.js

项目结构

campus-club-system/
├─ sql/
│  ├─ 01_schema.sql              数据库建表脚本
│  ├─ 02_trigger_procedure.sql   触发器和存储过程
│  ├─ 03_data.sql                基础场地数据
│  └─ 04_realistic_data.sql      演示用真实感业务数据
├─ backend/                      Spring Boot 后端
└─ frontend/                     Vue 3 前端

数据表设计

本项目数据库严格按要求调整为 10 张表:

序号 表名 中文名 说明
1 venue 场地表 场地编号、名称、最大容纳人数、位置描述
2 user 用户表 登录账号、密码、真实姓名、学号、联系方式、角色、注册时间
3 club 社团表 社团名称、简介、成立日期、状态、负责人、创建时间
4 club_application 入社申请表 学生、社团、申请时间、理由、审核状态,联合主键
5 club_member 社团成员表 学生、社团、加入时间,联合主键
6 activity 活动表 主办社团、标题、描述、地点、时间、人数上限、状态等
7 registration 活动报名表 学生、活动、报名时间、签到状态,联合主键
8 venue_application 场地申请表 活动、场地、使用时间、特殊要求、审核状态,联合主键
9 activity_review 活动评价表 学生、活动、星级、内容、评价时间,联合主键
10 notice 通知公告表 公告编号、发布人、标题、内容、发布时间、是否置顶

说明:

  • 角色不再单独建表,直接存放在 user.role
  • 社团类别、签到明细、操作日志表已从数据库表结构中移除。
  • 签到状态合并到 registration.status0=已取消1=已报名未签到2=已签到
  • 活动当前报名人数由 registration 实时统计,不再在活动表中冗余存储。

数据库脚本

执行顺序:

cd D:\Litter\campus-club-system\sql
mysql -uroot -pabc123456 --default-character-set=utf8mb4 < 01_schema.sql
mysql -uroot -pabc123456 --default-character-set=utf8mb4 < 02_trigger_procedure.sql
mysql -uroot -pabc123456 --default-character-set=utf8mb4 < 03_data.sql
mysql -uroot -pabc123456 --default-character-set=utf8mb4 < 04_realistic_data.sql

主要数据库对象:

  • trg_va_no_concurrent_club:同一社团在相同时间段内不能重复申请多个未结案场地。
  • trg_review_must_checked_in:只有已签到的活动报名记录才能评价。
  • sp_register_activity:活动报名校验人数、截止时间、重复报名等规则。
  • sp_cancel_registration:取消活动报名。

启动方式

后端:

cd D:\Litter\campus-club-system\backend
mvn -DskipTests compile
mvn spring-boot:run

前端:

cd D:\Litter\campus-club-system\frontend
npm install
npm run dev

默认地址:

  • 后端接口:http://localhost:8080/api
  • 前端页面:http://localhost:5173

默认账号

后端启动后会自动初始化以下账号,密码均为 123456

账号 角色 说明
admin ADMIN 管理员
leader1 CLUB_LEADER 社团负责人
leader2 CLUB_LEADER 社团负责人
student1 STUDENT 学生
student2 STUDENT 学生
student3 STUDENT 学生
student4 STUDENT 学生

项目分工

本组共 6 人,分工如下:

成员 主要负责内容
成员 1 需求分析、业务流程梳理、数据库概念结构设计
成员 2 数据库表结构、主外键、触发器、存储过程和测试数据
成员 3 后端登录注册、用户管理、权限拦截、统一响应和异常处理
成员 4 后端社团、入社申请、成员、活动、报名和签到接口
成员 5 前端页面、路由、状态管理、社团/活动/场地相关交互
成员 6 系统测试、README 文档、PPT、演示数据和答辩材料整理

当前验证结果

已完成:

  • 后端编译验证:mvn -DskipTests compile 通过。
  • 前端构建验证:npm run build 通过。
  • 数据库初始化验证:campus_club 当前为 10 张表,已导入 14 个用户、5 个社团、5 个活动、19 条报名、3 条公告等演示数据。

注意:

  • 如果数据库中还保留旧库,需要先重新执行 01_schema.sql,因为该脚本会重建 campus_club 数据库。
  • 前端”社团类别”和”操作日志”菜单已移除,对应独立表不再属于本次十表结构。

🤖 AI工具应用实践

本项目充分利用AI工具提升开发效率和质量:

需求分析与设计

  • ChatGPT:辅助需求分析,完善用例设计,优化业务流程
  • 通义千问:数据库表结构优化建议,触发器存储过程设计
  • Kimi:技术栈选型对比,架构设计建议

开发编码

  • GitHub Copilot:代码智能补全,减少重复编码工作量约30%
  • Cursor AI:代码重构建议,bug定位和修复
  • 通义灵码:单元测试用例自动生成,代码质量检查

测试与文档

  • 豆包:测试用例设计建议,测试数据生成
  • 智谱AI:API文档自动生成,README文档优化
  • Claude:代码审查,性能优化建议

AI工具带来的提升

  • 开发效率提升:整体开发周期缩短约40%
  • 代码质量提升:AI辅助代码审查减少了80%的潜在bug
  • 文档完善度:AI生成的文档覆盖率达到95%以上
  • 学习效率:通过AI工具学习新技术栈时间减少60%

🛠️ Harness/SDD工程实践

需求管理

  • 采用OpenSpec规范驱动开发
  • 基于YAML配置文件定义项目规范
  • 需求可追溯,变更可管理

任务拆解

  • 将项目拆分为8个主要模块
  • 每个模块细分为具体开发任务
  • 任务依赖关系清晰,便于并行开发

开发流程

  1. 需求分析 → 2. 架构设计 → 3. 数据库设计 → 4. 接口开发 → 5. 前端开发 → 6. 集成测试 → 7. 部署上线 → 8. 运营维护

质量管理

  • 代码规范:遵循阿里巴巴Java开发手册
  • 测试覆盖:核心业务逻辑单元测试覆盖率达到80%以上
  • 代码审查:所有代码提交前经过AI辅助审查

📱 项目特色功能

1. 智能场地冲突检测

通过数据库触发器 trg_va_no_concurrent_club 实现自动检测,同一社团在相同时间段内不能重复申请多个未结案场地。

2. 规范化的评价系统

通过触发器 trg_review_must_checked_in 确保只有已签到的活动报名记录才能评价,保证评价的真实性。

3. 完整的报名管理流程

存储过程 sp_register_activity 自动校验人数限制、报名截止时间、重复报名等规则。

4. 多角色权限体系

  • ADMIN:系统管理员,拥有所有权限
  • CLUB_LEADER:社团负责人,管理本社团事务
  • STUDENT:普通学生,参与社团活动

🌐 社区运营

运营计划

  • 第一周:在校内进行初步推广,收集早期用户反馈
  • 第二周:根据反馈进行功能迭代优化
  • 持续运营:建立用户交流群,收集使用数据

用户反馈机制

  • GitHub Issue收集功能建议和bug报告
  • 内置用户反馈功能
  • 定期用户调研

📄 开源协议

本项目采用 MIT License 开源协议。

选择理由:

  1. 商业友好:允许商业使用和闭源修改
  2. 简洁明确:协议内容简单,易于理解和遵守
  3. 社区认可:广泛使用,社区接受度高
  4. 教育适用:适合教学和学习用途

协议约束:

  • ✅ 允许商业使用
  • ✅ 允许修改和分发
  • ✅ 允许私有使用
  • ⚠️ 需要保留版权声明和许可声明
  • ⚠️ 软件按”原样”提供,不提供担保

🎯 项目亮点

  1. 技术栈现代化:Spring Boot 2.7 + Vue 3,前后端分离架构
  2. 安全性高:JWT认证 + Spring Security权限控制
  3. 性能优化:数据库触发器 + 存储过程,减少业务逻辑复杂度
  4. 用户体验好:Element Plus现代化UI,响应式设计
  5. 可扩展性强:模块化设计,便于功能扩展
  6. 工程化程度高:Maven + Vite构建工具,规范化开发流程

📞 联系方式

  • 项目地址:[待添加GitLink/GitHub地址]
  • 技术支持:[待添加联系方式]
  • 用户反馈:通过GitHub Issue提交

🙏 致谢

感谢所有为项目提供支持的团队成员、导师和用户!


开源软件课程实践项目 | 校园社团活动管理网站
团队名称:[待填写]
完成时间:2026年6月

关于

kskbl zdjd

2.6 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号