目 录
摘要
本文深入探讨了基于Spring Boot框架的Web会议记录与分享系统的设计与实现。该系统利用Spring Boot框架的简洁性、快速性和便捷性,构建了一个高效、稳定的Web平台,实现了会议记录的在线编辑、存储、检索与分享功能。通过Spring Boot的自动配置和依赖管理,系统快速集成了用户认证、权限管理、实时通信等核心模块,确保了系统的安全性和实时性。同时,利用Spring Boot的MVC设计模式,系统构建了直观友好的用户界面,提升了用户体验。此外,系统还利用Spring Boot的测试功能,进行了全面的单元测试与集成测试,确保了系统的稳定性和可靠性。实际应用表明,基于Spring Boot的Web会议记录与分享系统不仅提高了会议记录的效率和准确性,还大大促进了信息的流通与共享,为团队协作和沟通提供了有力的技术支撑。
关键词:会议记录与分享系统,springboot;Java
Design and implementation of a web-based meeting recording and sharing system
Abstract
This article delves into the design and implementation of a web conference recording and sharing system based on the Spring Boot framework. This system utilizes the simplicity, speed, and convenience of the Spring Boot framework to build an efficient and stable web platform, enabling online editing, storage, retrieval, and sharing of meeting records. Through the automatic configuration and dependency management of Spring Boot, the system quickly integrates core modules such as user authentication, permission management, and real-time communication, ensuring the security and real-time performance of the system. Meanwhile, utilizing the MVC design pattern of Spring Boot, the system has built an intuitive and user-friendly interface, enhancing the user experience. In addition, the system also utilized the testing capabilities of Spring Boot to conduct comprehensive unit and integration testing, ensuring the stability and reliability of the system. Practical applications have shown that the Web conference recording and sharing system based on Spring Boot not only improves the efficiency and accuracy of conference recording, but also greatly promotes the flow and sharing of information, providing strong technical support for team collaboration and communication.
Keywords: Meeting minutes and sharing system, springboot; Java
第一章 绪论
1.1 研究背景与意义
随着信息技术的迅猛发展和互联网的普及,团队协作与沟通方式正经历着深刻的变革。传统的会议记录方式,如手写笔记或简单的文档记录,已无法满足现代团队对于信息实时更新、快速共享的需求。而基于Web的会议记录与分享系统,以其在线编辑、实时更新、易于检索和分享的特性,正成为解决这一问题的有效途径。
因此,本研究致力于设计与实现一个高效、稳定的基于Web的会议记录与分享系统。通过充分利用Web技术的优势,打破传统会议记录方式的局限,提升会议效率,促进信息流通,为团队协作和沟通提供强有力的技术支撑。
该研究的意义不仅在于满足团队实际工作的需求,提升团队协作的效率,更在于推动信息化办公的进程,促进相关领域的技术创新和产业发展。同时,该系统还有望在推动数字化转型、优化工作流程等方面发挥重要作用,为信息化社会建设贡献力量。
1.2 开发现状
在国内,随着信息化建设的不断推进,越来越多的学者和企业开始关注基于Web的会议记录与分享系统的研发。一些高校和研究机构在相关领域进行了深入探索,提出了多种系统设计方案和实现方法。这些系统通常注重用户体验和功能性,通过集成在线编辑、实时更新、检索和分享等功能,有效提升了会议记录的效率和质量。同时,一些企业也积极投入研发,推出了商业化的会议记录与分享系统,满足了不同行业和企业的需求。
在国外,基于Web的会议记录与分享系统的研究也取得了显著进展。许多知名的科技公司和研究机构致力于开发高效、稳定的会议记录系统,并积极探索新的技术应用。例如,一些系统利用相关技术,实现了会议内容的自动识别和整理,进一步提高了会议记录的准确性和效率。此外,一些国际性的学术会议和研讨会也频繁讨论该领域的前沿技术和应用,推动了全球范围内的研究合作与交流。
综合来看,国内外在基于Web的会议记录与分享系统研究方面均取得了积极成果,但仍存在一些挑战和问题需要解决。例如,如何进一步提高系统的稳定性和安全性,如何更好地满足用户个性化需求,以及如何与其他办公系统进行有效集成等。因此,未来研究需要进一步关注这些方面,以推动基于Web的会议记录与分享系统的持续发展和完善。
第二章 相关技术介绍
2.1 JAVA技术
Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterprise JavaBeans)的全面支持,java springboot API,SSM(java server pages),和XML技术。
JAVA语言功能:
面向对象编程是一种革命性的软件开发方法,它将复杂的程序结构转换为可编程的对象,从而大大简化了编程过程,并且极大地提升了程序的安全性。它的出现,使得编程者可以更加轻松地完成任务,并且可以更好地控制程序的运行,从而更好地满足用户的需求。
Java的一个重要优势在于它的跨平台特性,这使得编程变得更加便捷。通过使用Java,您可以轻松访问多个不同的平台,而不必担心编译时会出现问题。
C++的缺陷之一便是它没有有效地利用可重复使用的资源,这使得它的资源需求量大大增加,而这种情况下,它的垃圾回收机制正好可以有效地解决这一问题,因而减少了资源的使用,进而节约了巨量的资源。一些优秀的编程人员通常都会将一块内存地址设为堆栈,以便当它被使用的时候自动解锁,但是一些初学者或者初入者往往忽略了这一步骤,结果就是程序的性能受到了影响,甚至出现了崩溃的情况。因此,许多C++专家在开发代码时,通常会先检查一个指针的值,如果它已经被移动,就把它的值调整到NULL,这样才能够有效地完成代码的执行。
2.2 springboot框架
SpringBoot框架是由Pivotal团队提供的一个全新框架,旨在简化新Spring应用的初始搭建以及开发过程。它并不是一门新技术,而是将之前常用的Spring、SpringMVC、data-jpa等常用的框架封装到了一起,帮助开发者隐藏这些框架的整合细节,实现敏捷开发。
SpringBoot框架的特点包括:
1. 不需要模板化的配置:SpringBoot项目通过特定的方式进行配置,使开发人员不再需要定义样板化的配置。
2. 自动整合第三方框架:在SpringBoot中整合第三方框架时,只需要导入相应的starter依赖包,就自动整合了。
3. 配置文件的简化:SpringBoot默认只有一个.properties的配置文件,不推荐使用xml,后期会采用.java的文件去编写配置信息。
此外,SpringBoot框架是构建微服务框架SpringCloud的基础。因此,对于想要从事快速应用开发或微服务开发的开发者来说,掌握SpringBoot框架是非常重要的。
2.3 MySQL数据库
数据库作为数据的存储地方是项目必需的,MySQL是一款非常优秀的关系型数据库,早期的MySQL并不是甲骨文公司的,后来才被他收购的。MySQL非常的小巧,安装包才几兆,sql语言的书写也比较容易学习,最重要的是MySQL同时也是一款开源的软件,所以不需要额外进行付费,本系统本身也是以学习总结所学知识为主,在系统的开发上最好尽量使用免费的软件,所以选用MySQL进行数据库管理。MySQL的容量也是非常大的,同时支持分库分表的操作,支持分布式,所以越来越多的中小企业选择该款数据库管理工具。另外值得一提的是,开源也有一个不好的地方,就是容易遭到破解和黑客攻击,所以MySQL在使用上还是更多的使用在中小项目中。
MySQL不会对平台有需求,所以任何一个程序员都可以通过 MySQL数据库来完成自己的系统开发,并且还可以节约大量的资源。因为它具有强大功能,所以可以用来储存这个系统的数据。
MySQL适合于各种应用,我们在运行数据库的时候,也很容易上手,我们只要编写一段代码,就可以完成相应的功能,并且可以在任何的平台上使用,而不需要再进行第二次的编译。MySQL数据库还具备在本地存储数据和允许结构化查询以方便管理的优势;MySQL是一个完全网络化的系统,它的数据库可以在互联网的任何位置被访问,它可以在任何地点与任何人分享;此外,MySQL也提供了存取控制的能力,可以阻止数据被非法使用,MySQL服务稳定,开发成本低,所以在开发过程中,MySQL数据库是最受欢迎的。
第三章 系统分析
3.1 可行性分析
技术性方面,现在科学技术在不断进步,计算机软硬件的发展已经达到了可持续的水平。Java语言的出现,使得普通的电脑也具备了完成该项目的功能,而且其占用的内存也极其紧凑,这使得使用MySQL进行软件的编程与设计几乎不会出现任何挑战。
实用性方面,本次设计的主要任务是在基于Web的会议记录与分享系统内会议信息管理、会议记录管理、个人资料修改、系统公告等,符合当前潮流的发展。从用户角度出发,同时也考虑系统运营成本和人力资源,采用网络上的便捷方式,实现线上业务,使得业务流程更系统,也更方便用户的体验,比较实用。
经济性方面,由于本课题中设计的基于Web的会议记录与分享系统的主要目的是为了能够更加方便及快捷的进行信息的查询管理及检索服务,也就是能够可以直接投入使用的信息化软件。系统的主要成本主要是集中在对使用数据后期继续维护及其管理更新这个操作上。但是一旦系统投入到实际的运行及使用之后就能够很好的提高信息查询检索的效率,同时也需要有效的保证查询者的信息方面的安全性,同时这个基于Web的会议记录与分享系统所带来的实际应用方面的价值是远远地超过了实际系统进行开发与维护方面的成本,因此,从经济上来说开发这个软件是可行的。
3.2 功能需求分析
基于Web的会议记录与分享系统的功能主要分为前台用户根据自己的需求进行注册登录,首页、系统公告、会议信息等,并对需要的会议信息进行记录操作。后台系统管理员因职责的不同,主要对系统用户,会议信息管理,会议记录管理,共享信息管理、系统管理、下载信息管理、系统公告管理等进行处理。
用户用例图如下所示。
图3-1 教师用户用例图
管理员用例图如下所示。
图3-2 管理员用例图
3.2.1 用户功能
用户的功能如下:
登录功能: 用户可以通过输入用户名和密码进行登录,验证身份并访问系统。新用户由管理员直接进行添加,填写必要信息并创建账户。
通知公告:用户可以查看系统发布的网站公告,包括关于我们、联系方式、网站介绍等信息。
会议信息:用户可以查看与自己相关的会议信息,如即将召开的会议的时间、地点等。。
会议记录管理:用户可以创建、编辑和提交会议记录,确保会议内容的准确记录。共享信息管理:用户可以浏览和下载共享的资料和信息,以支持教学和科研工作
我的:用户可以查看和编辑自己的个人信息,如姓名、联系方式等。为了保障账户安全,用户可以定期修改自己的登录密码。
后台管理员功能
管理员功能如下:
系统用户管理:管理员可以创建、编辑或删除系统用户,确保每个用户具有适当的权限和角色。
会议信息管理:管理员可以创建、编辑、删除会议信息,包括会议的主题、时间、地点、参与人员等。
会议类型管理:管理员可以定义和管理不同类型的会议,如日常会议、临时会议、重要会议等,并设置各类型会议的相关属性和规则。
通知公告管理:管理员负责发布、编辑、删除和查看通知公告,确保所有用户都能及时收到重要的系统信息。
会议记录管理:管理员可以查看、编辑、删除会议记录,确保记录的准确性和完整性。同时,管理员可能还负责审核其他用户提交的会议记录。
共享信息管理:管理员可以管理共享的文件、资料或信息,确保其安全性和可访问性。
下载信息管理:管理员可以查看和分析用户的下载记录,了解哪些资料被频繁下载,从而优化资源管理和分享策略。
3.3 非功能需求分析
首先主要考虑的是系统功能软件,在具体设计的环节上,是不是能够较好的满足各类用户的基本功能需求,如果不能较好的满足用户需求,那么这个系统的存在是没有价值的。软件系统的非功能性求分析,从7个方面展开,一个是性能分析,针对系统;一个是安全分析,针对系统,一个是完整度分析,针对系统,一个是可维护分析,针对系统,一个是可扩展性分析,针对系统,一个是适应业务的性能分析。面对基于Web的会议记录与分享系统存在的性能、安全、扩展、完整度等7个方面性能综合比对分析后发现,需要相应的非功能性需求分析。
3.4 安全性需求分析
3.4.1 系统的安全性
安全性对每一个系统来说都是非常重要的。安全性很好的系统可以保护会议的信息和用户的信息不被窃取。提高系统的安全性不仅是对用户的负责,更是对会议的负责。尤其针对于基于Web的会议记录与分享系统来说,必须要有很好的安全性来保障整个系统。
系统具有对使用者有权限控制,针对角色的不同限制使用者的权限,以此来确保系统的安全性
3..4.2数据的安全性
数据库中的数据是从外界输入的,当数据的输入时,由于种种原因,输入的数据会无效,或者是脏数据。因此,怎样保证输入的数据符合规定,成为了数据库系统,尤其是多用户的关系数据库系统首要关注的问题。
因此,在写入数据库时,要保证数据完整性、正确性和一致性。
3.5 业务流程分析
经过对系统功能的分析,调查,研究,总结出基于Web的会议记录与分享系统主要实现的是对反馈信息、用户信息等管理功能。这样,可以对该系统绘制业务流程图。
如下为业务流程图图例。
图3-3业务流程图图例
系统的业务流程如下图所示。
图3-4系统业务流程图
3.6 数据流程分析
根据上文所述的业务流程特点,首先对各个方面总的数据处理环节和外部实体进行了描述, 根据自顶向下原则,逐层分解功能,这个过程产生DFD图。
以下是本文当中使用的数据流图图例,见下图所示。
图3-5系统数据流图(0层)
零层数据流程是流程中最抽象的一层,它包括了注册与登录管理、用户功能管理和检索维护管理等功能模块,在登录注册模块使用到的数据存储有用户账户信息文档、用户信息文档,用户功能管理模块需要的存储是用户动态信息文档、留言信息文档、图片信息文档,检索维护是通过以上这些文档信息通过关键词进行搜索。
系统的0层数据流图如下图所示。
图3-6系统数据流图(0层)
一层数据流程图是对零层数据流程图的细化,将登录与注册细分为填制登录注册信息和完善信息,用户功能管理细分为用户基本功能管理和用户特色功能管理。
系统的1层数据流图如下图所示。
图3-7系统数据流图(1层)
二层数据流程是对一层数据流层图中填写登录注册信息、用户基本功能和用户特色功能的细化。即:填写登录注册信息细化为填制信息、后台审核,用户基本功能细化为公告浏览、会议信息、会议记录、记录信息等操作,用户特色功能细化为会议信息记录操作。
系统的2层数据流图如下图所示。
图3-8系统数据流图(2层)
第四章 系统设计
4.1 系统架构设计
本基于Web的会议记录与分享系统的架构设计主要分为可以3层,主要有Web层,业务层,Model层。其中web层还包括View层和Controller层,Model层包括元数据扩展层和数据访问层。
系统架构如下图所示。
图4-1 系统架构
4.2 系统总体设计
基于Web的会议记录与分享系统总体分为用户模块和管理员模块。
两个模块表现上是分别独立存在,但是访问的数据库是一样的。每一个模块的功能都是根据先前完成的需求分析,并查阅相关资料后整理制作的。
综上所述,系统功能结构图如下图所示。
图4-2 系统功能结构图
4.3 系统功能设计
登录模块:登录模块是进入系统的入口,所有用户必须登录后才能访问系统。登录需要输入用户名和密码,如果多次尝试登录需要输入验证码。登录成功后,会通过数据库获取用户的权限,并跳转至用户的主页面。
管理员系统用户管理模块:该模块包括普通用户管理和管理员,系统用户主要是注册用户,对用户信息进行管理,只有管理员才可在该系统上进行相应的操作。用户对个人信息可进行修改;管理员可对自己的个人信息进行维护,同时可对用户的密码信息进行修改,也可删除系统中的用户
会议记录管理:管理员可以查看、编辑、删除会议记录,确保记录的准确性和完整性。同时,管理员可能还负责审核其他用户提交的会议记录。
系统公告模块:可分为系统公告浏览、系统公告检索、系统公告维护三个模块,管理员对系统公告有维护的权限,发布新的系统公告、更新已有的系统公告等。
会议信息管理:管理员可以创建、编辑、删除会议信息,包括会议的主题、时间、地点、参与人员等。
4.4数据库设计
4.4.1 数据需求分析
从前面可以分析到数据库中最重要的是会议信息,会议记录,公告信息。分析可以得到如下数据描述:
普通用户:用于记录用户的各种信息,包括用户名、密码、姓名、性别、地址、邮箱、联系方式等数据项。
管理员:记录管理员的登录信息。包括用户名,密码,权限等数据项。
会议信息:存储各种会议信息。包括会议类型、会议名称、会议地点、会议时间等数据项。
会议记录:可以创建、编辑和提交会议记录,确保会议内容的准确记录
公告信息:存储平台内的公告信息内容。包括标题,公告信息内容等数据项。
4.4.2 数据库概念设计
根据前面的数据流程图,结合系统的功能模块设计,设计出符合系统的各信息实体。
系统ER图如下图所示。
图4-3 系统ER图
4.4.3 数据库表设计
基于Web的会议记录与分享系统所拥有的数据表有以下:用户信息表、会议信息表,会议信息表等。由于数据表较多,只展示系统主要数据表,如下表所示。数据库表结构文档:
表access_token (登陆访问时长)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | download_information_id | int | 10 | 0 | N | Y | 下载信息ID | |
2 | meeting_number | varchar | 64 | 0 | Y | N | 会议编号 | |
3 | meeting_name | varchar | 64 | 0 | Y | N | 会议名称 | |
4 | meeting_type | varchar | 64 | 0 | Y | N | 会议类型 | |
5 | meeting_time | varchar | 64 | 0 | Y | N | 会议时间 | |
6 | meeting_venue | varchar | 64 | 0 | Y | N | 会议地点 | |
7 | download_personnel | int | 10 | 0 | Y | N | 0 | 下载人员 |
8 | attachment | varchar | 255 | 0 | Y | N | 附件 | |
9 | meeting_minutes | longtext | 2147483647 | 0 | Y | N | 会议纪要 | |
10 | number_of_downloads | varchar | 64 | 0 | N | N | 下载次数 | |
11 | registration_date | date | 10 | 0 | Y | N | 登记日期 | |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | meeting_information_id | int | 10 | 0 | N | Y | 会议信息ID | |
2 | meeting_number | varchar | 64 | 0 | Y | N | 会议编号 | |
3 | meeting_name | varchar | 64 | 0 | N | N | 会议名称 | |
4 | meeting_type | varchar | 64 | 0 | Y | N | 会议类型 | |
5 | meeting_time | varchar | 64 | 0 | Y | N | 会议时间 | |
6 | meeting_venue | varchar | 64 | 0 | Y | N | 会议地点 | |
7 | recorder | int | 10 | 0 | Y | N | 0 | 记录员 |
8 | meeting_arrangement | text | 65535 | 0 | Y | N | 会议安排 | |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | meeting_type_id | int | 10 | 0 | N | Y | 会议类型ID | |
2 | meeting_type | varchar | 64 | 0 | Y | N | 会议类型 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | meeting_utes_id | int | 10 | 0 | N | Y | 会议记录ID | |
2 | meeting_number | varchar | 64 | 0 | N | N | 会议编号 | |
3 | meeting_name | varchar | 64 | 0 | Y | N | 会议名称 | |
4 | meeting_type | varchar | 64 | 0 | Y | N | 会议类型 | |
5 | meeting_time | varchar | 64 | 0 | Y | N | 会议时间 | |
6 | meeting_venue | varchar | 64 | 0 | Y | N | 会议地点 | |
7 | recorder | int | 10 | 0 | Y | N | 0 | 记录员 |
8 | attachment | varchar | 255 | 0 | Y | N | 附件 | |
9 | meeting_minutes | longtext | 2147483647 | 0 | Y | N | 会议纪要 | |
10 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
11 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表notification_announcement (通知公告)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notification_announcement_id | int | 10 | 0 | N | Y | 通知公告ID | |
2 | announcement_title | varchar | 64 | 0 | Y | N | 公告标题 | |
3 | release_date | date | 10 | 0 | Y | N | 发布日期 | |
4 | announcement_content | longtext | 2147483647 | 0 | Y | N | 公告内容 | |
5 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | sharing_information_id | int | 10 | 0 | N | Y | 共享信息ID | |
2 | meeting_number | varchar | 64 | 0 | N | N | 会议编号 | |
3 | meeting_name | varchar | 64 | 0 | Y | N | 会议名称 | |
4 | meeting_type | varchar | 64 | 0 | Y | N | 会议类型 | |
5 | meeting_time | varchar | 64 | 0 | Y | N | 会议时间 | |
6 | meeting_venue | varchar | 64 | 0 | Y | N | 会议地点 | |
7 | attachment | varchar | 255 | 0 | Y | N | 附件 | |
8 | meeting_minutes | longtext | 2147483647 | 0 | Y | N | 会议纪要 | |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | teacher_users_id | int | 10 | 0 | N | Y | 教师用户ID | |
2 | teacher_id | varchar | 64 | 0 | N | N | 教师工号 | |
3 | teachers_name | varchar | 64 | 0 | Y | N | 教师姓名 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | open_id | varchar | 255 | 0 | Y | N | 针对获取用户信息字段 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
第五章 系统实现
5.1 登录模块的实现
主要由两部分组成,登录前的登录界面以及登录后的用户功能界面。登录界面,要求用户输入用户名和密码,当用户名和密码其中一个输入为空时,给出提示“用户名,密码不能为空”。获取用户名和密码后到数据库中查找,如果用户名存在,以及对应的密码正确,则登录成功,否则登录失败。登录失败后给出提示,并把焦点停在文本框中。登录成功后将该次会话的全局变量username设置为用户名。登录成功后进入会员的功能模块,主要有会员基本信息修改,已经发布商品信息管理,发布信息,和退出功能。退出功能是清除全局变量username的值,并跳回到首页。
登录流程图如下图所示。
图5-1登录流程图
用户登录界面如下图所示。
图5-2用户登录界面
登录代码如下:
package com.project.demo.interceptor;
@Slf4j
public class LoginInterceptor implements HandlerInterceptor {
private String tokenName = "x-auth-token";
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String token = request.getHeader(this.tokenName);
setHeader(request, response);
log.info("[请求接口] - {} , [请求类型] - {}",request.getRequestURL().toString(),request.getMethod());
if (request.getRequestURL().toString().contains("/api/user/login")){
return true;
}
else if (request.getRequestURL().toString().contains("/api/user/state")){
return true;
}
else if (request.getRequestURL().toString().contains("/api/user/register")){
return true;
}
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
//更新token
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
private void failure(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setHeader("Content-type", "application/json;charset=UTF-8");
response.setStatus(401);
response.sendRedirect("https://www.baidu.com");
}
private void setHeader(HttpServletRequest request, HttpServletResponse response) {
//跨域的header设置
response.setHeader("Access-control-Allow-Origin", request.getHeader("Origin"));
response.setHeader("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Headers", request.getHeader("Access-Control-Request-Headers"));
response.setHeader("Access-Control-Max-Age", "1800");
//防止乱码,适用于传输JSON数据
response.setHeader("Content-Type", "application/json;charset=UTF-8");
response.setStatus(HttpStatus.OK.value());
}
}
5.2 会议信息模块:
用户浏览会议信息时,同时会显示会议信息的状态,系统会在其显示详细信息的页面时便会判断会议信息的状态,若会议信息为可审核,则会显示审核的链接按钮。在用户点击审核按钮时,会先通过拦截器判断用户是否登录,若未登录,会跳转至登录页面,提示用户先登录,若为登录用户就会跳转至填写审核信息的页面,填写好审核信息之后,点击提交按钮,审核成功之后返回提示信息,告知用户审核成功。
会议信息流程图如下图所示。
图5-3会议信息流程图
当用户点击基于Web的会议记录与分享系统中的“会议信息”后将会进入到该“会议信息”列表的界面,然后选择想要看的会议信息,点击进入到会议信息详情界面,同时可以进行审核操作,
会议信息详情界面如下图所示。
图5-4会议信息详情界面
会议信息代码如下:
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
会议记录详情界面如下图所示。
图5-5会议记录详情界面
通知公告:用户可以查看系统发布的网站公告,包括关于我们、联系方式、网站介绍等信息。
通知公告详情界面如下图所示。
图5-6通知公告界面
我的:用户可以查看和编辑自己的个人信息,如姓名、联系方式等。为了保障账户安全,用户可以定期修改自己的登录密码。
个人信息详情界面如下图所示:
图5-7个人信息界面
5.3 管理员功能模块的实现
会议信息管理,根据需求需要对会议信息列表和会议信息添加、删除或修改详情信息。删除或修改会议信息时,系统根据会议信息的状态判定为可删除状态下,才会给出删除和修改链接,点击删除链接按钮时,请求到达后台,还会先查询会议信息状态再次做出判定能否删除。点击修改链接按钮时,会跳转到修改信息的页面,重新填写好数据后,数据提交到后台会对数据库中相应的记录做出修改。
添加会议信息时,会给出数据填写的页面,该页面根据填写好的会议编号同样会事先发送Ajax请求查询编号是否已存在,数据填写好之后提交到后台,会调用相关服务在数据库中插入记录。
会议信息管理流程图如下图所示。
图5-8会议信息管理流程图
会议信息管理界面如下图所示。
图5-9会议信息管理界面
系统用户,在此页面可以查看用户信息,还可在该页面对用户进行重置、添加和删除等操作。如下图所示。
图5-10系统用户管理页面
当管理员点击导航栏上的“会议记录管理”后会显示出会议记录列表,并对其进行查询、删除、发送通知等操作
图5-11会议记录管理界面
当管理员点击导航栏上的“会议类型管理”后会显示出会议类型列表,并对其进行查询、删除、发送通知的操作
图5-12会议类型管理页面
第六章 系统测试
6.1 测试目的
对任何系统而言,测试都是必不可少的环节,测试可以发现系统存在的很多问题,所有的软件上线之前,都应该进行充足的测试之后才能保证上线后不会Bug频发,或者是功能不满足需求等问题的发生。下面分别从单元测试,功能测试和用例测试来对系统进行测试以保证系统的稳定性和可靠性。
6.2 功能测试
下表是会议室管理功能的测试用例,检测了会议室信息管理中对会议室信息的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。
前置条件;用户登录系统。
表6-1 会议信息管理的测试用例
功能描述 | 用于会议信息管理 | |
测试目的 | 检测会议信息管理时的各种操作的运行情况 | |
测试数据以及操作 | 预期结果 | 实际结果 |
点击添加会议信息,必填项合法输入,点击保存 | 提示添加成功 | 与预期结果一致 |
点击添加会议信息,必填项输入不合法,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击修改会议信息,必填项修改为空,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击修改会议信息,必填项输入不合法,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击删除会议信息,选择会议信息删除 | 提示删除成功 | 与预期结果一致 |
点击搜索会议信息,输入存在的会议信息 | 查找出会议信息 | 与预期结果一致 |
点击搜索会议信息,输入不存在的会议信息 | 不显示会议信息 | 与预期结果一致 |
下表是会议记录管理功能的测试用例,检测了会议记录管理中记录单的操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。
前置条件;用户登录系统。
表6-2 会议记录管理的测试用例
功能描述 | 用于会议记录管理 | |
测试目的 | 检测会议记录管理时各种操作的情况 | |
测试数据以及操作 | 预期结果 | 实际结果 |
未选择会议名称,点击提交 | 提示请选择会议名称 | 与预期结果一致 |
未输入地点,点击提交 | 提示请输入地点 | 与预期结果一致 |
未输入时间,点击提交 | 提示请输入时间 | 与预期结果一致 |
6.3 性能测试
使用阿里云PTS(Performance Testing Service)性能测试服务对线上系统进行压力测试。线上服务器环境为:1核心CPU,1G内存,1Mbps公网带宽,Centos7.0操作系统。
压测过程中使用了2台并发机器,每台机器20个用户并发,对系统主页,登录,数据查询和数据维护等模块进行并发访问,测试结果是有40个用户并发时,数据管理相关页面的响应时间甚至达到了7s,通过查看服务器出网流量发现已经达到1381kb/s,可以看出服务器的带宽已经达到峰值,如果系统使用5Mbps的带宽,系统的响应时间和TPS将会大大增加。在整个测试的过程中,CPU的使用率占用仅8%,也提现出带宽瓶颈对系统的影响非常严重。
第七章 总结与展望
随着计算机与互联网技术的飞速进步,各行业已普遍采用计算机技术对日益增长的数据进行有效管理。本课题以基于Web的会议记录与分享系统为核心,旨在实现会议信息的高效管理和用户的在线记录需求。
在设计过程中,我通过持续的学习与实践,掌握了Java技术,并成功开发了一个基于Web的会议记录与分享系统。这不仅增强了我对编程必要性和运行环境的理解,还让我积累了丰富的实践经验。为了完善此项目,我投入了大量时间,不仅扩充了知识储备,还学习了服务器环境配置与数据库连接等关键技术。
在设计基于Web的会议记录与分享系统的过程中,我深入探讨了其运行原理,提高了实际操作能力,并对该领域产生了浓厚兴趣。此外,这次经历还提升了我的编程技能,使我在代码错误识别与修正方面取得了显著进步。同时,在撰写论文过程中,我广泛查阅了相关文献资料,对论文结构和内容进行了严谨的分析和总结。
尽管在系统设计过程中可能存在一些不完美之处,但我将继续努力学习,从软件开发和编码中汲取教训,总结不足,以期在软件开发领域取得更好的成绩。总体而言,这次设计经历对我的能力提升和未来发展具有重要意义。
参考文献
[1] 曹阳. 对智能建筑会议系统建设招投标工作的思考 [J]. 中国招标, 2024, (03): 91-93.
[2] 宋学征. 高清视频会议系统技术及组网运用 [J]. 卫星电视与宽带多媒体, 2024, 21 (04): 44-46.
[3] 蒋九云,许占民. 基于用户体验的在线会议系统优化设计 [J]. 工业设计, 2024, (02): 98-103.
[4] 凌越,唐继冬. 一种分布式会议管理系统的设计与实现 [J]. 计算机应用与软件, 2024, 41 (01): 7-11+25.
[5] 第20届中国智能系统会议 [J]. 智能系统学报, 2024, 19 (01): 164.
[6] 张宇辰,刘昌利,郑庆竹,等. 大型国有企业云视频会议系统的应用与实践 [J]. 电力信息与通信技术, 2023, 21 (12): 88-94. DOI:10.16543/j.2095-641x.electric.power.ict.2023.12.12.
[7] 晁玉元,董江帆,牛瑛霞,等. 基于元宇宙在线会议系统思路探讨 [J]. 通信与信息技术, 2023, (S2): 12-15.
[8] 杨杰,黄家清,李亭希,等. 全流程智能会议软件系统设计与应用 [J]. 软件, 2023, 44 (11): 147-150.
[9] Julia S ,Ivo B ,Armin H , et al. The Impact of Video Meeting Systems on Psychological User States: a State-of-the-Art Review [J]. International Journal of Human - Computer Studies, 2024, 182
[10] 赖文亮,黄旭俊,唐年华,等. 视频会议系统的设计与应用 [J]. 集成电路应用, 2023, 40 (11): 368-369. DOI:10.19339/j.issn.1674-2583.2023.11.168.
[11] 罗霖,姜媛姣,张悦. 面向高校的智能会议系统设计与应用 [J]. 科技创新与应用, 2023, 13 (28): 133-136. DOI:10.19981/j.CN23-1581/G3.2023.28.033.
[12] 沈慧. 智能视频会议系统的设计与实现 [J]. 集成电路应用, 2023, 40 (09): 256-257. DOI:10.19339/j.issn.1674-2583.2023.09.117.
[13] 江波. 会议系统的融合媒体设计 [J]. 现代电视技术, 2023, (07): 98-101.
[14] Faisal M ,Hamed M ,Yuichiro Y , et al. Avatars-mediated video conference system for mediating the stress and anxiety of response time of a person with communication difficulties [J]. Advanced Robotics, 2023, 37 (12): 751-765.
[15] 黄震. 面向会议场景的自动化摘要生成系统的研究与实现[D]. 北京邮电大学, 2023. DOI:10.26969/d.cnki.gbydu.2023.000606.
[16] 谢润荣. 会议系统关于分体式架构与一体化架构的探析 [J]. 智能建筑电气技术, 2023, 17 (02): 97-99. DOI:10.13857/j.cnki.cn11-5589/tu.2023.02.005.
[17] 冯世诚,李彬,林文彬. 无纸化会议系统的实践与思考 [J]. 铁道运营技术, 2023, 29 (01): 48-50. DOI:10.13572/j.cnki.tdyy.2023.01.014.
[18] Cheung T C J ,Kwan C Y K ,Ng H W , et al. Blended peer-assisted learning using a video conference system for anatomy education: student learners' and student facilitators' perspectives [J]. International Journal of Mobile Learning and Organisation, 2023, 17 (1-2): 180-197.
[19] Sophie V ,G M S ,Raute S , et al. The 10th Santorini conference: Systems medicine, personalised health and therapy. "The odyssey from hope to practice: Patient first. Keep Ithaca always in your mind", Santorini, Greece, 23-26 May 2022. [J]. Frontiers in genetics, 2023, 14 1171131-1171131.
[20] Sun B ,Gao X ,Chen W , et al. Video Conference System in Mixed Reality Using a Hololens [J]. Computer Modeling in Engineering & Sciences, 2022, 134 (1): 383-403. Manageable Resources In Stateless Web Server Architecture Using springboot Filters" Published Online (USPTO 20190297070) [J]. Internet Business Newsweekly, 2021,
致谢
大学四年就这么一晃眼过去了!在文章的结尾,我真的得好好谢谢我的导师和同学们。你们给的帮助和鼓励,让我找不到更好的词来形容我的感激。首先,我得向我的导师池成英教授说声谢谢。虽然实习和写论文让我忙到飞起,但导师始终不离不弃,总是关心我的毕业设计进展,还帮我催论文进度。老师那严谨的教学态度、课堂上的幽默风趣,还有对我论文的细心修改,都深深地印在我脑海里。从导师身上,我学到了好多知识和经验,真是受益匪浅。同时,我也看到了自己的不足,不管是在基础层面还是工作态度上,导师就像一面镜子,照出了我的缺点和不足。
然后,我得感谢我的父母。谢谢你们这么多年的默默支持,还有对我的理解、信任和期待。这些都是我前进的动力啊!最后,还得谢谢那些忙里偷闲来评审我论文和答辩的专家评委们。希望我的论文能给你们带来点启发,也欢迎大家多提宝贵建议。
祝老师们身体健康,一切顺利!
话说回来,本科论文的结束只是人生的一个小转折,大学毕业也是。我知道自己在理论和写作上还有不足,但我会继续努力,在未来的学习和工作中不断进步。