基于springboot+Vue的社团管理系统(程序+文档+数据库)

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路,向着优秀程序员前行!
更多优质项目可点击下方获取
文章底部或评论区获取
Java项目精品实战案例《100套》

文章目录

  • 项目介绍
  • 一、需求描述
      • 1.系统管理员需求描述
      • 2.用户的功能需求
      • 3.社团管理员功能需求
      • 4.技术栈
  • 二、用例分析
      • 1.管理员模块
      • 2.用户管理模块
      • 3.社长管理模块
  • 三、运行效果
      • 1.登录注册
      • 2.系统首页
      • 3.系统用户管理
      • 4.社团类型管理
      • 5.社团信息管理
      • 6.社团成员管理
      • 7.社团活动管理
      • 8.通知信息管理
      • 9.入团申请管理
      • 10.费用记录管理
      • 11.文档目录
  • 四、部分代码实现
    • 总结


有源码 查看源码

项目介绍

现今社会信息传送发展迅速,校园服务平台应是数字化、网络化学校下的一个重要分支,平台的进步与全面发展便意味着服务范围的扩大和服务水平的提高,这对大学生和建设综合性服务校园都具有重大意义。
高校社团是学生自发创建的拥有相同兴趣爱好的活动组织,通过组织各式各样的活动丰富学生的校园生活。每年 9月,新生到校后,各种社团在校园中进行宣传,招募新成员,新成员通过填写报名表参加对应社团,之后社团组织活动时需要经过教师审批,学生报名等过程,周期较长,所有过程材料通过纸质保存,不仅浪费纸张,而且容易丢失,整个组织过程也比较低效,因此,有必要开发一个社团信息管理系统,简化报名和组织活动流程,提高效率。


一、需求描述

1.系统管理员需求描述

①用户管理
a. 注册用户账户
当一个新用户注册时,用户填写基本信息并上传。用户基本信息包括账号、
姓名、密码、手机、地址等信息。
b.用户信息管理
管理员可以查看系统所有用户的基本信息,并修改和删除。
②社团管理
a.创建社团
社团由管理员创建,创建社团需填写社团名称,社团类型和社团社长。
b. 社团信息管理
管理员可以查看使用该系统的所有社团基本信息,修改和删除该社团。由于需要处理的信息可能更多,为了使页面更简洁,减少数据库查询的压力,并使管理员能够更快地找到需要处理的社团信息,添加社团名称字段的查询功能。

2.用户的功能需求

①用户管理
a.个人信息管理
用户可以查看自己的个人信息,也可以修改、删除操作自己不满意的信息。
b.申请加入社团
用户可以浏览所有社团,并向喜欢的社团提交申请。
c.加入活动
用户可以浏览加入社团的全部活动,并选择加入到感兴趣的活动中。
b.缴费信息管理
用户可以收到缴费通知,并进行缴费

3.社团管理员功能需求

①社团管理
a. 活动信息管理
社团管理员可以向所有社员发布活动信息,可以对参与活动的社员进行审核。
c.社团成员信息管理
社团管理员可以对社员进行删除,对入团申请者进行审核。
d.缴费信息管理
社团管理员可以根据社员编号发布缴费信息

4.技术栈

开发系统:Windows
架构模式:MVC/前后端分离
JDK版本:Java JDK1.8(推荐)
开发工具:IDEA
数据库版本: mysql8.0(推荐)
数据库可视化工具: navicat
服务器:SpringBoot自带 apache tomcat
主要技术:Java,Springboot,mybatis,mysql,jquery,html,vue

二、用例分析

1.管理员模块

系统用户管理:可以查看系统所有用户的基本信息,并修改和删除。
社团类型管理:可以对社团类型进行修改,删除,查询操作,并且可以根据需求增添社团类型。
社团信息管理:可以对社团进行查询,删除,创建社团,修改社团信息。
活动信息管理:可以查询,删除社团活动。
通知信息管理:可以查询,删除,发布社团活动。
查询缴费记录:可以查询各个社团的缴费记录。

基于springboot+Vue的社团管理系统(程序+文档+数据库)_第1张图片

2.用户管理模块

入团申请管理:可以向感兴趣的社团提交申请。
浏览社团信息:可以浏览所有社团及其基本信息。
活动信息管理:实现向所有社员发布活动信息,可以对参与活动的社员进行审核的功能。
用户信息管理:实现修改个人信息和密码的功能。
通知信息查询:可以查询发布的通知信息。
缴费信息管理:实现缴费查询和缴费缴纳功能。

基于springboot+Vue的社团管理系统(程序+文档+数据库)_第2张图片

3.社长管理模块

入团申请处理:可以对提交社团申请的用户进行审核。
社团成员管理:实现对社团的成员查询和删除功能。
社团活动管理:可以查看和发布社团活动。
社团通知管理:可以查看,发布社团活动,删除本社团发布的通知
社团费用管理:可以查看,删除,根据社员编号发布缴费通知。

基于springboot+Vue的社团管理系统(程序+文档+数据库)_第3张图片

三、运行效果

1.登录注册

基于springboot+Vue的社团管理系统(程序+文档+数据库)_第4张图片

2.系统首页

基于springboot+Vue的社团管理系统(程序+文档+数据库)_第5张图片

3.系统用户管理

基于springboot+Vue的社团管理系统(程序+文档+数据库)_第6张图片

4.社团类型管理

基于springboot+Vue的社团管理系统(程序+文档+数据库)_第7张图片

5.社团信息管理

基于springboot+Vue的社团管理系统(程序+文档+数据库)_第8张图片

6.社团成员管理

基于springboot+Vue的社团管理系统(程序+文档+数据库)_第9张图片

7.社团活动管理

基于springboot+Vue的社团管理系统(程序+文档+数据库)_第10张图片

8.通知信息管理

基于springboot+Vue的社团管理系统(程序+文档+数据库)_第11张图片

9.入团申请管理

基于springboot+Vue的社团管理系统(程序+文档+数据库)_第12张图片

10.费用记录管理

基于springboot+Vue的社团管理系统(程序+文档+数据库)_第13张图片

11.文档目录

1 关键技术	4
1.1 开发框架	4
1.1.1 SpringBoot 框架	4
1.1.2 Vue.js 框架	4
2 需求分析	5
2.1需求描述	5
2.1.1系统管理员需求描述	5
2.1.2用户的功能需求	6
2.1.3社团管理员功能需求	6
2.2用例分析	6
2.2.1管理员模块	6
2.2.2用户管理模块	7
2.2.3社长管理模块	8
2.3静态分析	9
2.3.1系统静态类图:	9
2.3.2基本信息管理类图	10
2.4功能分析	10
3 系统设计	11
3.1系统总体结构	11
3.2模块设计	11
3.2.1登录模块	12
3.2.2加入社团模块	12
3.2.3修改密码模块	13
4 数据库设计	14
4.1概念结构设计	14
4.2逻辑结构设计	15
4.3物理设计	15
4.4 数据库实施	18
4-4-1创建用户表 (users):	18
4-4-2创建社团表(team):	19
4-4-3创建社团类型表 (team_types):	19
4-4-4创建缴费表 (pay_logs):	20
4-4-5创建通知表(notices):	20
4-4-6创建社团成员表 (members):	20
4-4-7 创建申请表 (apply_logs):	20
4-4-8创建活动表 (activities):	21
4-4-9创建活动日志表(active_logs):	21
5 系统实现及测试	22
5.1系统实现	22
5.1.1用户注册功能实现:	22
5.1.2用户登录功能实现:	23
5.1.3用户密码修改功能实现:	24
5.1.4系统用户信息修改功能实现:	24
5.1.5社团类型管理功能实现:	25
5.1.6入团申请功能实现:	27
5.1.7 活动信息功能实现	29
5.1.8费用记录功能实现	30
5.2 系统测试	32
6总结与展望	35
参考文献	37

四、部分代码实现

    @Override
    @Transactional
    public void add(Users users) {

        usersDao.insert(users);
    }

    @Override
    @Transactional
    public void update(Users users) {

        usersDao.updateById(users);
    }

    @Override
    @Transactional
    public void delete(Users users) {

        usersDao.deleteById(users);
    }

    @Override
    @Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
    public Boolean isRemove(String userId){

        QueryWrapper<Members> qw = new QueryWrapper<Members>();
        qw.eq("user_id", userId);

        Integer total = membersDao.selectCount(qw);

        return total <= 0;
    }

    @Override
    @Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
    public Users getOne(String id) {

        Users users = usersDao.selectById(id);

        return users;
    }

    @Override
    @Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
    public Users getUserByUserName(String userName) {

        QueryWrapper<Users> qw = new QueryWrapper<Users>();
        qw.eq("user_name", userName);

        Users user = usersDao.selectOne(qw);

        return user;
    }

    @Override
    @Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
    public PageData getPageInfo(Long pageIndex, Long pageSize, Users users) {

        QueryWrapper<Users> qw = new QueryWrapper<Users>();

        if (StringUtils.isNotNullOrEmpty(users.getUserName())) {

            qw.like("user_name", users.getUserName());
        }

        if (StringUtils.isNotNullOrEmpty(users.getName())) {

            qw.like("name", users.getName());
        }

        if (StringUtils.isNotNullOrEmpty(users.getPhone())) {

            qw.like("phone", users.getPhone());
        }

        qw.orderByDesc("create_time");

        Page<Users> page =
                usersDao.selectPage(new Page<Users>(pageIndex, pageSize), qw);

        return parsePage(page);
    }

    /**
     * 转化分页查询的结果
     */
    public PageData parsePage(Page<Users> p) {

        List<Map<String, Object>> resl = new ArrayList<Map<String, Object>>();

        for (Users users : p.getRecords()) {

            Map<String, Object> temp = new HashMap<String, Object>();
            temp.put("id", users.getId());
            temp.put("userName", users.getUserName());
            temp.put("passWord", users.getPassWord());
            temp.put("name", users.getName());
            temp.put("gender", users.getGender());
            temp.put("age", users.getAge());
            temp.put("phone", users.getPhone());
            temp.put("address", users.getAddress());
            temp.put("status", users.getStatus());
            temp.put("createTime", users.getCreateTime());
            temp.put("type", users.getType());
            resl.add(temp);
        }

        PageData pageData = new PageData(p.getCurrent(), p.getSize(), p.getTotal(), resl);

        return pageData;
    }

分享的所有Java项目源码均包含(前端+后台+数据库),可做毕业设计或课程设计,欢迎留言分享问题,交流经验
更多优质项目可点击下方获取文章底部或评论区获取
Java项目精品实战案例《100套》

总结

有源码 查看源码

你可能感兴趣的:(后端开发,spring,boot,vue.js,数据库)