企业内部微博系统的设计与实现毕业论文正文Word下载.docx
《企业内部微博系统的设计与实现毕业论文正文Word下载.docx》由会员分享,可在线阅读,更多相关《企业内部微博系统的设计与实现毕业论文正文Word下载.docx(22页珍藏版)》请在冰豆网上搜索。
本文主要介绍企业部微博系统的开发环境与技术、需求分析、总体设计、详细设计。
在其后对系统的各个功能模块进行了具体分析。
1系统开发环境与技术
1.1IntelliJIDEA
IntelliJIDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的Java开发工具之一,它整合了开发过程中实用的众多功能,几乎可以不用鼠标便可方便的完成你要做的任何事情,最大程度的加快开发的速度。
简单而又功能强大。
与其他的一些繁冗而复杂的IDE工具有鲜明的对比。
尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、创新的GUI设计等方面的功能可以说是超常的。
1.2SpringFramework
SpringFramework[9]是一个开源的Java/JavaEE[10]全功能栈(full-stack)的应用程序框架,SpringFramework提供了一个简易的开发方式,这种开发方式,将避免那些可能致使底层代码变得繁杂混乱的大量的属性文件和帮助类。
Spring框架提供了构建Web应用程序的全功能MVC模块。
使用Spring可插入的MVC架构,可以选择是使用置的SpringWeb框架还可以是Struts这样的Web[11]框架。
通过策略接口,Spring框架是高度可配置的,而且包含多种视图技术,例如JavaServerPages(JSP)技术、Velocity、Tiles、iText和POI。
SpringMVC框架并不知道使用的视图,所以不会强迫您只使用JSP技术。
SpringMVC分离了控制器、模型对象、分派器以与处理程序对象的角色,这种分离让它们更容易进行定制。
本系统采用Velocity视图技术,Velocity支持Json格式的变量,所以可以在本系统中实施基于JSON格式的前后端完全分离的开发方式。
1.3FEKit
FEKit是基于NodeJS开发的自动化前端开发工具集,它致力于简化前端重复劳动,使工程师从枯燥乏味中解脱出来专心编程。
它提供了本地开发支持环境/静态文件编译/组件源服务/开发辅助工具等容。
1.4JQuery
JQuery是一套跨浏览器的JavaScript[12]库,简化HTML[13]与JavaScript之间的操作。
是目前最受欢迎的JavaScript库。
JQuery的语法设计使得许多操作变得容易,如操作css[14]、操作文档对象(document)、选择DOM元素、创建动画效果、处理事件、以与开发Ajax程序。
JQuery也提供了给开发人员在其上创建插件的能力。
这使开发人员可以对底层交互与动画、高级效果和高级主题化的组件进行抽象化。
模块化的方式使jQuery函数库能够创建功能强大的动态网页以与网络应用程序。
本系统有大量的Web交互界面,使用jQuery提高了Web界面的开发效率和可维护性。
1.5MySQL
MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle公司。
MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem:
关系数据库管理系统)应用软件之一。
MySQL关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库,这样就增加了速度并提高了灵活性。
MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。
MySQL软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型的开发都选择MySQL作为数据库。
2系统需求分析
2.1系统设计目标
(1)创建一个企业部使用的微博系统,促进员工间的交流。
(2)通过友好的界面设计和完善的功能,使用户能更加方便的与同事交流互动,尽可能的给用户提供更好的服务。
2.2功能需求分析
本系统在公司网运行和使用,通过公司部的一站式用户登录系统,利用授权接口调用返回的数据,进行用户注册、用户个人信息配置、实名认证、用户登录。
用户登录成功后进入微博首页,可以显示已关注的微博好友最新发布的微博信息,以与浏览微博相关的图片和评论。
可以关注推荐关注的用户。
可以查看好友的个人信息、粉丝/关注列表、发表的微博。
可以接收来自好友的评论和消息。
从以上描述可以基本了解到本系统的功能需求:
(1)登录、登出
用户访问微博的任何页面时,如果不是已登录状态,则要求用户对一站式用户登录系统授权登录,正确后才可以进入系统查看相应的信息。
在查看微博的页面提供相应的让用户登出。
登录一次以后,再次访问就无需授权了,除非用户进行了登出操作。
(2)查看我关注的微博
该功能其实也就是微博系统首页所要实现的功能,当用户登录微博系统后,我关注的所有用户的微博都会显示出来,按照时间进行排序,最新的微博会显示在最上端。
用户可以删除自己发布的微博。
如果用户停留在首页且长时间不刷新,系统会自动在微博列表上方显示最近有多少条未查看的新微博,点击提示按钮将显示这些新微博的完整信息。
(3)发布微博
首页屏幕正上方有一个发布微博的按钮,用户输入要发布的不超过140字的容,然后发布,还可以同时发布图片。
发布成功后,系统会自动刷新来显示最新的微博。
(4)微博的转发和评论
用户查看微博时,可以在每条微博的对应位置上,通过点击一个弹出一个评论框,可以输入对该条微博的评论,并可以选择将其转发到自己的微博。
用户还可删除自己发布过的评论。
(5)收藏微博
对于某些比较好的微博,或者是比较感兴趣微博,可以使用微博的收藏功能将该微博保存下来,以便以后重复查看。
当想要查看以前收藏过的微博时,可以通过进入我的收藏页查看所有收藏过的微博。
如果对某个微博已经不感兴趣或者不想继续收藏该微博,则可以通过取消收藏按钮取消对该微博的收藏。
(6)用户
微博的功能在微博的社交功能中扮演了重要作用。
用户在发表微博的时候可以使用username的方式通知到用户名为username的用户,被的用户将会收到提醒,方便了用户间的交流。
(7)个人主页
点击用户头像或用户名进入个人主页,可以以列表的形式查看此用户发表过的微博信息。
同样的也可以对微博进行评论、转发、收藏操作。
如果主页是当前用户的,则每条微博上会提供一个用于删除微博。
如果主页不是当前用户的,在此页面可以点击屏幕上方的关注按钮,对此主页的用户进行关注或取消关注操作。
在屏幕的右上方有两个按钮,分别显示用户的关注数量和粉丝数量。
点击可以查看相关的关注列表和粉丝列表。
可以对其中感兴趣的用户进行关注操作。
(8)搜索用户
用户可以通过在搜索框中输入用户名找到相应的用户。
也可以只输入关键字,搜索结果将显示与关键字相关的用户。
(9)收到的消息
收到的消息分为来自好友的评论和来自的提醒两类。
当用户登录后,一旦收到消息,系统将会自动在屏幕右上方弹窗提示消息来源和数量,点击可以进入具体的消息界面,对消息进行回复。
2.3可行性分析
微博系统给人们提供了一个信息传播和互相交流的平台,在企业部微博系统可以提供一个自由的部社区,让员工可以在闲时无拘束的发布心情,与所有同事交流,促进关系。
2.3.1经济上的可行性
一般的互联网企业都有自己的部系统,拥有自己的服务器。
使用的技术都易于部署,且大部分为开源技术。
因此开发成本比较低,所以在经济上是可行的。
2.3.2技术上的可行性
企业部拥有自己的员工信息系统,微博的用户系统可以直接与其对接。
系统后端基于SpringFramework和前端基于FEKit的开发方式,使系统前后端的开发和部署具备完全分离的能力,具有良好的平台移植性和可维护性。
因此技术上也是可行的。
2.3.3操作上的可行性
本系统使用企业已有的用户系统,免去了繁琐的注册步骤,使用户能快速加入。
系统界面清新友好,操作方便,功能上与大众熟悉的微博系统类似,用户不需要对系统进行二次学习便能快速上手。
因此在操作上也是可行的。
3系统总体设计
3.1系统结构设计
微博系统采用B/S模式开发,服务端使用基于java的SpringFramework开发,浏览器端(前端)基于FEKit工具集使用html、javascript、JQuery开发。
前后端完全基于Json[15][16]数据格式分离开发,后端负责输出纯json数据,前端负责解析。
系统的静态页面部分采用支持Json的Velocity视图技术,动态交互部分(如评论、消息提醒等)采用Ajax[17]异步更新技术。
系统结构的设计如图3-1所示。
图3-1系统结构的设计图
3.2数据库设计
数据库的实体关系设计是要建立在需求分析和系统功能分析上的。
此系统的实体包括用户信息、微博信息、评论信息、消息提醒。
可以通过分析实体图描述每个实体的属性。
3.2.1实体图
(1)用户实体图如图3-2所示。
图3-2用户实体图
(2)微博实体图如图3-3所示。
图3-3微博实体图
(3)评论实体图如图3-4所示。
图3-4评论实体图
(4)消息提醒实体图如图3-5所示。
图3-5消息提醒实体
3.2.2系统实体联系
根据对系统的分析,本系统的实体关系包括:
一个用户可以发布多条微博,所以用户与微博是一对多关系。
一个用户可以关注多个其他用户,也可以被多个用户关注,所以用户与用户之间是多对多关系。
用户可以发布多条评论,所以用户与评论是一对多关系。
一篇微博可以被多次评论,所以微博与评论是一对多关系。
一个用户可以收到多条消息,所以用户与消息是一对多关系。
本系统实体之间的关系如图3-6所示。
图3-6系统E-R图
3.3系统功能模块设计
3.3.1系统总体功能图
图3-7系统功能模块图
3.3.2系统功能模块描述
(1)用户登录模块
该模块是微博系统的首界面,进入系统时,会有一个授权按钮,授权成功后进入用户的微博首页。
如果用户已经登录过,系统将会自动跳转到微博首页。
(2)系统首页信息显示模块
该模块主体部分显示被用户添加过关注的好友的最新微博,在屏幕右侧是推荐关注、我的关注两个小模块。
(3)微博发布模块
该模块实现了用户发布微博的功能,用户可以发布140字以的文字和若干图片。
模块支持输入字数提示和图片拖拽上传功能,提升用户体验。
在发布时也可以[18]好友来提醒好友。
(4)查看微博容模块
该模块实现了用户可以在查看某条微博时,对该微博进行评论、转发、收藏操作。
在微博的评论列表下,用户还可以针对评论进行回复。
用户对微博的转发将会形成自己的一条新微博。
被用户收藏过的微博会进入该用户的收藏列表。
(5)用户搜索模块
该模块实现了通过关键字搜索相关用户的功能,在搜索结果列表中,支持对相关用户进行快速关注或取消关注操作。
(6)查看用户信息模块
点击用户的头像或用户名可以进入用户的个人主页查看用户的详细信息(包括微博、个人信息、粉丝、关注),在页面上可以对该用户进行关注或取消关注操作。
4系统详细设计与实现
4.1系统通信协议设计
本系统服务端与浏览器端采用Json格式数据进行通信,所以制定了一套特定的错误码协议进行运作。
该错误码分为四类:
(1)一般类型:
101:
删除异常。
102:
参数异常。
103:
当前页超出围。
104:
没有相关权限。
(2)评论相关:
300:
评论发布失败。
301:
评论容过长。
(3)用户、推荐、关注与粉丝相关:
400:
取消关注失败。
401:
用户不存在。
402:
用户已被关注。
403:
增加关注失败。
404:
增加关注异常。
405:
用户信息保存失败。
406:
用户信息更新失败。
409:
禁言用户失败。
410:
解禁用户失败。
412:
删除用户失败。
413:
非管理员用户。
(4)收藏相关:
501:
显示收藏信息失败。
502:
添加数据失败。
4.2数据库详细设计
下面是本微博系统数据库所有表的结构:
User用户表结构如表4-1所示。
表4-1user用户表
字段
字段类型
是否为空
默认值
字段说明
id
bigint(20)
否
自增id
username
varchar(25)
用户名
portrait
varchar(500)
/images/defaultPortrait.jpg
头像地址
gender
tinyint(4)
性别
profile
varchar(100)
这个人很懒,什么都没留下
个人介绍
status
用户状态
micro_blog微博表结构如表4-2所示。
表4-2micro_blog微博表
user_id
微博发布者id
content
varchar(200)
微博容
is_deleted
微博是否删除
original_id
被转发微博原始ID
set_time
timestamp
CURRENT_TIMESTAMP
发布时间
micro_blog_comments评论表结构如表4-3所示。
表4-3micro_blog_comments评论表
micro_blog_id
评论微博的id
评论发布用户的id
user_commented_id
被评论的用户的Id
comment_commented_id
被评论的评论的id
varchar(140)
评论容
评论是否删除
Timestamp
relationship关注关系表结构如表4-4所示。
表4-4relationship关注关系表
watcher_id
关注人id
watchee_id
被关注人的id
at_info消息表结构如表4-5所示。
表4-5at_info消息表
被的用户id
info_id
微博或评论id
at_type
消息类型
at_time
时间
favourites微博收藏表结构如表4-6所示。
表4-6favourites微博收藏表
收藏此微博的用户id
被收藏微博的id
attach_file微博图片附件表结构如表4-7所示。
表4-7attach_file微博图片附件表
关联的微博id
file_path
实际保存的路径
latest_at_info_time最后一次阅读信息表结构如表4-8所示。
表4-8latest_at_info_time最后一次阅读信息表
用户ID
at_info
最后一次读收到at的时间
4.3系统功能模块的详细设计与实现
4.3.1登录授权模块实现
程序启动,如果用户是第一次使用本微博,点击登入按钮则会跳转到登录授权页面,输入企业部认证系统的用户名和密码,进行授权,成功后系统对当前授权用户信息进行配置,将信息写入用户表、注册用户SESSION等。
登录入口界面效果图如图4-1所示。
图4-1登录入口页
实现分析:
登录使用公司部登录认证系统QSSO系统进行用户身份的验证,所以本微博系统不会保存用户的密码信息,相对安全。
登录成功后将注册用户SESSION,用户未登录状态下不需要重新验证。
4.3.2微博首页模块实现
用户登录后进入微博首页模块,首页屏幕上方是微博发布框,中间部分显示好友最新的微博列表,右侧显示我的关注和推荐关注。
微博首页效果图如图4-2所示。
好友微博的获取采用拉(pull)的方式,从关注表中拉取好友列表,然后关联微博表读取好友发布的微博信息,同时将查询结果写入缓存。
4.3.3微博发布模块实现
可以选择只发纯文字,也可以同时附带图片。
(1)发纯文字
文字在控制在140个字以,在用户输入时,系统会实时提醒当前还可以输入的字数。
效果图如图4-3所示。
(2)文字附带图片
切换发布方式为发照片,发布框下方将会出现上传图片按钮。
支持文件拖拽上传。
一次最多可以发布4图片。
效果图如图4-4所示。