摘要
:大学学生社团的不断壮大发展,让对社团的招新管理越来越重要,如何高效的管理社团,促进社团有效的运行和发展变得尤为关键。学生社团在学生的成长发展过程中有着一定的积极作用,要发挥好社团的优势,管理好社团的正常运行,因此需要开发一个适合的高校社团招新管理系统。
根据前期的调查,对系统的需求进行了分析,并在此基础上进行了系统设计。本系统采用SSH(spring+struts+hibernate)框架和MySQL数据库开发了一个基于JAVA的学生社团管理系统。该系统实现了的功能有:成员管理,包含新增成员,审核成员入团;活动管理,包含发布新的活动、修改未被审核的活动、审核活动等;消息管理,包含发布消息、修改删除消息;创建社团,包含学工主任创建新的社团及其负责人。
本系统的主要特点是适合小规模社团的管理使用,有着对成员、活动等较为完善的管理,可以促进社团负责人和社团成员之间的有效沟通交流,社团成员和活动之间有着紧密的联系。
关键词:高校社团招新;成员管理;SSH;
Abstract:The continuous growth and development of college student associations makes the recruitment management of associations more and more important. How to manage associations efficiently and promote the effective operation and development of associations has become particularly critical. Student associations play a positive role in the growth and development of students. In order to give full play to the advantages of associations and manage the normal operation of associations, it is necessary to develop a suitable College Association recruitment management system.
According to the previous investigation, the requirements of the system are analyzed, and the system is designed on this basis. The system uses SSH (Spring + struts + Hibernate) framework and MySQL database to develop a student community management system based on Java. The functions of the system are: member management, including adding new members and reviewing members’ membership; Activity management, including publishing new activities, modifying unapproved activities, auditing activities, etc; Message management, including publishing messages, modifying and deleting messages; Create a community, including the director of learning and engineering, create a new community and its person in charge.
The main feature of this system is that it is suitable for the management and use of small-scale associations. It has a relatively perfect management of members and activities. It can promote the effective communication between the person in charge of the association and the members of the association. There is a close relationship between the members of the association and the activities.
Key words: College community recruitment; Member Management; SSH;
目录
1 引言 1
1.1 课题研究意义 1
1.2 国内研究现状 1
1.3 研究内容与目的 2
1.4 本文文章内容 2
2 开发工具及相关技术介绍 3
2.1 Java简介 3
2.2 B/S模式 3
2.3 SpringBoot框架 3
2.4 MySQL数据库 3
3 社团招新系统分析 5
3.1 可行性分析 5
3.1.1 经济可行性分析 5
3.1.2 技术可行性分析 5
3.1.3 操作可行性分析 5
3.1.4 可行性分析结论 5
3.2 需求分析 6
3.2.1 社团招新系统需求概述 6
3.2.2 用户需求 8
3.2.3 信息需求 8
3.2.4 安全性和完整性需求 9
3.2.5 数据库需求分析 9
4 系统设计 10
4.1 系统概要设计 10
4.2 系统详细设计 10
4.2.1 设计原则 10
4.2.2 系统功能模块设计 10
4.3 数据库设计 12
4.3.1 实体关系图 12
4.3.2 逻辑设计实现 1
5 社团招新系统的实现 4
5.1 前台公共模块的实现 4
5.2 普通用户登录模块 7
5.3 活动管理模块 12
5.4 成员管理模块 14
5.5 通知管理模块 15
5.6 活动审核模块 16
5.7 新建社团模块 16
6 系统测试 19
6.1 系统测试的目的及意义 19
6.2 系统测试的常用方法和内容 19
6.3 系统测试的测试用例 19
6.3.1 登录界面 19
6.3.2 个人信息 19
6.3.3 活动社团 20
7 结束语 21
参考文献 22
致谢 24
1 引言
本章主要介绍了高校社团招新系统设计的研究意义及研究目的,并对国内高校社团招新系统研究现状进行探讨与分析,详细阐明了该高校社团招新系统的设计内容及实现目标,最后整体阐述了本文的文章结构。
1.1 课题研究意义
大学生进入大学校园以后,社团活动作为新生们,是一个非常新奇的活动社区,同样是学校给予大学生们一个发展自己业余兴趣爱好的地方,同时,它也是一个非盈利的组织,社团将很多有共同爱好的大学生们组织到了一起,一起参与很多的活动。这不仅可以提高学生们的人际交往能力,也可以提高学生们的动手实践能力,让学生们更加发挥出自己的特长,锻炼自身各方面的能力。但是随着高校的扩招,学生社团组织也变得越来越庞大。传统的手工管理已经赶不上现代大学生生活的快节奏了。所以,为了提高社团管理人员的办事效率和节约人力物力的考虑之下,开发一个学生社团管理系统来管理整个社团的日常活动事务就非常有必要了。当然,随着社团文化的不断丰富,也同时伴随着很多发展之中的问题。比如:“很多活动的方式太单一”,“资金不足”,“数量偏少”,“管理不方便”等等一系列问题。为了更好的利用大学生社团来组织进行活动,将它建设成一个交流思想的第二课堂,是高校学生工作的一个最大课题。
1.2 国内研究现状
信息管理系统从上个世纪五六十年代开始发展起来,并且信息管理系统的理论也变得越来越成熟。信息管理系统的项目在很多的学校的发展之中起着非常重要的作用。随着科学技术的蓬勃发展,国内大部分的高校都开始将日常的活动管理开始交给计算机来处理,建立自己的信息管理系统。然而,和国外的高校的信息技术相比而言,我们的起点显得比较低,国内很多的信息管理系统还在初步发展阶段。因此,国内的学校还需要不断提高我们信息管理的软实力。随着近年来信息技术的飞速发展,信息技术慢慢开始应用到了各个领域,也大大提高我们管理信息的效率。因此,组织和建立自己信息管理系统就变得非常的有必要,不仅可以提高我们信息管理的效率,还可以节约很多的人力物力,实现资源的利用最大化。
目前从外国的信息管理技术来看,他们集中式的学生社团管理系统发展于上世纪的七八十年代。他们以大型机为基础,形成了第一代的学生社团管理产品。慢慢随着网络的普及,最新的社团管理系统能够更好的去适应网络系统。在国外,学生社团管理技术的发展,早已经成为了一种综合性的技术,从而产生了各式各样的学生社团管理系统。并且伴随着社团数据的不断扩大,对该数据进行有效的整合处理,提高高校对社团信息的处理的效率,从而迅速地开发了高校学生社团存储管理软件来完成这一项工作。
1.3 研究内容与目的
根据前期的分析和对社团的调查,发现现在大多的高校社团都采用人工招新管理的方式,这种方式的招新管理,需要投入很大的人力精力对其进行管理。有的社团虽然有自己的管理系统,但其功能可能不适合现在很多规模较小的社团。所以需要一个适合小规模的社团管理系统。本课题的目的是为了解决传统社团招新所带来的问题,社团负责人可以更好的对社团进行招新,社团成员可以更好的了解社团的信息,了解社团所举行的活动,所发布的社团等,大大加大社团管理的效率。
1.4 本文文章内容
全文一共分为了六个部分,下面是对这些部分的内容做出的简单介绍:
第一部分为引言,介绍了本文所要实现的高校社团招新系统的研究的目的,意义和国内外对该研究的现状。
第二部分只要是介绍了相关技术以及所用到的开发工具,这个部分对社团招新系统所用到的工具和技术进行了简单的介绍,只要采用了Java编程语言为主要的开发语言,并以IDEA最为集成开发平台,所采用的是SSH框架,并配合MySQL数据库实现。
第三部分为需求分析,主要根据实际对系统所要实现的功能进行分析,介绍了整个系统的功能设计。
第四部分为系统总体设计,介绍了数据库表的创建和实体E-R图,数据库的设计。
第五部分是功能实现,该部分介绍了社团招新系统的主要功能以及关键代码实现,如登录模块、社团申请模块、社团审核模块。
第六部分为总结,对研究本系统所遇到的问题和得到的收获进行归纳总结,并说明 系统需要进一步改进的方向。
2 开发工具及相关技术介绍
2.1 Java简介
Java技术它是一个容易让人学会和使用的一门服务器语言。它在编程的过程当中只需要很少的知识就能建立起一个真正的交互站点。对于这个教程来说它并不需要你完全去了解这种语言,只要能快速融入web站点就可以,还可以进行一些基本知识的编程就可以。
现代社会中,使用Java语言做动态网页是最常用的,主要是Java比较简单易懂,用户掌握的web 服务器编写脚本。Java语言技术在编程技术中具有一定的安全性和跨平台性功能,并且它可以直接支持分布式的网络应用和效率。在Java语言技术当中它的功能是方便简单的。对于这个语言技术来说它就像万花筒一样在进行开发的时候可以随机进行组合最后变成不同颜色的花瓣。随着现在互联网的快速发展和电子商务的不断发展,在各行各业的设施基础上都开始应用到了计算机,对于过去传统的的管理方式和用户需求都不能满足现在正常的供求关系,所以我们必须通过添加现在的新技术来满足用户的需求。从目前来看,Java技术已经在动态网页中应用的是比较广泛的一门技术。
Java语言具有非常多种的特性:(1)跨平台的无关性;(2)面向对象; (3)安全性得以保障;(4)支持多个任务;(5)多种编写方式,代码编写简单。对比其他的低级语言、高级语言,Java语言具有明显的显著优势以及未来开阔的前景,可以广泛的应用在个人笔记本电脑、大数据、大型游戏等等。
Java语言具有面向对象的特性,并且易于理解。关于对象,其实可以理解成每一种事物都是一种对象,包括我们人类自身都是一种对象。利用面向对象语言的基本特征来解决软件开发中的实际问题,为有效软件开发提供了技术支持。
2.2 B/S模式
BROWSER/SERVER程序架构方式是使用电脑中安装的各种浏览器来进行访问和使用的,相比C/S的程序结构不需要进行程序的安装就可以直接使用。BROWSER/SERVER架构的运行方式是在远程的服务器上进行安装一个,然后在任何接入互联网的电脑上访问和使用。BROWSER/SERVER架构的开发方式给用户带来了极大的便利,在任何时间和地点都可以使用开发的程序系统。
在B/S的结构中,用户可以在任何可以上网的地方访问和使用系统网站的功能,没有地域和时间等方面的限制,B/S结构是把程序完整放置到计算机网络的服务器上,通过计算机互联网给用户提供远程的网络服务。在三层体系结构的B/S系统中,通过浏览器,用户可以对很多服务器发出请求, B/S系统会很大程度的降低工作量,用户只需要安装运行较少的用户端即可,大量的工作将由服务器承担,另外,服务器也完成包括访问数据库,执行应用程序的工作等等。
2.3 SpringBoot框架
Spring Boot是Pivotal团队的一个新框架,旨在简化新Spring应用程序的初始设置和开发。该框架使用特定的配置方法,无需开发人员定义样板配置。通过这种方式,Spring Boot旨在成为蓬勃发展的快速应用程序开发领域的领导者。
Spring Boot特点:
1、创建一个单独的Spring应用程序;
2、嵌入式Tomcat,无需部署WAR文件;
3、简化Maven配置;
4、自动配置Spring;
5、提供生产就绪功能,如指标,健康检查和外部配置;
6、绝对没有代码生成和XML的配置要求;
2.4 MySQL数据库
MySQL数据库是一个小型的关系型数据库,目前,MySQL数据库被广泛的应用在中小型的网站之中,因为它的运行速度快,所占用的体积小,并且是开源的,不收费,这使得很多的中小型网站为了降低开发成本而普遍选择MySQL作为开发网站使用的数据库,除此之外,MySQL数据库还有以下特点:
1.它支持Mac OS、Linux、Windows等多种操作系统。
2.它为各大编程语言提供了外部接口(API),能够很好的进行互联,这些编程语言就包括Java、Python、C++等等。
3 社团招新系统分析
任何系统在实施开发之前必须要做到系统的全面分析,以确保项目的顺利完成,本 章从各方面分析了社团招新系统的可行性以及系统的需求。
3.1 可行性分析
在系统开发之前,经过市场调研后的可行性分析是系统开发中必不可少的环节,可 行性分析可以较大地保障系统的顺利进行,下面将从三个方面进行可行性分析。
3.1.1 经济可行性分析
作为自身开发的社团招新系统,本着耐用,简洁的原则之上,既是在功能上要满足的需求本系统耐用,便捷的原则,也同时在功能上满足用户比较容易掌握和使用该系统。并且开发的周期比较短,成本预算也比较低,所以在软硬件的支出上十分的有限。所以,在开发系统时,合理估算了开发前后的费用,对比之下,本系统对今后的使用是十分有利的。从经济的角度考虑,此管理系统开发时可行的。此外,社团管理系统的开发运行以及维护在经济上是一般管理者所能接收的,所以从各方面来说经济是可行的。
3.1.2 技术可行性分析
技术的可行性需要考虑的是现有的技术能否实现对系统的开发,能够很好的完成开发工作,以及软硬件能够满足系统的功能的开发等。大学生社团活动平台主要采用Java技术,基于B/S结构,Mysql数据库,对于应用程序的开发要求具备完整功能,使用简单的特点,并建立一个数据完整安全稳定的数据库。大学生社团活动平台的开发技术具有很高可行性,且开发人员掌握了一定的开发技术,所以系统的开发具有可行性。
3.1.3 操作可行性分析
高校社团招新系统的开发主要是以方便敏捷为目的的,开发完成后的系统应该要具备简单,容易操作等优点。就算是不懂计算机技术的普通用户,也应该能轻松简单地学习并且使用该系统。同时,该系统应该不能让系统与用户有着其他的冲突,能够独立运行在操作系统的平台上面。同时,该系统的设计清晰明了,有很好的异常纠错处理机制,并能够给用户反馈错误信息并提醒改正,这使得系统有着良好的健壮性。它的易操作,学习简单的特点是本系统在操作上是可行的。
3.1.4 可行性分析结论
在目前的计算机的水平下开发一个这样的高校社团招新系统是完全具有可能性,不管是从技术上来说,来是从操作和经济上,它都是可以实现的,因此开发这个系统是完全可行的。
3.2 需求分析
3.2.1 社团招新系统需求概述
通过系统的需求的分析,可将该系统的角色分为普通用户、社团负责人、学工主任三个角色。
普通用户(学生)描述:普通用户的登录、注册和申请入团:普通用户可以直接登录系统,若未注册用户点击加入社团,则提示请登录后再申请;若已注册登录的用户则可以申请加入社团,等待社团负责人审核。
图3-1 普通用户描述
普通用户(学生)修改个人资料:普通用户登录系统后可以查看社团的信息,还可以修改个人资料,修改时获取以前的信息,进行修改。
图3-2 普通用户修改资料描述
普通用户(学生)评价社团活动:普通用户登录并加入社团后可以对社团发布的活动进行评价,评价时需要输入评价内容和评价分数,评价后可以被社团负责人查看。
图3-3 评价社团描述
社团负责人(社长)发布、修改、删除活动(通知):社团负责人登录系统后可以发布活动和通知,发布的活动若未被学工主任审核,则可以修改和删除所发布的活动,若已被审核则不可以修改和删除,发布的通知不需要审核,可以自己修改和删除。发布的活动和通知可以被社团成团看到。
图3-4 修改、删除等描述
社团负责人(社长)撤销、审核成员:社团负责人登录社团后可以对申请入团的成员进行审核,审核通过的成员即成为社团的成员,还可以撤销成员。
图3-5 社团负责人描述
学工主任(管理员)审核社团活动:学工主任登录系统后可以对社团申请的活动进行审核,查看到社团发布的活动后可以决定活动通不通过。如若审核后,社团负责人则不可以修改该活动。
图3-6 学工审核描述
学工主任(管理员)创建新社团:学工主任可以创建新的社团,编写社团的信息,并创建该社团的负责人,填写负责人的信息。
图3-7 学工创建新社团描述
3.2.2 用户需求
高校社团招新系统式大学生在社团管理工作之中不可或缺的一部分,他对于社团的使用者和社团的管理者都起着不同寻常的作用。因此,高校社团招新系统应该能够为大学生和社团管理人员们提供足量的信息和便捷的参与方式。计算机已经逐步进入了非常多的领域,并且有着非常重要的地位。使用计算机对社团的信息进行组织和管理,已经作为了计算机应用的一部分,且它有着人工管理数据的巨大优势。比如:成本非常低,查询信息的速度很快,可靠性非常的强等等。这些优势能够很好的提高社团管理的效率。开发社团招新系统的设计目标就是为了实现社团招新管理的规范化,自动化和系统化,从而实现对社团的集中的统一管理。
3.2.3 信息需求
社团招新系统主要是针对社团申请和活动发布进行处理,将这些数据信息以出入数据库,不但方面管理员管理社团事务,而且能提高学生对社团的参与以及社团最新活动的情况,方便学生参与进来。
3.2.4 安全性和完整性需求
1.安全性需求
在登录系统的时候,通常需要对用户的用户名,还有密码进行安全验证,同时在运行的时候,还要对一些不合法的操作进行验证。以及一些数据输入的格式非法,不正确等错误,进行相对应的提醒,还有防止用户在不属于其权限的范围内操作数据等。通过一些提示信息,可以帮助用户去更好的避免错误,并且及时的改正错误。当系统比较安全,健壮的时候,会自动捕捉一些非法的异常,从而不会导致系统很轻易就崩溃退出。
2.完整性需求
该系统要在传送数据的过程中保证数据不会被更改,不会出现缺失。
3.2.5 数据库需求分析
1.对实体中所对应的数据项给出准确的数据字典描述,且语义要合理。
2.分析出大学生社团管理应该包含的哪些实体,还有实体所包含的属性。分析出实体之间的关系,比如强制参与,可选参与等。
3.数据库设计的关系模式要进行规范化处理,每个关系应能达到3NF。
4.根据逻辑设计的原则,将之转化成相应的数表,并且标明外键、主键等。
5.使用PowerDesigner为建模工具,对数据库进行逻辑设计,图中应包含实体,属性,实体之间联系,外键,主键等。
6.数据库的关系图如下:
图3-8 数据库需求关系
4 系统设计
4.1 系统概要设计
本章主要详细地阐述了该高校社团招新系统的总体设计(如图4-1),包括了注册、登录,成员的管理,活动的管理,消息管理,财务管理等等。其次,还包含了系统的体系设计,包括设计原则,系统功能模块的设计等。还包括数据库的设计,涉及实体关系图,逻辑设计实现等。通过以上的概要设计以便更加准确的进行系统开发。
图4-1 系统功能结构图
4.2 系统详细设计
4.2.1 设计原则
(1)根据现在所拥有的软件和硬件的环境,从而提出适合的开发方案,以此来达到应用效果的目的和资源的利用最大化。
(2)该系统要能够为用户的需求进行数据库的各种操作处理。
(3)高校社团招新系统的整体设计同时也要与当下的校园发展相适应。
(4)系统不仅可以达到社团招新工作的需求,还能够在使用的过程之中达到易操作,简洁直观等要求。
4.2.2 系统功能模块设计
根据对系统需求的分析,总结出主要有以下几个功能模块:
注册,登录模块,包含普通用户的注册、登录,社团负责人的登录,学工主任的登录,通过登录界面从而进入到社团的管理等。
图4-2 登录页面流程图
成员管理模块,包含个人信息的修改,查看社团,通过成员管理从而对个人的信息查看,社团查看,个人信息的修改等。
图4-3 成员管理流程图
活动管理模块,包含举行活动、活动审核、活动费用、活动评选,通过活动管理从而在这里发布活动,学生从而接收到活动的通知等。
图4-4 活动管理流程图
通知管理模块,包含发布消息、查看消息,学生们通过通知管理从而收到社团负责人所发布的通知管理。
图4-5 通知管理流程图
4.3 数据库设计
4.3.1 实体关系图
通过分析学生社团管理系统,可以总结出以下几个实体:用户、社团、活动、消息、评价。
各实体之间的关系的E-R图如下图所示。
图4-6 实体E-R图
用户含有的属性有:用户id、用户姓名、用户密码、用户电话、学院、专业、学号、性别、头像、状态,用户的E-R图如下。
图4-7 用户实体图
社团含有的属性有:社团id、社团名称、社团类型、社团日期、社团介绍、社团资料、社团图标、社团人数,社团的E-R图如下。
图4-8 社团实体图
活动含有的属性有:活动id、活动名称、活动类型、活动主题、活动时间、活动对象、活动地点、活动人数、活动介绍、活动海报、活动状态,活动的E-R图如下。
图4-9 活动实体图
消息含有的属性有:通知id、通知日期、通知主题、通知内容、状态,消息的E-R图如下。
图4-10 消息实体图
评论含有的属性有:评论id、评论日期、评论内容、评论分数、状态,评论的E-R图如下。
图4-11 评论实体图
4.3.2 逻辑设计实现
逻辑设计是指通过数据库将复杂抽象的关系图转化为数据逻辑,用数据库的方式表现各个实体的属性。
数据库逻辑结构如下:
1.student(用户信息表)
用户信息表主要包括:用户id、用户姓名、用户密码、社团id、用户电话、学院、专业、学号、性别、头像、状态。
表4-1 用户信息表
属性名 字段名 数据类型 长度 说明 主外键
用户id stuid int 10 唯一,非空 主键
用户姓名 username varchar 30
用户密码 password varchar 30
社团id comid int 10 外键
用户电话 telephone varchar 30
学院 college varchar 30
专业 major varchar 30
学号 snumber varchar 30
性别 sex varchar 30
头像 avatarpath varchar 30
状态 status int 10
2.activity(活动信息表)
活动信息表包括:活动id、活动名称、活动类型、活动主题、社团id、活动时间、活动对象、活动地点、活动人数、活动介绍、活动海报、活动状态。
表4-2 活动信息表
属性名 字段名 数据类型 长度 说明 主外键
活动id acid int 10 唯一,非空 主键
活动名称 acname varchar 30
活动类型 actype varchar 30
活动主题 actheme varchar 30
社团id comid int 10 非空 外键
活动时间 actime varchar 30
活动对象 acobj varchar 30
活动地点 acplace varchar 30
活动人数 signnumber int 255
活动介绍 acintro varchar 255
活动海报 pasterpath varchar 30
活动状态 status varchar 30
3.community(社团信息表)
社团信息表包括:社团id、社团名称、社团类型、社团负责人id、社团日期、社团介绍、社团资料、社团图标、社团人数。
表4-3 社团信息表
属性名 字段名 数据类型 长度 说明 主外键
社团id comid int 30 唯一,非空 主键
社团名称 comname varchar 30
社团类型 comtype varchar 30
社团负责人id comuid int 30
社团日期 comdate varchar 30
社团介绍 comintro varchar 100
社团资料 comdata varchar 100
社团图标 icon varchar 30
社团人数 membernumber int 30
4.notice(通知信息表)
通知信息表主要包括:通知id、社团id、通知日期、通知主题、通知内容、状态。
表4-4 通知信息表
属性名 字段名 数据类型 长度 说明 主外键
通知id noticeid int 10 唯一,非空 主键
社团id commid int 10 非空 外键
通知日期 ndate varchar 30
通知主题 noticetheme varchar 30
通知内容 content varchar 255
状态 status int 10
5.assess(评论信息表)
评论信息表主要包括:评论编号、活动编号、评论日期、评论内容、评论分数、状态。
表4-5 评论信息表
属性名 字段名 数据类型 长度 说明 主外键
评论编号 asid int 30 唯一,非空 主键
活动编号 acid int 30 非空 外键
评论日期 asdate varchar 30
评论内容 ascontent varchar 255
评论分数 asscore varchar 30
状态 status Int 30
5 社团招新系统的实现
本章主要介绍社团招新系统的实现,介绍了本系统的几个主要使用界面设计及关键 代码实现。
5.1用户登录模块
每个用户登录本系统的操作之前,都需要先登录系统。第一步进入登录页面,正确输入用户名和密码,输入完后点击登录,登陆成功后会跳转到主页面。用户名和密码输入错误或者没有输入会提示错误信息。
用户登录界面如图5.1所示。
图5.1 用户登录界面
具体代码如下:
<div class="msg-warn hide title" v-if="true" :style='{"padding":"0 10px","boxShadow":"0 0 6px rgba(255,0,0,.8)","margin":"10px auto","borderColor":"rgba(0,0,0,1)","backgroundColor":"#f7f7f7","color":"red","isshow":true,"borderRadius":"8px","borderWidth":"0","width":"auto","lineHeight":"32px","fontSize":"12px","borderStyle":"solid"}'>公共场所不建议自动登录,以防账号丢失</div><div :style='{"padding":"0","boxShadow":"0 0 6px rgba(255,0,0,0)","margin":"0 auto","borderColor":"rgba(0, 112, 126, 1)","backgroundColor":"rgba(213, 195, 195, 0.49)","borderRadius":"20px","borderWidth":"0 0 0px 0","width":"80%","borderStyle":"solid","height":"64px"}' class="form-item"><label v-if="false" :style='{"padding":"0 10px","boxShadow":"0 0 6px rgba(255,0,0,0)","borderColor":"rgba(0,0,0,0)","backgroundColor":"transparent","color":"#333","borderRadius":"0","textAlign":"right","borderWidth":"0","width":"84px","fontSize":"16px","borderStyle":"solid"}' class="form-label">账号</label><input :style='{"padding":"0 10px","boxShadow":"0 0 6px rgba(0,0,0,.5)","borderColor":"rgba(0, 112, 126, 1)","backgroundColor":"#fff","color":"#333","borderRadius":"8px","textAlign":"left","borderWidth":"1px","width":"100%","fontSize":"14px","borderStyle":"solid","height":"44px"}' type="text" name="username" required lay-verify="required" placeholder="请输入账号" autocomplete="off" class="layui-input"></div><div :style='{"padding":"0","boxShadow":"0 0 6px rgba(255,0,0,0)","margin":"0 auto","borderColor":"rgba(0, 112, 126, 1)","backgroundColor":"rgba(213, 195, 195, 0.49)","borderRadius":"20px","borderWidth":"0 0 0px 0","width":"80%","borderStyle":"solid","height":"64px"}' class="form-item"><label v-if="false" :style='{"padding":"0 10px","boxShadow":"0 0 6px rgba(255,0,0,0)","borderColor":"rgba(0,0,0,0)","backgroundColor":"transparent","color":"#333","borderRadius":"0","textAlign":"right","borderWidth":"0","width":"84px","fontSize":"16px","borderStyle":"solid"}' class="form-label">密码</label><input :style='{"padding":"0 10px","boxShadow":"0 0 6px rgba(0,0,0,.5)","borderColor":"rgba(0, 112, 126, 1)","backgroundColor":"#fff","color":"#333","borderRadius":"8px","textAlign":"left","borderWidth":"1px","width":"100%","fontSize":"14px","borderStyle":"solid","height":"44px"}' type="password" name="password" required lay-verify="required" placeholder="请输入密码" autocomplete="off" class="layui-input"></div><div class="form-item codes" :style='{"padding":"0","boxShadow":"0 0 6px rgba(255,0,0,0)","margin":"0 auto","borderColor":"rgba(0, 112, 126, 1)","backgroundColor":"rgba(213, 195, 195, 0.49)","borderRadius":"20px","borderWidth":"0 0 0px 0","width":"80%","borderStyle":"solid","height":"64px"}'><input style="flex: 1;" type="text" id="code" placeholder="请输入验证码"><div class="nums" id="nums" style="display: flex;justify-content: center;align-items: center;"></div></div><div :style='{"padding":"0","boxShadow":"0 0 6px rgba(255,0,0,0)","margin":"0 auto","borderColor":"rgba(0, 112, 126, 1)","backgroundColor":"#fff","borderRadius":"0","borderWidth":"0 0 1px 0","width":"80%","borderStyle":"solid","height":"44px"}' class="form-item l-redio"><input v-if="item.hasFrontLogin=='是'" v-for="(item,index) in menu" v-bind:key="index" type="radio" name="role" id="role" :value="item.tableName" :title="item.roleName"></div><button :style='{"padding":"0 10px","boxShadow":"0 0px 0px rgba(255, 0, 0, 1)","margin":"10px auto","borderColor":"rgba(0, 112, 126, 1)","backgroundColor":"rgba(38, 155, 158, 1)","color":"#fff","borderRadius":"8px","borderWidth":"0","width":"60%","fontSize":"14px","borderStyle":"solid","height":"44px"}' class="layui-btn layui-btn-fluid layui-btn-danger btn-submit" lay-submit lay-filter="login">登录</button><p :style='{"color":"rgba(255, 0, 0, 1)","textAlign":"left","fontSize":"12px"}' class="txt"><a style="color: inherit;font-size: inherit;" v-if="item.hasFrontRegister=='是'" v-for="(item,index) in menu" v-bind:key="index" :href="'javascript:registerClick(\''+item.tableName+'\')'">注册{{item.roleName.replace('注册','')}}</a></p></form>
5.2用户加入社团模块的实现
用户加入社团信息,以用户角色登入系统以后选择社团信息管控功能选项,系统就会展示该部分工作面,此时显示社团的详细情况,包括社团类型,成立时间,社团人数,账号,姓名,联系电话等,在加入社团该部分信息时系统会自动调用add函数,然后页面提示加入成功。下面的图片展示的就是该板块对应的工作面。
加入社团界面如图5.2所示。
图5.2加入社团功能板块工作面展示图
代码如下:
/**
* 前端保存
*/
@RequestMapping(“/add”)
public R add(@RequestBody ShetuanxinxiEntity shetuanxinxi, HttpServletRequest request){
shetuanxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(shetuanxinxi);
shetuanxinxiService.insert(shetuanxinxi);
return R.ok();
}
5.3社团信息管理模块的实现
新增社团信息,以管理员角色登入系统以后选择社团信息管控功能选项,系统就会展示该部分工作面,此时选择新增社团信息选项,系统就会自动转到社团信息新增工作面,在新增该部分信息时系统会自动调用add函数,然后在给定的文本框中填写有关该社团信息的基础信息后选择确认即可完成新增。下面的图片展示的就是该板块对应的工作面。
图5.4新增社团信息功能板块工作面展示图
代码如下:
/**
* 后端保存
*/
@RequestMapping(“/save”)
public R save(@RequestBody ShetuanxinxiEntity shetuanxinxi, HttpServletRequest request){
shetuanxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(shetuanxinxi);
shetuanxinxiService.insert(shetuanxinxi);
return R.ok();
}
检索社团信息,在新增社团信息以后,在检索工具栏中填写对应的社团信息,系统就会将该社团信息有关的所有信息展示出来。下面的图片展示的就是该板块对应的工作面。
图5.5检索社团信息功能板块工作面展示图
代码如下:
/**
* 查询
*/
@RequestMapping(“/query”)
public R query(ShetuanxinxiEntity shetuanxinxi){
EntityWrapper< ShetuanxinxiEntity> ew = new EntityWrapper< ShetuanxinxiEntity>();
ew.allEq(MPUtil.allEQMapPre( shetuanxinxi, “shetuanxinxi”));
ShetuanxinxiView shetuanxinxiView = shetuanxinxiService.selectView(ew);
return R.ok(“查询社团信息成功”).put(“data”, shetuanxinxiView);
}
5.4社长信息管理模块的实现
新增社长信息,以管理员角色登入系统以后选择社长信息管控功能选项,系统就会展示该部分工作面,此时选择新增社长信息选项,系统就会自动转到社长信息新增工作面,在新增该部分信息时系统会自动调用add函数,然后在给定的文本框中填写有关该社长信息的基础信息后选择确认即可完成新增。下面的图片展示的就是该板块对应的工作面。
图5.6新增社长信息功能板块工作面展示图
代码如下:
/**
* 后端保存
*/
@RequestMapping(“/save”)
public R save(@RequestBody ShezhangEntity shezhang, HttpServletRequest request){
shezhang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(shezhang);
ShezhangEntity user = shezhangService.selectOne(new EntityWrapper().eq(“zhanghao”, shezhang.getZhanghao()));
if(user!=null) {
return R.error(“用户已存在”);
}
shezhang.setId(new Date().getTime());
shezhangService.insert(shezhang);
return R.ok();
}
检索社长信息,在新增社长信息以后,在检索工具栏中填写对应的社长信息,系统就会将该社长信息有关的所有信息展示出来。下面的图片展示的就是该板块对应的工作面。
图5.7检索社长信息功能板块工作面展示图
代码如下:
/**
* 列表
*/
@RequestMapping(“/lists”)
public R list( ShezhangEntity shezhang){
EntityWrapper ew = new EntityWrapper();
ew.allEq(MPUtil.allEQMapPre( shezhang, “shezhang”));
return R.ok().put(“data”, shezhangService.selectListView(ew));
}
/*** 查询*/
@RequestMapping("/query")
public R query(ShezhangEntity shezhang){EntityWrapper< ShezhangEntity> ew = new EntityWrapper< ShezhangEntity>();ew.allEq(MPUtil.allEQMapPre( shezhang, "shezhang")); ShezhangView shezhangView = shezhangService.selectView(ew);return R.ok("查询社长成功").put("data", shezhangView);
}
5.5社团活动管理模块的实现
新增社团活动信息,以管理员角色登入系统以后选择社团活动管控功能选项,系统就会展示该部分工作面,此时选择新增社团活动选项,系统就会自动转到社团活动新增工作面,在新增该部分信息时系统会自动调用add函数,然后在给定的文本框中填写有关该社团活动的基础信息后选择确认即可完成新增。下面的图片展示的就是该板块对应的工作面。
图5.8新增社团活动功能板块工作面展示图
代码如下:
/**
* 后端保存
*/
@RequestMapping(“/save”)
public R save(@RequestBody ShetuanhuodongEntity shetuanhuodong, HttpServletRequest request){
shetuanhuodong.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(shetuanhuodong);
shetuanhuodongService.insert(shetuanhuodong);
return R.ok();
}
检索社团活动信息,在新增社团活动信息以后,在检索工具栏中填写对应的社团活动信息,系统就会将该社团活动有关的所有信息展示出来。下面的图片展示的就是该板块对应的工作面。
图5.9检索社团活动功能板块工作面展示图
代码如下:
/**
* 列表
*/
@RequestMapping(“/lists”)
public R list( ShetuanhuodongEntity shetuanhuodong){
EntityWrapper ew = new EntityWrapper();
ew.allEq(MPUtil.allEQMapPre( shetuanhuodong, “shetuanhuodong”));
return R.ok().put(“data”, shetuanhuodongService.selectListView(ew));
}
/*** 查询*/
@RequestMapping("/query")
public R query(ShetuanhuodongEntity shetuanhuodong){EntityWrapper< ShetuanhuodongEntity> ew = new EntityWrapper< ShetuanhuodongEntity>();ew.allEq(MPUtil.allEQMapPre( shetuanhuodong, "shetuanhuodong")); ShetuanhuodongView shetuanhuodongView = shetuanhuodongService.selectView(ew);return R.ok("查询社团活动成功").put("data", shetuanhuodongView);
}
6 系统测试
6.1 系统测试的目的及意义
在开发软件系统的过程中,会遇到很多的复杂问题,这就无法避免会导致软件在任意阶段出现错误。我们必须在任何一个阶段的结束时,都进行测试评估,尽早地发现错误并解决错误。测试地目的就在于此,为了软件在投入使用之前,找出更多的错误,并解决它们。目前而言,软件地测试仍然是保证软件高质量地重要一步,是对软件设计和编码的最终审核。
测试也是开发阶段的最后一个阶段,这是确保软件的高质量的重要手段。在软件的测试过程之中,我们应当故意促成错误,从而进行检测,是一个受控条件下使用系统和应用程序并评估操作结果的过程。对于什么时候出现错误,什么时候不应该出现错误,我们都需要依次进行检测。
6.2 系统测试的常用方法和内容
系统测试一般分为白盒测试以及黑盒测试。白盒测试是基于内部逻辑结构的测试,而黑盒测试是检查程序的功能是否符合正常的使用。再进行测试的时候,我们需要选取后台管理员的权限来进行测试。通过个人信息的文字合法性,以及内容的检验,为了更加安全的保护用户的数据,从系统的安全性角度进行测试。
测试的内容包括对学生登录信息的测试,对用户的账号密码进行校验检查。同时,对个人信息的合法性进行检查,对活动的社团能否收到进行测试。
6.3 系统测试的测试用例
6.3.1 登录界面
测试用例:
图6-1 登陆页面测试用例
6.3.2 个人信息
测试用例:
图6-2 个人信息测试用例
6.3.3 活动社团
测试用例:
图6-3 活动社团测试用例
7
结束语
高校社团招新系统用来辅助社团负责人对社团进行招新管理。整体的系统的各个模块之间有一定的联系,目前的系统来看,可以解决一些学校社团所管理起来的问题,可以有效的帮助社团负责人对社团及成员的管理。总的来说,系统的完成可以帮助社团的管理有一定的进步,可以更好的促进社团负责人和团员之间的沟通,促进学工主任和社团负责人和社团成员的沟通。但目前的系统仍有一定的缺陷,例如,许多有关社团的信息、社团的活动等,都只能社团负责人手动输入,不能获取相应的内容,社团经费这一方面,设计的还不完善,不能对社团的经费进行很好的管理。总之,系统仍有一定的缺陷,但不影响系统的整体运行,毕竟有些方面社团负责人可以自己人工的进行修改等,系统还是可以大大的帮助到社团的运营,减轻社团负责人的任务等。希望系统的开发可以有效的帮助到社团的进步,学生的兴趣活动。
尽管这个系统还有许多不完善的地方,希望可以经过社团的检验,发现其中的不足,加以改进,以此来帮助更多的社团。在社团发展进步的过程中,社团的管理会变得越来越重要,社团的种类也会越来越多,所以在系统的改进方面也要越做越好,希望学校的社团的越来越好,学生的生活越来越丰富,高校社团招新系统对学生越来越有帮助。
参考文献
[1]骆伟,殷宏涛,陶琛.基于协同过滤算法的高校社团推荐系统的设计与实现[J].软件工程,2022,25(02):42-45.DOI:10.19644/j.cnki.issn2096-1472.2022.002.010.
[2]陈进强.某学院学生社团管理系统设计与实现[J].科学技术创新,2021(24):108-110.
[3]李伟雄,李海燕.基于微信的高校社团管理系统设计与实现[J].信息技术与信息化,2021(07):152-154.
[4]韩煦.加强政治建设与高校学生社团管理体系升级[J].党政论坛,2021(04):37-40.
[5]奚楠. 基于知识地图的中国近代科技社团资料数据库及应用系统的设计与实现[D].北京邮电大学,2021.DOI:10.26969/d.cnki.gbydu.2021.001912.
[6]吴成炎.高职院校“智慧+社团”平台建设研究[J].科技与创新,2021(08):106-107.DOI:10.15913/j.cnki.kjycx.2021.08.040.
[7]任鑫梅,刘小英.高校社团管理信息系统的设计与实现[J].电脑知识与技术,2021,17(11):31-32+35.DOI:10.14004/j.cnki.ckt.2021.0923.
[8]王琛,曹桂磊,卢曦.基于移动平台的校园社团APP设计[J].无线互联科技,2021,18(07):56-57+81.
[9]吴尚妍,陈贵平.基于JavaWeb的校园社团平台设计与开发[J].电脑知识与技术,2021,17(10):76-78+92.DOI:10.14004/j.cnki.ckt.2021.1039.
[10]惠苗,张晓冬.“互联网+”高校社团管理系统的设计与实现[J].萍乡学院学报,2019,36(03):78-83.
[11]郭锦荣. 某学院学生社团管理系统的设计与实现[D].江西财经大学,2017.
[12]邓文聪. 新会机电中专学生社团管理系统的研究与分析[D].云南大学,2017.
[13]刘艳英. 江门市新会机电职业技术学校学生社团管理系统的研究与分析[D].云南大学,2017.
[14]卢俊雯. 江西财经职业学院社团管理系统的研究与分析[D].云南大学,2016.
[15]余夭贵. 江门市新会机电职业技术学校学生社团管理系统的研究与分析[D].云南大学,2016.
[16]林启康. 江门市新会机电职业技术学校中国象棋社团管理系统的研究与分析[D].云南大学,2016.
[17]岳彧男. 淮北职业学院学生社团管理系统设计与实现[D].大连理工大学,2015.
[18]陈晓宇. 广州体育职业技术学院学生社团管理系统的研究与分析[D].云南大学,2016.
[19]许永华. 中等职业学校校园社团管理系统管理系统分析与设计[D].云南大学,2014.
[20]杨友国. 阿坝师专大学生社团管理信息系统设计与实现[D].电子科技大学,2014.
致谢
首先,我要感谢我的指导老师,是老师的指导和督促,让我在完成毕业设计的过程中,不至于磕磕绊绊,让我少走了很多弯路。我要感谢我的指导老师,在选题期间,老师为我提供了毕业设计的选题,以及与我讨论这个选题所要完成的内容,同时还推荐了许多的参考资料和文献。在我开发系统期间,老师在功能和网页设计方面也给我了很多建议,并且多次进行指导。在此,我向指导老师致以诚挚的谢意和崇高的敬意。
其次,感谢我的朋友们。在这段时光里,我们一起经历过开心,苦恼,那真是令人难忘的日子。很感谢在我困难的时候,开导我,陪伴我的朋友们,让我的生活不至于只身一人面对挫折。