版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
[6]。非功能性需求分析当然除了功能性需求之外,我们还需要对非功能性需求进行全面地考虑,本次课题会议室管理系统所需要满足的非功能性需求有以下几点:稳定性需求,由于学校师生对于会议室的使用需求量非常大且频率非常高,所以整个系统的需要能够保证时刻可用,且不允许出现故障,否则容易出现会议室使用秩序混乱的情况,如果影响到大型重要会议则后果不堪设想。易用性需求,整个系统中不存在管理员角色,所有内容都是用户自主来完成,所以对应用的上手即可使用的要求非常高,整体的界面需要十分简洁,使用流程需要清晰易懂。可维护性需求,任何一个系统都会有很强的可维护性需求,所以编码方面需要注意未来可能需要维护的地方,做到代码尽量简洁,多写注释;除了编码以外还需要有完整的系统设计文档以及相应的交接文档,方便后续的开发者进行维护。扩展性需求,目前校内的会议室管理系统很多都和刷卡机有极度紧密的联系,偶合在了一起,会导致如果需要扩展新的会议室,比如将一个小教室改为会议,则需要安装刷卡机并和整个系统连接起来,整个流程所耗费的扩展成本是比较高的,所以需要在满足扩展性需求的同时,将扩展成本尽量降低。以上是一些主要的非功能性需求,在整个编码过程中,也会尽量保证在满足以上主要需求的同时能够满足其他的非功能性需求,尽量保证本系统能够较为完善。可行性分析本节主要对于整个系统的实现进行可行性分析,分别从经济和技术两个方面入手,尽量以最为简洁的语言描述出来。经济可行性分析开发系统成本上,整个会议室管理系统摘除了传统的刷卡打卡机制,整体扩展成本降到了最低。开发人员成本上,本次的开发从前端到后端到数据库等工作,均由我一人完成,故没有其他交流成本,代码版本控制等等。后续的管理上,最简化整个会议室管理系统的操作,完善所有报错逻辑,去掉了传统的管理员管理,由此后续投入使用之后的整个管理成本也会降至最低,最多由开发者做答疑,并定时检查报错日志即可。用户使用上,由于我们整体采用了B/S的架构,故用户无需下载app,只需要有浏览器即可,且所有的操作包括打卡都是可以直接线上进行的,大大降低了用户的使用成本,提高用户流量。所以总的来说,整个应用在经济方面的可行性是非常高的。技术可行性分析在计算机科学与技术迅速发展的今天,很多技术都经历了更新换代,应用的开发也不像以前那样只是简单的页面和数据交互的,出现了很多新的技术架构,开源社区也出现了很多技术沉淀供我们选择,谨慎选择技术架构能够帮助我们紧跟时代潮流,向国内外各大互联网公司看齐。本次会议室管理系统所采用的技术,从整体架构、前后端技术到数据库技术,都遵循着稳定性第一、创新性第二的原则,其成熟性和先进性都是能够经得起业界各个需求场景的考验,同时也非常适合我们本次的需求。整个技术架构中的每个细节都选择了在业界使用非常多的技术,保持稳定的同时也能够学习新技术的思想,亦能够为未来进入公司做好铺垫。本章小结本章主要描述了整个会议室管理系统的需求分析和可行性分析,对于这两个方面进行了比较细节的整理和分析,整体进行分析之后,整个应用的开发内容更加明确了,也为后续的系统设计和实现打好了基础。系统概要设计本章主要介绍会议室管理系统的整体设计,包括整体流程、数据结构以及功能架构三个方面,好的设计可以为开发工作做好铺垫,使后续的开发能够事半功倍。总体流程设计本节将描述整个应用的使用流程设计,会将用户行为的每个细节都体现出来。为了能够更加直观清晰地表现出每一个用户的操作流程,我将使用流程图来描述不同的操作流程。图4-1会议室管理系统流程图通过图4-1可知,当用户作为会议室组织者时,可以通过注册或者登录进入到系统,系统默认展示所有的会议室,可以自行选择需要的会议室,进入会议室详情页,根据页面展示的预览信息选择需要预定的时间,进入到会议室预定界面,填写与会人员信息,并点击确认即可成功预定会议室。当然也可以进入个人会议列表去查看自己的会议信息。当用户作为会议参与者时,同样是通过注册或者登录进入系统后,可以进入个人会议列表查看自己即将参与的所有会议,当然也可以查看会议邀请邮件,点击进入系统之后,选择接受会议或者拒绝会议。数据结构设计数据库表的设计是整个会议室管理系统最重要的部分,也是整个项目的基础,根据上面的需求,整个数据库表的设计过程我经历了无数次的推翻重建,最后得出的表一共有五张,分别是用户表、会议室表、会议预定记录表、会议与会人员表、打卡表。图4-2会议室管理系统E-R图由图4-2可知五张数据表之间的关系,用户表和会议室表互相独立,每次的预定都会在会议室预定表中增加一个预定记录,后续如果对其进行取消等都是重新操作这个记录。预定会议室时可以添加与会人员,预定成功后,则会将与会人员相关数据加到与会人员表中。与会人员对于会议邀请无论是同意还是拒绝都会操作与会人员表,到达预定时间后,会议组织者则需要进行打卡,打卡的信息会在打卡记录表中做记录。根据上面的E-R图,会议室管理系统的数据库逻辑结构设计如下:Users(用户ID,密码,姓名,性别,邮箱,用户类别,身份证号)ConferenceRooms(会议室ID,会议室名称,可容纳人数,是否有投影仪,是否支持远程)ConferenceRoomsReserveLogs(预定记录ID,开始时间,结束时间,会议室ID,预定状态)Conferees(与会人员记录ID,会议预定记录ID,用户ID,与会状态)PunchingCardLogs(打卡记录ID,会议预定记录ID,打卡时间)根据上面的E-R图和数据库逻辑结构的设计,对于数据库的物理结构设计如下:表4-2-1Users表FieldTypeNullKeyDefaultCommentIdUsernamePasswordEmailGenderIdcarduserTypeintvarchar(50)varchar(50)varchar(50)varchar(5)varchar(50)varchar(50)NONONONONONONOPRI自动递增NULLNULLNULLNULLNULLNULL可选项为Student、teacher表4-2-2ConferenceRooms表FieldTypeNullKeyDefaultCommentIdintNOPRI自动递增houseNumbervarchar(50)NONULL会议室名称containNumhasProjectorsupportRemoteinit(11)int(11)int(11)NONONONULL000为有,1为无表4-2-3ConferenceRoomsReserveLogs表FieldTypeNullKeyDefaultCommentIdstartTimeendTimeuserIdconfeRoomIdstatusintdatetimedatetimeintintint(11)NONONONONONOPRI自动递增NULLNULLNULLNULLNULL用户ID会议室ID0为已预定,1为已取消,2为已打卡表4-2-4Conferees表FieldTypeNullKeyDefaultCommentIdintNOPRI自动递增reserveLogIdintNONULL会议预定记录IDUseridStatusinitint(11)NONONULL0用户ID0为未反馈,1为同意,2为不同意表4-2-5PunchingCardLogs表FieldTypeNullKeyDefaultCommentIdreserveLogIdintintNONOPRI自动递增NULL会议预定记录ID功能架构设计通过将会议室管理系统做整体分析,我整理出了系统所需要的功能,其主要功能分为:用户管理、会议预定、与会人员交互、个人会议列表,会议室列表等模块。具体的功能架构如图4-3所示:图4-3会议室管理系统功能架构图上图展示了会议室管理系统的五个功能模块,这些模块相互之间相辅相成,最终构成了我们的整个会议室管理系统。在用户管理模块中,主要包括了用户登录和注册,摒弃了以前的cookiesession鉴权模式,采用JWT鉴权。在会议室预定模块,包括了预定会议室、取消会议室、抢占会议室、通知与会人员以及会议室打卡等功能,这里面的整体交互逻辑要稍微复杂一些,对于预定记录的状态转换、通知与会人员等功能的交互都需要深入思考。与会人员操作的部分,主要是对于发来的会议邀请进行接受或者拒绝。同时用户还可以查看自己未来一段时间的会议列表,其中包括自己组织的会议、已接受的会议以及未处理的会议邀请。会议室列表部分,用户可以直接查看所有的会议室,也可以进行关键字检索,查找自己需要的会议室。本章小结本章主要描述了总体流程设计、数据结构设计和功能架构设计这三部分的内容,首先通过使用流程图将整体的流程设计以最简洁的方式描述出来,再利用E-R图将整个数据库的结构理顺理清晰,搭建出可用的数据库物理结构。最后再利用会议室管理系统的功能架构图将整个系统的功能分为五大部分,并对每个部分进行细化,最终整个系统的概要设计就形成了。经过系统设计之后,整体思路会更加清晰,为开发赋能。系统实现开发环境本文中实现的会议室管理系统前端采用JavaScript作为开发语言,后端采用Nodejs作为开发语言,数据库采用MySQL5.7。整个开发过程以VScode作为开发工具,Navicat作为数据库图形化管理工具。其中VScode是一个非常轻量的文本编辑器,好好利用它可以大大提高我们的开发效率。它的使用特点是:编辑器+插件,它拥有雄厚的插件资源,多个插件一起使用就能有意想不到的奇特效果。本次开发过程中所采用的VScode插件有:HTMLSnippets(拥有HTML5代码片段的提示)、HTMLCSSSupport(CSS的智能提示)、PathIntellisense(各种文件路径补全)、ESlint(代码格式检查,这是最为常用的插件,在团队开发中可以统一代码风格)、AtuoRenameTag(HTML会有开闭两个标签,使用这个插件,改动开标签,闭标签也会自动修改)。总的来说,本次开发环境的整个搭建过程还是比较繁琐的,特别是VScode整个环境的搭建,对比WebStorm这种开箱即用的IDE,需要耗费更多的时间和精力,但是最终依旧选择VScode的原因是它的轻量和灵活性,使用VScode我不需要因为不同的项目要去下载不同的IDE,只需要根据项目的类型不同,配置不同的插件套餐即可。系统功能实现用户管理模块用户管理模块主要包括用户注册、用户登录、退出登录、修改密码等,是整个应用的基础。由于登录注册功能是后续所有用户鉴权的基础,所以在实现本模块功能之前,我需要去调研过目前比较通用的用户鉴权方式,调研结果发现业界的用户鉴权主要有两种模式:Cookie-Session模式和JWT模式REF_Ref40882032\r\h[8]。Cookie-Session模式的工作流程是:用户在前端输入用户名和密码,点击登录发送请求给服务器。服务器收到请求后验证用户名和密码的正确性,如果验证通过则会创建一个会话也就是常说的session,同时生成这个session的sessionID返回给前端。前端收到返回数据后,将返回的sessionID存储在cookie中,后续的所有请求只需要把cookie带上,服务端检查是否有sessionID所带的session即可,检查通过则用户鉴权成功。如果用户退出登录,服务端和客户端的会话(session)都会被销毁。由此可以看出它的弊端非常多,首先是服务端需要保存用户信息,当用户数增多,服务器压力也会不断增大。其次是现在服务端为了做负载均衡会使用多个服务器,需要定时通信来保证用户信息在每个服务端一致。最后就是退出登录时前端和服务端都需要处理其中的逻辑。而JWT鉴权的工作模式和思想完全不同:用户输入用户名和密码,点击登录,发送请求给服务端。服务端收到请求后,验证用户名和密码,验证通过则计算出一个token(token在上文中JWT鉴权部分有介绍过),返回给前端。前端将token存储在localstorage里面,后续的请求只需要将在httpheader中带上token发送给服务器,服务器通过重新计算一遍token来验证其正确性,如果对比签名相同则鉴权成功。退出登录只需要将前端localstorage里面存储的token删除掉即可,后端无需做其他操作。JWT鉴权可以解决上述Cookie-Session模式存在的问题,但是由于JWT是无状态的,所以无法暂存用户的一些状态,不过对于我们的系统来说,没有很多需要存储用户状态的地方,所以本次会议室管理系统鉴权最终还是决定采用JWT鉴权模式。下面将正式开始介绍用户管理模块的实现:首先是登录功能:图5-1会议室管理系统登录界面进入登陆页面有两种情况,一种是用户进入直接进入login页面进行登录,另一种就是在没有登录的情况下进入到了其他页面,则会自动跳转到登陆页面。前端使用antdesign的Form表单组件搭建登陆页面,用户输入用户名密码后,点击登录发送请求给后端,后端使用express框架来处理请求,并利用npm包jwt-simple来生成JWT,返回token值,前端将token值存入localstorage中,为后面页面的权限处理打好基础。其次是注册功能:注册功能和登录功能的JWT处理逻辑是一样的,注册功能主要包括创建用户和生成JWT自动登录,前端页面同样使用AntDesign的Form组件,用户填写的注册信息并点击注册,后端进行用户创建,将用户信息存入用户表,同时为用户生成token,返回给前端存储,注册完成。然后是退出登录功能:图5-2退出登录按钮前端页面采用了AntDesign的Menu下拉菜单组件,退出登录按钮作为下拉菜单的一部分,由于采用了JWT鉴权模式,所以退出登录功能的实现会更加简单,只需要在用户点击退出登录时,将localstorage里面的token清理掉就行,这样再次进入这个页面就会因为没有登录态而强制跳转到登陆页面。最后还提供了一个修改密码的功能,在做这个功能之前我有调研很多系统,有的可以直接修改所有的用户信息,有的只能修改部分信息,考虑到本系统中的数据结构很多内容比如姓名,身份证号等等都是固定不变的,提供修改所有用户信息其实是没有必要的,于是选择了一个折中的方案,只提供修改密码功能。图5-3修改密码功能示意整个使用流程如图5-2和图5-3所示,点击图5-2中的个人详情按钮,跳转到个人信息页面,页面会展示用户的相关信息,同时提供修改密码的功能,用户可以点击修改密码按钮,则右边会划出修改密码的表单,表单中做了一些校验处理,比如新密码和确认密码是否相同等等,点击确认修改则会自动关闭表单,并弹出修改成功的提示,整个实现过程前端主要采用AntDesign的Description和Form组件实现整个交互,后端主要是密码的检查以及密码的更新等逻辑处理。这样整个用户模块就实现完成了,用户模块将会在应用的整个生命周期中起作用,主要是存储在localStorage里面的token和userId起作用,token主要是负责登录态管理,后端的请求中除了登录和注册功能,其他的请求都需要登录态,所以每次请求都需要将token作为http头部自定义字段Authorization传递给后端,后端采用检测是否有登录态的中间件来判断,如果有Authorization头部并且经计算JWT合法,则可以进行后续操作,如果非合法则返回401,并提示重新登录;userId则主要是为了方便在其他页面查询用户信息。会议室列表查询用户完成登录之后,会直接跳转到会议室列表页,用户可以直接在此页面选择需要的会议室。整个会议室列表页分为两大功能,一个是搜索会议室的功能,另一个是会议室分页列表展示的功能。搜索功能的前端样式主要如下图所示,可以输入关键字进行模糊搜索相应的会议室,点击搜索后,搜索结果会显示到列表展示部分。图5-4搜索框示意图搜索功能的实现方式:前端采用AntDesign的Input组件,配置出搜索样式,用户输入关键字并点击搜索后,发送搜索请求给后端,后端根据获取到的关键字在数据库进行模糊查询,查询结果返回给前端,前端页面重新渲染展示出来。其中由于本次会议室管理系统的后端DAO层采用了Sequelize这个ORM框架,所以可以直接利用它提供的操作符来进行操作,会使操作更加整洁,整个代码如下图所示:图5-5Sequeliz模糊查询代码图会议室列表展示模块,由于传统方式直接展示一个表格会使得整个界面有一些单调,用户体验感不太好,于是决定重新设计一下会议室列表的界面,列表中的每个内容都采用卡片的形式展示,使得整体看起来更加清晰,如下图所示,一行展示4组数据,在列表页能够很直观地预览会议室的信息,比如容纳人数、是否有投影仪,是否由电话支持远程连线等。根据这些信息用户可以初步筛选所需要的会议室。图5-6会议室列表示意图如果全量一次性拉出所有的会议室数据展示在页面上,在数据量较少的情况下是可以的,但是一旦数据量增多,可能会导致整个页面的交互变卡顿,因为一次性拉取和渲染的数据太多了,数据查询、数据传输、数据渲染需要耗费的时间都大大增加,整体的等待时间可能会延长至之前的两倍甚至三倍,用户体验感会大大降低,会使得系统损失很多用户。此时分页功能就十分重要了,设置默认页面大小为12,默认页码为0,每次拉取12份数据,并返回总页数,这样需要查看更多数据的时候就可以直接采用翻页拉去新数据进行实现。分页组件的样式如下图所示:图5-7分页功能示意图分页列表功能的实现方式:列表利用AntDesign的Card组件进行数据渲染,分页功能前端采用AntDesign的Pagination分页组件,定义好pageSize(页面大小)和current(当前页数),首先进行默认查询,发送请求给后端,后端查询第一页的数据,以及数据总量,返回给前端,前端接收到数据后设置好Pagination的参数,分页组件就设置完成了,将每次返回的数据,在会议室列表中渲染出来,且在切换页码时,要重新请求数据源,并重新渲染列表。这样整个分页列表的功能就实现了。总的来说,会议室列表页是整个会议室管理系统登录后进入到的第一个页面,页是给用户一个预览所有会议室的地方,所以需要有较好的视觉和流畅的体验才能留住用户。会议室预订模块会议室预定模块是整个会议室管理系统的核心模块,所有的其他模块都是在为它打基础以及进行扩展。整个会议室预订模块的使用流程如下:用户进入系统后点击了某一个会议室,则会进入到会议室详情页,会议室详情页为一个全屏的日历页,如图5-8所示。图5-8会议室详情页预定信息示意图 整个日历中会粗略展示每天的会议安排,如果需要了解详情可以点击进入到预定页,会有一个完整的时间线,清晰地可以看到会议室在哪些时间是空闲的,如图5-9所示。图5-9会议室预定界面时间线示意图当用户选定了某个时间段,且该会议室在该时间段刚好是空闲的,则可以点击可预订按钮,弹出如图5-10所示的会议室预定表单,可以在里面填入一些会议描述以及添加与会人员,点击提交且预定成功后,系统会自动为所有与会人员发送会议邀请邮件。图5-10会议室预定表单到达时间之后,进入系统会提示会议已经开始,需要进行打卡,若会议开始15分钟后还未打卡,系统会将本会议室资源重新开放,这时其他同学便可以抢占这个时间段的会议室。以上便是用户的正常使用流程,当然还会有很多其他的使用流程分支,比如临时取消会议室、抢占会议室等等。整个模块功能的实现方式:前端采用了AntDesign的Calendar、Timeline、Form等组件,后端使用了moment、Sequelize、Nodemailer等等NPM包,出于学校安全管理以及学生人身安全的考虑,会议室管理系统的可预定时间为早上八点到晚上六点,所有会议室最多只能提前一个星期预定,最小预定时间粒度为一小时,会议室预定模块被拆分为预定会议室、取消会议室、抢占会议室、通知与会人员等功能。其实在这个模块的实现过程中我遇到过很多的问题,比如数据库默认采用UTC时区和Nodejs默认采用本地时区造成了冲突、时间段之间的复杂逻辑处理、用户状态和会议室预订状态的复杂转换逻辑等,经过了我一次次地修改和重新设计,最终确定了以上的操作流程作为折中的方案。与会人员交互模块前文有讲到当会议组织者预定会议后,会给所有与会人员发送邮件,与会人员收到邮件后,需要对与本次会议邀请做出反馈,可以点击邮件中的立即处理按钮,则会跳转到系统中的个人会议列表页,与会人员在系统内点击是否同意接受本次会议邀请即可完成整个交互,本次会议也会添加到个人会议列表中的已接受会议列表中。整个交互通过邮件发送和跳转页面来完成,那么邮件的发送和格式就需要自行定制,符合整个会议室管理系统的整体风格,整个定制内容需要注意两大点,首先是用户信息,由于需要给所有与会人员批量发送邮件,则需要查询所有与会用户的邮件信息,再将所有与会人员的邮件信息整合在邮件接收者列表中。其次是邮件格式,因为用户需要在邮件中进行交互操作,所以普通的文本邮件是肯定达不到交互要求的,此时则需要发送HTML格式的邮件,需要定制对应的HTML,并嵌入到邮件中。图5-11邮件HTML最终效果整个邮件的交互功能主要利用NPM包NodeMailer来进行实现。据调研NodeMailer是专门为Nodejs项目打造的,使邮件发送更加简单方便的开源库,这个项目从2010年就开始研发了,目前已经是很多Nodejs开发者默认使用的邮件功能库。所以它是集创新性和稳定性为一体的,既能体验到较新的技术氛围,同时也有强大的团队为我们维护其稳定性和正确性,非常适合我们的个人项目以及企业项目进行开发。添加与会人员交互模块之后,会议组织者就不再需要逐个给与会人员发送会议邀请,并且手动收集与会人员的会议邀请反馈信息了;与会人员也不需要在不同的渠道分散地进行会议邀请反馈了,有统一的地方可以统一处理这些请求。大大节约了人力成本,用户体验呈直线上升。个人会议列表查询用户除了可以进行以上的预定会议室和接受会议等交互之外,还可以在个人会议列表里面查看与自己相关的未来一周内的会议信息,这里面所有的列表查询也和上文中的会议室列表一样做了分页处理,但是由于二者的展示方式不同,所以分页的实现也有所不同。整个个人会议列表的内容主要包括三个部分:自己组织的会议、已接受会议邀请的会议、未处理会议邀请的会议,前端页面通过AntDesign中的Tabs组件将这些内容进行了分隔,点击Tab按钮即可在三部分内容之间随意切换,如下图所示。图5-12个人会议列表Tab分隔示意图每个模块之间的展示内容不相同,可进行的操作也不一样:自己组织的会议列表会默认列出未来一周本人组织的所有会议,可以在这里进行查看详情、取消预定以及查看详情,点击数据项详情都可以进入到详情页查看里面的具体信息,包括会议室的具体信息、会议组织者、会议描述、所有的与会人员以及与会人员的会议邀请接受情况。已接受会议邀请的会议列表模块将会列出未来一周所有接受了会议邀请的会议列表,具体的交互行为仅有查看详情,在这个列表里面的会议都是自己手动接受会议邀请了的,必须按时参与,可以点击会议详情进入详情页,其主要内容和自己组织的会议详情相同。未处理会议邀请的会议列表模块会列出所有未处理的未来一周的会议邀请信息,前端主要表现为一个列表,可以点击任意数据项进入会议详情,会议详情页的内容主要包括会议室的具体信息、会议组织者、会议描述以及会议邀请的与会人员。在这个页面用户可以进行的主要交互操作为与会人员对于会议邀请的接受或者拒绝,用户进入本页面主要有两种途径,可以自行在系统中进入这个页面进行操作,也可以点击会议邀请邮件中的处理会议邀请跳转到这个页面。会议邀请的处理可以直接在列表外部进行操作,也可以在点击详情进入详情页,查看会议详细信息之后再进行操作。上述的所有列表页前端部分都是采用AntDesign的Table组件来进行开发,此组件是整个UI组件库里面非常强大的组件之一,它可以根据文档中的示例。自行配置表格的分页行为,避免了我们自行操作受控数据而导致的不可预知的漏洞,大大提升了开发效率。后端处理上则和上文会议室列表中的逻辑类似,在数据库层面进行分页查询,并注意区分会议状态即可。本章小结结合前面几章为应用开发做出的铺垫,本次的系统实现整个过程变得更加地顺利且有条理性。本章主要将整个会议室管理系统的实现过程描述出来,从开发环境,到用户操作流程,到实现方式,到细节代码都进行了详细的说明,经历了整个应用从无到有的过程,在此过程中对应用进行了不断的整理和优化,最终实现了一个质量较好的会议室管理系统。总结与展望本章主要对于本次课题会议室管理系统的设计与实现中所作的工作进行简要总结,并对本次工作中的创新点进行阐述,同时提出仍需进一步深入研究和改进的地方,最后对未来会议室管理行业的发展做出展望。本文总结本文针对传统会议室管理系统的一些弊端进行梳理,调研国内外相关产品的现状,整理出目前存在的一系列问题,并对这些问题提出解决方案,产生更符合我们需求场景的会议室管理系统设计,同时调研国内外基于B/S架构的系统技术,整理出了适合我们目前项目的全新的技术架构,对于整体需求和可行性进行分析,并从总体流程、数据结构、功能架构三个方面对系统进行设计,并根据以上的设计方案完成会议室管理系统的开发工作,最后对于整个工作过程进行总结和梳理。本文的主要工作本文主要研究会议室管理系统的设计与开发,进行的工作主要包括了以下几个方面:会议室管理系统的调研与研究:在研究最开始的时候调研了国内外的会议室管理系统产品,并对其进行对比研究,整理出目前校园级会议室管理系统的痛点,并提出相应的解决方案。技术架构的设计:调研目前国内外比较流行的技术体系,并结合本系统的需求,整理出最合适的技术架构。需求和可行性分析:综合考虑上文中的解决方案和技术架构,针对会议室管理系统进行功能性和非功能性的需求分析以及经济上和技术上的可行性分析。系统设计:进行系统的整体设计,包括流程设计、数据结构设计、功能设计,以及交互设计和视觉设计。由于以前没有过做交互和视觉的经验,所以本次的设计调研并参考了很多网站的优秀交互与视觉设计。系统实现:根据上述技术设计和功能设计,搭建开发环境,进行编码研发,实现系统功能,整体流程走通,测试完成。系统优化:将实现出来的会议室管理系统一遍遍运行,推敲可优化点并优化各处细节。本文的主要创新点在本次课题的开发过程中,我遇到了很多问题,也攻克了很多难点,整个系统主要有以下创新点:技术架构上采用了国内外非常新颖的技术架构,和很多大型互联网公司的技术体系保持一致,并跟据我们的场景进行架构优化。交互功能添加了和与会人员的交互,传统会议室管理系统只是操作会议室相关内容,本次课题研发的会议室管理系统除了预定会议室等功能之外,还添加了通知与会人员和与会人员选择是否接受会议邀请等功能,会议组织者不再需要在系统外的地方通知与会人员参与会议,极大地提升了用户体验。视觉设计上添加了日历和时间轴样式,用户能够更加直观地了解到各会议室的当前状态以及可预订时间段,方便用户即时获取信息,使用流畅感增强。展望总的来说,虽然本课题会议室管理系统目前已经到了结束阶段,但是仍然还有很多可以改进以及优化的地方,希望未来再次参与到类似项目的时候能够考虑进去:增加预定时间粒度种类,目前整个系统支持的最小时间粒度为1小时,主要为了是操作简单和防止出现资源浪费的情况,但是后续可以考虑分多种时间粒度进行预定,比如适合大家上课时长的45分钟等等。线上会议,由于此次新型冠状病毒疫情的影响,无法返工和返校,在这期间我们进行了很多的线上教学,线上会议等等,我发现其实线上会议也是会给我们带来很多便利的,比如如果不是非得去现场头脑风暴的工作交接会等等就可以直接在线上完成,能够大大节约会议室资源,所以校园的会议室管理系统推出线上功能也是非常的必要的,当然这是一把双刃剑,完全依赖线上会议,有些事情的效率可能会降低,使用时还是需要进行谨慎考虑。增加炫酷的动效,本次开发更加侧重于业务逻辑,所以前端界面主要以简洁大气为主,其实可以加入一些更加炫酷的CSS动效,根据很多公司首页的经验,炫酷的动效更加能够吸引用户来使用产品。增加权限控制和配置化内容,目前研发出的会议室管理系统主要是给上海大学的师生使用,其他学校的会议室还不能引进。但是由于我们目前的系统是不依赖于任何的特定硬件设备的,所以如果增加配置内容功能,每个学校的负责人只需要配置上所有的会议室信息,系统将每个学校的用户数据和会议室数据进行隔离,并进行权限控制,就可以适用于所有的学校。除了以上内容以外,其实还有很多小细节也是可以优化的,当然一个完美的系统是需要长时间慢慢推敲打磨出来的,短时间想要达到完美的效果是不太可能的,需要不断地重构优化,最终才能产出用户们都接受并喜欢的产品。希望本系统能够对国内会议室管理系统的发展,特别是学校级别的会议室管理系统,能够起到一定的促进作用,也希望未来的工作生活中能够有机会参与到类似系统的研发中去。致谢首先我想要感谢我的指导老师—XX老师,感谢老师的关怀和悉心指导,他拥有科学严谨的办学态度,一丝不苟的办事风格,在跟随老师完成毕业设计的这段时间,老师的一举一动都对我产生着非常深刻的影响,在完成工作的同时学到了应该有雷厉风行的办事风格,精益求精的工作态度。当然最感谢的还是老师在这段时间给我的悉心指导和鼓励,让我能够在这段时间将课题研究完成的同时,尽量少走弯路,并且时刻保持积极向上的心态。当然我也非常感谢大学期间为我授课的所有老师,感谢他们不辞辛苦地为我们传授知识,因为有了大学期间所学到的内容,形成了自己的知识储备,才能够让我顺利找到自己的发展方向,规划好未来的道路,并最后能进入国内互联网顶尖的公司。同时老师们的人格魅力也深深吸引了我,我希望我也能成为一个不卑不亢,永远虔诚待人的人。我也非常感谢我的家人,他们不远万里送我来XX求学,在经济和精神上都给了我最大的支持,在我遇到压力时为我排忧解难,使得我更加有信心去克服生活中的重重困难。同时也非常谢谢大学期间的所有同学,在学习上,我们互相交流专业知识,提高双方的学习效率,生活上,大家都经常帮助我这个生活经验不太丰富的同学。因为有了大家,我的大学生活变得更加丰富多彩。最后再次感谢所有帮助过我的人,未来也许我们做不一样的方向,走不一样的人生道路,但是无论如何,希望大家都能够事事顺心、前程似锦。参考文献李晓芬,于志伟,朴红波,罗赛,朱江.企业会议管理系统解决方案研究[J].信息技术与信息化,2019,No.11:13-15.范晓玲.基于J2EE的会议室管理系统的设计与实现[J].电脑与电信,2016,No.10:22-23.张贵强,王美玲.基于NodeJS的企业网站的设计与实现[J].信息技术与信息化,2019,No.12:58-60.郑智方,魏恺乐,李彬,谢易壮.MySQL得到广泛使用的原因以及它的嵌入应用[J].科技风,2020,No.5:114.支馨悦.基于B/S的项目管理系统的设计与实现[J].信息系统工程,2020,No.2:48-49.郝梅,闫华,张东湖,王力华,黄锋.浅谈医院会议管理系统的设计与应用[J].医院管理论坛,2017,No.10:58-61.ZhouF,ChushoT.Awebapplicationframeworkforreservationsystemsanditsreusabilityevaluation[C].ProceedingsoftheInternationalMultiConferenceofEngineersandComputerScientists,March.2009:18-20.BadawiUA,AlshabanahM,AlrajhiD.Developingandimplementingweb-basedonlineuniversityfacilitiesreservationsystem[J].InternationalJournalOfAppliedEngineeringResearch,2018,No.13:6700-6708.附录:部分源程序清单//登陆注册部分//jwt鉴权处理//会议室列表展示部分//会议室搜索功能//会议取消预订//会议打卡//抢占会议室//与会人员接受或者拒绝邀请//添加与会人员功能//预定会议室
HYPERLINK如何给电脑重做系统给电脑重做系统,自己学学,可少花钱,哈哈[图]
一、准备工作:
如何重装电脑系统
首先,在启动电脑的时候按住DELETE键进入BIOS,选择AdvancedBIOSFeatures选项,按Enter键进入设置程序。选择FirstBootDevice选项,然后按键盘上的PageUp或PageDown键将该项设置为CD-ROM,这样就可以把系统改为光盘启动。
其次,退回到主菜单,保存BIOS设置。(保存方法是按下F10,然后再按Y键即可)
1.准备好WindowsXPProfessional简体中文版安装光盘,并检查光驱是否支持自启动。
2.可能的情况下,在运行安装程序前用磁盘扫描程序扫描所有硬盘检查硬盘错误并进行修复,否则安装程序运行时如检查到有硬盘错误即会很麻烦。
3.用纸张记录安装文件的产品密匙(安装序列号)。
4.可能的情况下,用驱动程序备份工具(如:驱动精灵2004V1.9Beta.exe)将原WindowsXP下的所有驱动程序备份到硬盘上(如∶F:Drive)。最好能记下主板、网卡、显卡等主要硬件的型号及生产厂家,预先下载驱动程序备用。
5.如果你想在安装过程中格式化C盘或D盘(建议安装过程中格式化C盘),请备份C盘或D盘有用的数据。
二、用光盘启动系统:
(如果你已经知道方法请转到下一步),重新启动系统并把光驱设为第一启动盘,保存设置并重启。将XP安装光盘放入光驱,重新启动电脑。刚启动时,当出现如下图所示时快速按下回车键,否则不能启动XP系统光盘安装。如果你不知道具体做法请参考与这相同的-->如何进入纯DOS系统:
光盘自启动后,如无意外即可见到安装界面,将出现如下图1所示
查看原图
全中文提示,“要现在安装WindowsXP,请按ENTER”,按回车键后,出现如下图2所示
查看原图
许可协议,这里没有选择的余地,按“F8”后如下图3
HYPERLINK
查看原图
这里用“向下或向上”方向键选择安装系统所用的分区,如果你已格式化C盘请选择C分区,选择好分区后按“Enter”键回车,出现下图4所示
查看原图
这里对所选分区可以进行格式化,从而转换文件系统格,或保存现有文件系统,有多种选择的余地,但要注意的是NTFS格式可节约磁盘空间提高安全性和减小磁盘碎片但同时存在很多问题MacOS和98/Me下看不到NTFS格式的分区,在这里选“用FAT文件系统格式化磁盘分区(快),按“Enter”键回车,出现下图5所示
查看原图
格式化C盘的警告,按F键将准备格式化c盘,出现下图6所示
HYPERLINK
查看原图
由于所选分区C的空间大于2048M(即2G),FAT文件系统不支持大于2048M的磁盘分区,所以安装程序会用FAT32文件系统格式对C盘进行格式化,按“Enter”键回车,出现下图7所示
查看原图图7中正在格式化C分区;只有用光盘启动或安装启动软盘启动XP安装程序,才能在安装过程中提供格式化分区选项;如果用MS-DOS启动盘启动进入DOS下,运行i386\winnt进行安装XP时,安装XP时没有格式化分区选项。格式化C分区完成后,出现下图8所示
被过滤广告
查看原图
图8中开始复制文件,文件复制完后,安装程序开始初始化Windows配置。然后系统将会自动在15秒后重新启动。重新启动后,出现下图9所示
HYPERLINK
查看原图
9
查看原图
过5分钟后,当提示还需33分钟时将出现如下图10
HYPERLINK
查看原图
区域和语言设置选用默认值就可以了,直接点“下一步”按钮,出现如下图11
查看原图
这里输入你想好的姓名和单位,这里的姓名是你以后注册的用户名,点“下一步”按钮,出现如下图12
HYPERLINK
查看原图
如果你没有预先记下产品密钥(安装序列号)就大件事啦!这里输入安装序列号,点“下一步”按钮,出现如下图13
HYPERLINK
查看原图
安装程序自动为你创建又长又难看的计算机名称,自己可任意更改,输入两次系统管理员密码,请记住这个密码,Administrator系统管理员在系统中具有最高权限,平时登陆系统不需要这个帐号。接着点“下一步”出现如下图14
查看原图
日期和时间设置不用讲,选北京时间,点“下一步”出现如下图15
HYPERLINK
查看原图
开始安装,复制系统文件、安装网络系统,很快出现如下图16
查看原图
让你选择网络安装所用的方式,选典型设置点“下一步”出现如下图17
HYPERLINK
查看原图
点“下一步”出现如下图18
HYPERLINK
查看原图
继续安装,到这里后就不用你参与了,安装程序会自动完成全过程。安装完成后自动重新启动,出现启动画面,如下图19
HYPERLINK
查看原图
第一次启动需要较长时间,请耐心等候,接下来是欢迎使用画面,提示设置系统,如下图20
查看原图
点击右下角的“下一步”按钮,出现设置上网连接画面,如下图21所示
HYPERLINK
查看原图
点击右下角的“下一步”按钮,出现设置上网连接画面,如下图21所示
查看原图
这里建立的宽带拨号连接,不会在桌面上建立拨号连接快捷方式,且默认的拨号连接名称为“我的ISP”(自定义除外);进入桌面后通过连接向导建立的宽带拨号连接,在桌面上会建立拨号连接快捷方式,且默认的拨号连接名称为“宽带连接”(自定义除外)。如果你不想在这里建立宽带拨号连接,请点击“跳过”按钮。
在这里我先创建一个宽带连接,选第一项“数字用户线(ADSL)或电缆调制解调器”,点击“下一步”按钮,如下图22所示
HYPERLINK
查看原图
目前使用的电信或联通(ADSL)住宅用户都有帐号和密码的,所以我选“是,我使用用户名和密码连接”,点击“下一步”按钮,如下图23所示
查看原图
输入电信或联通提供的帐号和密码,在“你的ISP的服务名”处输入你喜欢的名称,该名称作为拨号连接快捷菜单的名称,如果留空系统会自动创建名为“我的ISP”作为该连接的名称,点击“下一步”按钮,如下图24所示
查看原图
已经建立了拨号连接,微软当然想你现在就激活XP啦,不过即使不激活也有30天的试用期,又何必急呢?选择“否,请等候几天提醒我”,点击“下一步”按钮,如下图25所示
HYPERLINK
查看原图
输入一个你平时用来登陆计算机的用户名,点下一步出现如下图26
HYPERLINK
查看原图
点击完成,就结束安装。系统将注销并重新以新用户身份登陆。登陆桌面后如下图27
HYPERLINK
查看原图
六、找回常见的图标
在桌面上点开始-->连接到-->宽带连接,如下图32
查看原图
左键点“宽带连接”不放手,将其拖到桌面空白处,可见到桌面上多了一个“宽带连接”快捷方式。结果如下图33
HYPERLINK
查看原图
然后,右键在桌面空白处点击,在弹出的菜单中选“属性”,即打开显示“属性窗口”如下图34
查看原图
在图中单击“桌面”选项卡,出现如下图35
HYPERLINK
查看原图
在图中的左下部点击“自定义桌面”按钮,出现如下图36
查看原图
在图中的上部,将“我的文档”、“我的电脑”、“网上邻居”和“InternetExplorer”四个项目前面的空格上打钩,然后点“确定”,再“确定”,你将会看到桌面上多了你想要的图标。如下图37
键盘上每个键作用!!!
F1帮助
F2改名
F3搜索
F4地址
F5刷新
F6切换
F10菜单
CTRL+A全选
CTRL+C复制
CTRL+X剪切
CTRL+V粘贴
CTRL+Z撤消
CTRL+O打开
SHIFT+DELETE永久删除
DELETE删除
ALT+ENTER属性
ALT+F4关闭
CTRL+F4关闭
ALT+TAB切换
ALT+ESC切换
ALT+空格键窗口菜单
CTRL+ESC开始菜单
拖动某一项时按CTRL复制所选项目
拖动某一项时按CTRL+SHIFT创建快捷方式
将光盘插入到CD-ROM驱动器时按SHIFT键阻止光盘自动播放
Ctrl+1,2,3...切换到从左边数起第1,2,3...个标签
Ctrl+A全部选中当前页面内容
Ctrl+C复制当前选中内容
Ctrl+D打开“添加收藏”面版(把当前页面添加到收藏夹中)
Ctrl+E打开或关闭“搜索”侧边栏(各种搜索引擎可选)
Ctrl+F打开“查找”面版
Ctrl+G打开或关闭“简易收集”面板
Ctrl+H打开“历史”侧边栏
Ctrl+I打开“收藏夹”侧边栏/另:将所有垂直平铺或水平平铺或层叠的窗口恢复
Ctrl+K关闭除当前和锁定标签外的所有标签
Ctrl+L打开“打开”面版(可以在当前页面打开Iternet地址或其他文件...)
Ctrl+N新建一个空白窗口(可更改,Maxthon选项→标签→新建)
Ctrl+O打开“打开”面版(可以在当前页面打开Iternet地址或其他文件...)
Ctrl+P打开“打印”面板(可以打印网页,图片什么的...)
Ctrl+Q打开“添加到过滤列表”面板(将当前页面地址发送到过滤列表)
Ctrl+R刷新当前页面
Ctrl+S打开“保存网页”面板(可以将当前页面所有内容保存下来)
Ctrl+T垂直平铺所有窗口
Ctrl+V粘贴当前剪贴板内的内容
Ctrl+W关闭当前标签(窗口)
Ctrl+X剪切当前选中内容(一般只用于文本操作)
Ctrl+Y重做刚才动作(一般只用于文本操作)
Ctrl+Z撤消刚才动作(一般只用于文本操作)
Ctrl+F4关闭当前标签(窗口)
Ctrl+F5刷新当前页面
Ctrl+F6按页面打开的先后时间顺序向前切换标签(窗口)
Ctrl+F11隐藏或显示菜单栏
Ctrl+Tab以小菜单方式向下切换标签(窗口)
Ctrl+Enter域名自动完成[url=].**.com[/url](内容可更改,Maxthon选项→地址栏→常规)/另:当输入焦点在搜索栏中时,为高亮关键字
Ctrl+拖曳保存该链接的地址或已选中的文本或指定的图片到一个文件夹中(保存目录可更改,Maxthon选项→保存)
Ctrl+小键盘'+'当前页面放大20%
Ctrl+小键盘'-'当前页面缩小20%
Ctrl+小键盘'*'恢复当前页面的缩放为原始大小
Ctrl+Alt+S自动保存当前页面所有内容到指定文件夹(保存路径可更改,Maxthon选项→保存)
Ctrl+Shift+小键盘'+'所有页面放大20%
Ctrl+Shift+小键盘'-'所有页面缩小20%
Ctrl+Shift+F输入焦点移到搜索栏
Ctrl+Shift+G关闭“简易收集”面板
Ctrl+Shift+H打开并激活到你设置的主页
Ctrl+Shift+N在新窗口中打开剪贴板中的地址,如果剪贴板中为文字,则调用搜索引擎搜索该文字(搜索引擎可选择,Maxthon选项→搜索)
Ctrl+Shift+S打开“保存网页”面板(可以将当前页面所有内容保存下来,等同于Ctrl+S)
Ctrl+Shift+W关闭除锁定标签外的全部标签(窗口)
Ctrl+Shift+F6按页面打开的先后时间顺序向后切换标签(窗口)
Ctrl+Shift+Tab以小菜单方式向上切换标签(窗口)
Ctrl+Shift+Enter域名自动完成
Alt+1保存当前表单
Alt+2保存为通用表单
Alt+A展开收藏夹列表
资源管理器
END显示当前窗口的底端
HOME显示当前窗口的顶端
NUMLOCK+数字键盘的减号(-)折叠所选的文件夹
NUMLOCK+数字键盘的加号(+)显示所选文件夹的内容
NUMLOCK+数字键盘的星号(*)显示所选文件夹的所有子文件夹
向左键当前所选项处于展开状态时折叠该项,或选定其父文件夹
向右键当前所选项处于折叠状态时展开该项,或选定第一个子文件夹
自然键盘
【窗口】显示或隐藏“开始”菜单
【窗口】+F1帮助
【窗口】+D显示桌面
【窗口】+R打开“运行”
【窗口】+E打开“我的电脑”
【窗口】+F搜索文件或文件夹
【窗口】+U打开“工具管理器”
【窗口】+BREAK显示“系统属性”
【窗口】+TAB在打开的项目之间切换
辅助功能
按右边的SHIFT键八秒钟切换筛选键的开和关
按SHIFT五次切换粘滞键的开和关
按NUMLOCK五秒钟切换切换键的开和关
左边的ALT+左边的SHIFT+NUMLOCK切换鼠标键
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 长沙商贸旅游职业技术学院《机械制图与实验》2023-2024学年第一学期期末试卷
- 配电网数据采集与分析
- 述职报告:技术领先之道模板
- 职业导论-2020年房地产经纪人《职业导论》真题汇编
- 名画欣赏与创作模板
- 公司年年会主持稿
- 二零二五年电子商务平台入驻合作协议范本3篇
- 二零二五版北京车牌租赁市场推广合作合同规范范本9篇
- 二零二五版基站建设场地使用权及通信网络优化合同2篇
- 吉林油田十二中2024-2025学年七年级上学期期末语文试卷(含答案)
- 分期还款协议书
- 小区住户手册范本
- 海康威视-视频监控原理培训教材课件
- 《郑伯克段于鄢》-完整版课件
- 土壤肥料全套课件
- 毕业生延期毕业申请表
- 学校6S管理制度
- 肽的健康作用及应用课件
- T.C--M-ONE效果器使用手册
- 8小时等效A声级计算工具
- 人教版七年级下册数学计算题300道
评论
0/150
提交评论