springmvc+mybatis+mysql8+idea+maven做的校园社团管理平台

21 阅读5分钟

校园社团管理平台

一个基于 Spring MVC + MyBatis 的校园社团管理系统,支持社团注册审核、成员管理、活动发布、经费管理等核心功能。

📋 项目简介

校园社团管理平台是一个面向高校的社团管理系统,旨在为学校社团提供统一的管理平台。系统支持学生注册社团、申请加入、发布活动、管理经费等功能,同时为管理员提供社团审核、成员管理等后台管理功能。

🛠️ 技术栈

后端技术

  • Java 11 - 编程语言
  • Spring MVC 5.3.30 - Web框架
  • MyBatis 3.5.14 - 持久层框架
  • MyBatis-Spring 2.0.7 - MyBatis与Spring集成
  • Druid 1.2.18 - 数据库连接池

前端技术

  • JSP - 视图层技术
  • JSTL 1.2 - JSP标准标签库
  • CSS/JavaScript - 前端样式和交互

数据库

  • MySQL 8.0.33 - 关系型数据库

工具与依赖

  • Maven - 项目构建工具
  • Commons FileUpload 1.4 - 文件上传组件
  • Commons IO 2.11.0 - IO工具类

服务器

  • Tomcat - Web应用服务器(推荐 9.0+)

✨ 系统功能

1. 用户管理

  • 用户注册/登录
  • 用户信息管理
  • 角色权限控制(普通用户、管理员)

2. 社团管理

  • 社团注册:学生可以注册新社团,填写社团信息
  • 社团审核:管理员审核社团注册申请(通过/拒绝)
  • 社团列表:查看所有已审核通过的社团
  • 社团详情:查看社团详细信息、成员列表、活动列表
  • 社团编辑:社长可以编辑社团信息
  • 我的社团:查看已加入的社团和创建的社团

3. 成员管理

  • 申请加入:学生可以申请加入已审核通过的社团
  • 申请审核:社长审核成员申请(支持单个/批量审核)
  • 成员状态管理:待审核、已通过、已拒绝

4. 活动管理

  • 活动发布:社团成员可以发布活动
  • 活动列表:查看所有活动(支持按社团筛选)
  • 活动详情:查看活动详细信息、参与人数
  • 活动报名:学生可以报名参加活动
  • 活动海报:支持上传活动海报图片

5. 经费管理

  • 收支记录:记录社团的收入和支出
  • 余额统计:自动计算社团当前余额
  • 凭证管理:支持上传收支凭证图片
  • 记录查询:查看历史收支记录

6. 消息通知

  • 实时通知:系统自动发送通知
  • 通知类型
    • 社团注册通知(通知管理员)
    • 社团审核结果通知(通知社长)
    • 成员申请通知(通知社长)
    • 成员审核结果通知(通知申请人)
  • 未读提醒:导航栏显示未读消息数量
  • 标记已读:支持单条/全部标记已读

📁 项目结构

1.0/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/xync/
│   │   │       ├── config/          # 配置类
│   │   │       │   ├── AppConfig.java      # Spring配置
│   │   │       │   └── WebConfig.java      # Web配置
│   │   │       ├── controller/      # 控制器层
│   │   │       │   ├── ActivityController.java
│   │   │       │   ├── ClubController.java
│   │   │       │   ├── FinanceController.java
│   │   │       │   ├── HomeController.java
│   │   │       │   ├── MemberApplicationController.java
│   │   │       │   ├── NotificationController.java
│   │   │       │   ├── RegisterClub.java
│   │   │       │   └── UserController.java
│   │   │       ├── entity/          # 实体类
│   │   │       │   ├── Activity.java
│   │   │       │   ├── Club.java
│   │   │       │   ├── Finance.java
│   │   │       │   ├── Member.java
│   │   │       │   ├── Notification.java
│   │   │       │   └── User.java
│   │   │       ├── mapper/          # MyBatis Mapper接口
│   │   │       │   ├── ActivityMapper.java
│   │   │       │   ├── ActivityRegistrationMapper.java
│   │   │       │   ├── ClubMapper.java
│   │   │       │   ├── FinanceMapper.java
│   │   │       │   ├── MemberMapper.java
│   │   │       │   ├── NotificationMapper.java
│   │   │       │   └── UserMapper.java
│   │   │       ├── service/         # 业务逻辑层
│   │   │       │   ├── ActivityService.java
│   │   │       │   ├── ClubService.java
│   │   │       │   ├── FinanceService.java
│   │   │       │   ├── MemberService.java
│   │   │       │   ├── NotificationService.java
│   │   │       │   └── UserService.java
│   │   │       └── util/            # 工具类
│   │   │           └── FileUploadUtil.java
│   │   ├── resources/
│   │   │   ├── database.properties  # 数据库配置
│   │   │   ├── Spring-servlet.xml   # Spring MVC配置
│   │   │   └── ClubMapper.xml       # MyBatis映射文件
│   │   └── webapp/
│   │       ├── css/                 # 样式文件
│   │       ├── uploads/             # 上传文件目录
│   │       │   ├── activities/     # 活动海报
│   │       │   └── finance/        # 经费凭证
│   │       └── WEB-INF/
│   │           ├── web.xml         # Web应用配置
│   │           └── views/          # JSP视图文件
│   │               ├── admin/      # 管理员页面
│   │               ├── activity-*.jsp
│   │               ├── club-*.jsp
│   │               ├── finance-*.jsp
│   │               ├── member-*.jsp
│   │               ├── notification.jsp
│   │               └── user-*.jsp
│   └── test/                       # 测试代码
├── campus_club.sql                 # 数据库初始化脚本
└── pom.xml                         # Maven配置文件

🔧 环境要求

  • JDK: 11 或更高版本
  • Maven: 3.6+
  • MySQL: 8.0+
  • Tomcat: 9.0+ 或更高版本
  • IDE: IntelliJ IDEA / Eclipse(推荐)

🚀 快速开始

1. 克隆项目

git clone <repository-url>
cd course_ds/1.0

2. 数据库配置

  1. 创建数据库:
CREATE DATABASE campus_club CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
  1. 导入数据库脚本:
mysql -u root -p campus_club < campus_club.sql
  1. 修改数据库配置: 编辑 src/main/resources/database.properties
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3307/campus_club?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
jdbc.username=root
jdbc.password=root

注意:请根据你的MySQL配置修改端口号、用户名和密码。

3. 构建项目

mvn clean package

4. 部署运行

  1. 将生成的 target/1.0-1.0-SNAPSHOT.war 部署到 Tomcat
  2. 启动 Tomcat 服务器
  3. 访问:http://localhost:8080/1.0-1.0-SNAPSHOT/

5. 默认账号

数据库初始化后,可以使用以下测试账号:

  • 普通用户:根据数据库脚本中的用户数据
  • 管理员:需要手动在数据库中设置 role='ADMIN'

📖 功能说明

权限说明

功能普通用户社长管理员
注册社团
申请加入社团
审核成员申请
发布活动✅(需是成员)
报名活动
管理经费
审核社团
编辑社团信息

数据状态说明

  • 社团状态

    • PENDING - 待审核
    • APPROVED - 已通过
    • REJECTED - 已拒绝
  • 成员状态

    • PENDING - 待审核
    • ACTIVE - 已通过
    • REJECTED - 已拒绝
  • 活动状态

    • OPEN - 开放报名
    • CLOSED - 已关闭

文件上传说明

  • 活动海报:上传到 uploads/activities/ 目录
  • 经费凭证:上传到 uploads/finance/ 目录
  • 支持格式:jpg, png, gif 等图片格式

📝 主要路由

首页: /
社团列表: /clubs
注册社团: /clubs/register
我的社团: /clubs/my
社团详情: /clubs/{id}
活动广场: /activities
活动详情: /activities/{id}
消息通知: /notifications
[管理员] 社团审核: /clubs/admin/pending
[管理员] 社团管理: /clubs/admin/all

🔍 核心特性

  1. 基于注解的Spring MVC配置:使用 @Configuration@ComponentScan 进行配置

  2. MyBatis集成:支持XML和注解两种方式

  3. 事务管理:使用Spring声明式事务管理

  4. 文件上传:支持图片上传和存储

  5. 权限控制:基于角色的访问控制

  6. 消息通知系统:实时通知用户重要操作

登录.png

活动广场.png

活动详情.png

社团管理.png

社团列表.png

社团审核.png

社团详情.png

收支列表png.png

首页.png

添加收支.png

我的社团.png

注册.png

注册社团.png