【原创唯一】基于微信小程序+uni-app+vue的社团招新管理系统小程序 课程设计/大作业/期末作业(源码+MySQL数据库+实验报告+PPT+远程部署)
系统摘要
随着高校社团数量不断增加,传统依赖纸质表格、微信群接龙等方式开展招新工作,已难以满足信息集中管理、报名过程可追溯、数据统计可视化等实际需求。本文设计并实现了一套面向校园场景的社团招新管理系统。系统采用 B/S 架构,后端基于 Spring Boot 3 与 MyBatis-Plus 构建 RESTful 服务,Web 管理端采用 Vue 3 与 Element Plus 实现,学生用户端同步提供 uni-app 微信小程序。系统划分管理员、社长、普通用户三类角色,覆盖社团信息维护、招新活动发布、在线报名、审核流转、数据统计等核心业务。数据库采用 MySQL 存储,通过外键约束保证社团、活动、报名等实体之间的引用完整性。实践表明,该系统结构清晰、功能完整,能够有效提升社团招新工作的规范性与效率。
技术栈: Spring Boot3+uni-app+Vue3+uViewPlus+Vite+MybatsiPlus+Echarts+微信小程序
数据库表:6张
🍅文末获取联系🍅
🍅文末获取联系🍅
作者介绍:专注于计算机课设、毕设辅导,本人开发,原创代码,一题一稿,绝不撞题,坚持原创,个人创作,非工作室,源码全网唯一。
✅原创唯一:个人原创开发,独立设计数据库与业务逻辑,拒绝工作室代码改造
✅技术主流:SpringBoot+Vue+uni-app前后端分离,MySQL,Echarts,可本地运行
✅配套资料:源码 + 数据库 + 实验报告/论文 + 答辩 PPT+部署演示+远程调试+问题解答
技术范围:SpringBoot、Vue、数据可视化、小程序、HLMT、Nodejs、uni-app、MySQL数据库、ElementUi等设计与开发。
适用范围:软件工程、软件技术、数据库课程设计、计算机科学与技术、数据库系统原理、JavaWeb开发、JavaEE、Java、Web应用开发、动态网页设计的课程设计、课设、大作业、课程实验、期末作业
实验报告参考内容
实验报告可供大家参考使用
用户端功能(小程序)
社长员端功能(后台)
管理员端功能(后台)
数据库设计
系统数据库设计为:
admins(管理员表)结构
字段名 | 数据类型 | 说明 | 约束 |
id | BIGINT | 主键 | 自增,非空 |
username | VARCHAR(50) | 登录用户名 | 唯一,非空 |
password | VARCHAR(100) | 登录密码 | BCrypt 加密,非空 |
real_name | VARCHAR(50) | 真实姓名 | 可空 |
phone | VARCHAR(20) | 联系电话 | 可空 |
enabled | TINYINT | 启用状态 | 默认 1 |
created_at | DATETIME | 创建时间 | 可空 |
clubs(社团表)结构
字段名 | 数据类型 | 说明 | 约束 |
id | BIGINT | 主键 | 自增,非空 |
name | VARCHAR(100) | 社团名称 | 非空 |
club_code | VARCHAR(30) | 社团编码 | 可空 |
leader | VARCHAR(50) | 指导教师 | 可空 |
phone | VARCHAR(20) | 联系电话 | 可空 |
description | VARCHAR(500) | 社团简介 | 可空 |
created_at | DATETIME | 创建时间 | 可空 |
updated_at | DATETIME | 更新时间 | 可空 |
presidents(社长表)结构
字段名 | 数据类型 | 说明 | 约束 |
id | BIGINT | 主键 | 自增,非空 |
username | VARCHAR(50) | 登录用户名 | 唯一,可空 |
password | VARCHAR(100) | 登录密码 | BCrypt 加密 |
president_no | VARCHAR(30) | 学号/工号 | 可空 |
name | VARCHAR(50) | 姓名 | 非空 |
grade | VARCHAR(50) | 年级 | 可空 |
major | VARCHAR(100) | 专业 | 可空 |
club_id | BIGINT | 所属社团 | 外键→clubs.id |
phone | VARCHAR(20) | 联系电话 | 可空 |
introduction | VARCHAR(500) | 个人简介 | 可空 |
enabled | TINYINT | 启用状态 | 默认 1 |
created_at | DATETIME | 创建时间 | 可空 |
users(用户表)结构
字段名 | 数据类型 | 说明 | 约束 |
id | BIGINT | 主键 | 自增,非空 |
username | VARCHAR(50) | 登录用户名 | 唯一,非空 |
password | VARCHAR(100) | 登录密码 | BCrypt 加密,非空 |
real_name | VARCHAR(50) | 真实姓名 | 可空 |
gender | VARCHAR(10) | 性别 | MALE/FEMALE |
phone | VARCHAR(20) | 联系电话 | 可空 |
student_no | VARCHAR(30) | 学号 | 可空 |
enabled | TINYINT | 启用状态 | 默认 1 |
created_at | DATETIME | 创建时间 | 可空 |
activities(活动表)结构
字段名 | 数据类型 | 说明 | 约束 |
id | BIGINT | 主键 | 自增,非空 |
club_id | BIGINT | 所属社团 | 外键→clubs.id,非空 |
title | VARCHAR(200) | 活动标题 | 非空 |
description | VARCHAR(1000) | 招新公告 | 可空 |
image_url | VARCHAR(500) | 封面图路径 | 可空 |
activity_date | DATE | 活动日期 | 非空 |
location | VARCHAR(200) | 活动地点 | 可空 |
max_quota | INT | 名额上限 | 默认 50,非空 |
registered_count | INT | 已报名人数 | 默认 0,非空 |
status | VARCHAR(20) | 活动状态 | OPEN/CLOSED |
remark | VARCHAR(500) | 备注 | 可空 |
created_at | DATETIME | 创建时间 | 可空 |
registrations(报名表)结构
字段名 | 数据类型 | 说明 | 约束 |
id | BIGINT | 主键 | 自增,非空 |
registration_no | VARCHAR(30) | 报名编号 | 唯一,非空 |
user_id | BIGINT | 报名用户 | 外键→users.id,非空 |
activity_id | BIGINT | 报名活动 | 外键→activities.id,非空 |
status | VARCHAR(20) | 报名状态 | REGISTERED/CANCELLED/APPROVED |
remark | VARCHAR(500) | 备注 | 可空 |
created_at | DATETIME | 报名时间 | 可空 |
主要数据表关系说明
主表 | 从表 | 关系 | 说明 |
clubs | presidents | 1:N | 一个社团可有多个社长账号(通常一个) |
clubs | activities | 1:N | 一个社团可发布多个招新活动 |
users | registrations | 1:N | 一个用户可报名多个活动 |
activities | registrations | 1:N | 一个活动对应多条报名记录 |
系统架构
Controller及Service层核心代码写法:
private final ClubService clubService; // 分页查询社团列表 @GetMapping @RequireRole({UserRole.ADMIN, UserRole.USER}) public ApiResponse<PageResult<Club>> list( @RequestParam(required = false) String keyword, @RequestParam(defaultValue = "1") int page, @RequestParam(defaultValue = "10") int size) { return ApiResponse.ok(clubService.list(keyword, page, size)); } // 获取社团下拉选项 @GetMapping("/options") @RequireRole({UserRole.ADMIN, UserRole.PRESIDENT, UserRole.USER}) public ApiResponse<List<Club>> options() { return ApiResponse.ok(clubService.options()); } // 新增社团 @PostMapping @RequireRole(UserRole.ADMIN) public ApiResponse<Club> create(@Valid @RequestBody ClubDTO dto) { return ApiResponse.ok("创建成功", clubService.create(dto)); } // 修改社团 @PutMapping("/{id}") @RequireRole(UserRole.ADMIN) public ApiResponse<Club> update(@PathVariable Long id, @Valid @RequestBody ClubDTO dto) { return ApiResponse.ok("更新成功", clubService.update(id, dto)); } // 批量删除社团 @DeleteMapping("/batch") @RequireRole(UserRole.ADMIN) public ApiResponse<Void> batchDelete(@Valid @RequestBody IdsDTO dto) { clubService.batchDelete(dto.getIds()); return ApiResponse.ok("删除成功", null); }擅长:功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码开发、论文辅导、论文降重、长期答辩答疑辅导、腾讯会议一对一专业讲解辅导答辩、模拟答辩演练、和理解代码逻辑思路等。
更多个人原创作品👇🏻
原创课程设计大全✅
原创毕业设计集合✅
获取联系
项目功能完整,可在本地运行,并可远程调试,确保运行顺利!
查看👇🏻👇🏻获取联系方式👇🏻👇🏻
课程设计获取
