用户登录  |  用户注册
首 页毕业论文毕业设计下载定做交易过程截图支付宝在线支付
当前位置:完美毕业网毕业设计下载计算机毕业设计安卓Android毕业设计

基于node.js的社交服务系统设计与实现

联系方式:点击这里给我发消息QQ212181988
官方主页:www.biye114.com
图片预览: ;论坛转帖
插件情况:
售后服务:请联系客服QQ:212181988
一键分享拿折扣:
  • 好的评价 如果您觉得此软件好,就请您
      0%(0)
  • 差的评价 如果您觉得此软件差,就请您
      0%(0)

软件简介

 摘要:随着互联网日益发展,人们的生活越来越仰仗其带来的便捷,迅速和及时的沟通方式。众所周知,WEB 应用的发展与人们的日常生活密不可分。而且,我们生活中的社交类应用多如牛毛,比如 QQ,MSN;服务类的应用也不计其数,例如求职方面的 58大街,购物方面的京东淘宝,外卖方面的美团百度等。但是这些应用的适用范围都太过冗杂,针对的是全体消费者,对于小的公司圈范围内的用户来说:功能不够具体,社会关系杂乱,用户的诉求得不到具体的满足,权益得不到实际的保障。
本文设计并实现了一个适用于公司圈内部人员使用的社交服务系统,针对日常生活中涉及到的饮食方向的选择问题,比如吃什么,去哪吃,和谁吃,提出相应的解决方法。该系统的主要功能包括为合作商做推广,按照喜好或者随机对用户推荐美食,公司圈内部美食分享交流平台,与同事约饭拼桌,记录饮食数据,以及系统管理等功能。
该系统主要基于 node.js 开发,运用 express 框架,运行在 chrome 浏览器中,使用基于分布式存储的数据库 mongo DB,主要功能的实现还涉及到 Java 语言做辅助。
目前,该系统已经开始试用,为公司员工提供优质可行的美食搜索兼社交服务。同时,在不久的将来,该项目也可以对外推广到其它公司,使每个人都可以加入属于自己的公司内部美食社交圈,同行美食社交圈,行业间美食社交圈。


关键词:美食搜索;推荐算法;数据存储;私人订制;


ABSTRACT

ABSTRACT:
With the development of Internet, people’s daily life more and more deeply rely on the rapid, convenient, timely communication which was provided by Internet. The development of WEB application is closely connected with people’s basic necessities of life. Actually, there are so many social software programs in the market, such as QQ, MSN. Besides, there are also many service systems. For example: 58, Street for work hunting; JD.com, Tmall.com for shopping, and meituan.com, BIDU for take-out ordering. However, these applications mainly focus on all people of society, lack of specific and security, so they are not convenient enough for minority group.
The thesis designed and implemented a company level multi-project social service system, mainly used for people’s daily diet of real life, such as what to eat, where to eat, and who to eat with. The main functions of this system are as following: advertise for cooperative business, recommended food or restaurant to the customer in according to their preferences or randomly, provide a food sharing platform for members of our company, invite your workmates to eating together or share table with others, normal diet data recording, as well as system management.
The system built in Node.js, using the express framework, running in Chrome Google Browser, use mongo DB database based on distributed storage to store data, the realization of the main function also involves the Java language as auxiliary.
At present, the system is ready to formally launched and put into use, employees for the company to provide feasible food searching and social services. At the same time, the project can also be foreign to other companies in the near future, so that everyone can participate in their own internal food social circle, peer food social circle, even food industry circles.


KEYWORDS: Food Searching; Recommend Algorithm; Data Storage; Personality Customization


目 录

中文摘要 I
ABSTRACT II
目 录 III
1.绪论 6
1.1项目背景意义 6
1.1.1项目背景 6
1.1.2项目意义 7
1.2项目国内外发展现状 7
1.2.1国外发展现状 7
1.2.2国内发展现状 8
1.3作者的主要工作 8
1.3.1前期调研 8
1.3.2开发阶段 9
1.3.3试用阶段 9
2主要技术 10
2.1NODE.JS 10
2.2EXPRESS 10
2.3JAVA 11
2.4MONGODB 11
2.5JSON 12
2.6本章小结 12
3系统分析 13
3.1系统整体概述 13
3.1.1项目定位 13
3.1.2用户定位 13
3.2系统可行性分析 13
3.2.1技术可行性 14
3.2.2经济可行性 15
3.2.3操作可行性 15
3.3系统功能性需求分析 15
3.3.1推荐模块 15
3.3.2社交模块 17
3.3.3管理模块 17
3.3.4其它功能 18
3.4系统功能性需求分析 19
3.4.1可靠性 19
3.4.2易用性 20
3.4.3 效率 20
3.4.4安全性 20
3.4.5可移植性 21
3.5本章小结 21
4概要设计 22
4.1系统整体架构设计 22
4.2系统网络层面设计 23
4.3程序工作过程 24
4.3.1 路由 24
4.3.2中间件与 Router 25
4.3.3程序响应过程 26
5详细设计 28
5.1UI 设计 28
5.1.1UI 设计图 28
5.1.2UI 设计的完善 30
5.2数据库设计 31
5.3推荐类模块设计 33
5.3.1按喜好推荐功能的设计 34
5.3.2随机推荐功能的设计 35
5.4社交类模块设计 36
5.4.1搜狗 ER 推荐功能的设计 36
5.4.2拼桌功能的设计 39
5.5管理类模块的设计 40
5.5.1登录功能 40
5.5.2系统管理功能 41
5.6其它功能模块的设计 42
5.6.1记录功能 42
5.6.2推广功能 43
6实现与测试 44
6.1 实现 44
6.1.1 实现截图 44
6.2 测试 46
6.2.1正确性测试 47
6.2.2兼容性测试 48
6.2.3性能测试 49
7 结论 52
7.1 总结 52
7.1.1已完成的功能 52
7.1.2待完善的功能 52
7.2 展望 53
参考文献 54
致 谢 55
附 录 56

1.绪论

本文主要研究的是一个基于 node.js 的社交服务系统,简而化之,主要是饮食方面的推荐与交流。我们的主要目的在于开发出一个实际的项目满足公司同事的日常生活饮食需求,并提供社交功能。它的范围小,应用有针对性,将最新发展起来的 Node.js 与传统的 Web 应用相结合,具有很多优越性。

1.1项目背景意义

这一小节对该项目的研发背景,研发意义做了简单意义上的描述,为后面部分的设计和实现做准备。

1.1.1项目背景

随着计算机技术和网络通信技术的大力发展和全面普及,计算机网络已经成为人们传递信息的重要途径之一。日常生活无论衣食住行,生活起居,都离不开计算机网络。
Web 应用程序设计就是计算机网络在人们现实生活中应用的一个重要方面,它具有沟通及时,检索迅速,使用方便,应用广泛等特点。在时代的召唤下,开发越来越多的 Web应用程序,以满足人们日益增长的实际需求,是我们作为计算机从业者的不可推卸的责任之一。54
日常生活离不开交际圈,大到六十亿的地球圈,小至三五人的群组圈。我们所需要的应用程序,除了起到一般的服务作用,最好还能在适当的范围内帮助用户增进交际圈内老朋友之间的联系,结识新朋友。所以,我们定位于开发一款日常使用的服务社交类应用,来满足具体的日常交际圈的最基本的需求。
古语有云:“夫寒之于衣,不待轻暖;饥之于食,不待甘旨”。俗话说:民以食为天。可见,日常饮食对于我们生活学习工作的重要性是不言而喻的。而人们生活水平的提高,使人们越来越关注自己的饮食。但是,无论是朝九晚五的上班族,还是三点一线的学生党,尤其是我们昼伏夜出的程序员,对于吃什么,去哪儿吃,这种事关人生三大哲学问题的永恒话题,都很难找到一个合理准确的解决方案。所以,通过这个项目,我们致力于帮助大家获取更多更准确的美食信息,掌握第一手的美食资讯,以及根据个人喜好展开个性化的私人订制。


1.1.2项目意义

开发这样一个项目,可以帮助身边的同事快速、高效地解决去哪儿吃,吃什么的问题,让大家告别吃饭纠结,节省时间,提高生活质量。此外,这个项目也提供了公司员工内部的交流空间,让同事们日常的沟通除了代码和文档以外,还加入了柴米油盐等接地气的因素,让我们的生活更加贴近生活,让简单,高效,成为搜狗同学生活的一部分。
市面上饮食推荐应用程序并不缺乏,社交应用更是多如牛毛,但是把日常饮食与社交平台结合起来的应用程序不仅在数量上则屈指可数,而且在质量上乏善可陈。况且,市面上已有的应用程序太过多乱杂,没有经过信息的筛选。推荐的食物可能离我们的工作环境太远,或者需要等待的时间太长,并不适合搜狗同学前去就餐。最了解用户的就是用户自己,因此最适合搜狗同学的就餐地点也要搜狗同学来推荐才会更加实际贴切。这时候,构建一个我们公司内部使用的,小范围的饮食类服务社交 App,就成了上乘的选择。
有了“搜食圈 WhereToEat”,搜狗同学可以相互推荐食物,寻找同事拼桌一同前去就餐,可以分享自己日常制作的美食,也可以在组织团队活动的时候不再为选择 TB 聚会地点而痛苦不堪。工作地点一致,约饭方便快捷,免去会面等待麻烦;工作内容相似,信任程度,共同话题,时间地点等条件都能更好地相互契合,推荐食物更加靠谱,约饭拼桌更加安全。

1.2项目国内外发展现状

个性化推荐对现代的研究者来说并不陌生,最早在 20 世纪 90 年代,它就被作为一个独立的概念提出,随着 Web2.0 技术的成熟,个性化推荐也开始进入高速发展时期。个性化推荐让用户不再被动地充当浏览者,而是充当积极主动的参与者。准确高效的推荐系统给予用户很强的存在感,在日趋紧张激烈的商业竞争下,个性化推荐有效增加了用户的粘度和积极性,因此,无论是作为一种服务策略还是作为一种商业手段,个性化推荐都为电子商务领域带来数量不菲的商业利益。本小节分国外和国内两部分,对个性化推荐的近些年的发展进行了概述。

1.2.1国外发展现状

近年来,意识到个性化推荐存在的巨大潜力,国外研究者在搜索引擎的研究领域开始主要往个性化推荐的方向进军。
Vincenzo M 与 Fabio P 等人在文献[2]中提出了一种新的多媒体浏览器推荐方法,将


多媒体对象的内在特征,个人历史行为,个人社会行为等轨迹相结合,以社会选择的方向建模,根据各种衡量尺度的重要性进行排序。Vincenzo M 和 Antonio M R 等人在文献
[3]中针对视觉多媒体推荐提出了一种将用户行为分析和多媒体对象意义描述相结合的新的推荐模式,通过合理推想构建用户模型。
Marek L 等人经过研究,发现仅仅分析用户行为这种猜测的手段准确性不够高,而用户自己的切实反馈才是提高准确性的关键,于是他们在文献[4]中提出了一个就具有可扩展的系统架构混合系统,该系统能够利用用户的反馈来调整系统的具体特征参数,并让推荐模型不断进行细微的改动来适应新的规则修订。
此外,在位置服务的研究领域,也有学者们聚焦于此。越来越多的软件开始将它们的野心扩大到获取用户当前位置,无论是现在已有的功能还是以后将会扩展的功能,都想通过用户同意获取更多位置资料。Chow C Y 等人在文献[5]中讨论了位置服务的隐私安全性,并研究了基于匿名个人位置的地点等问题。

1.2.2国内发展现状

国内的个性化搜索事业发展依然非常迅速,但是由于传统搜索引擎自身所带有的局限性,用户并不能足够有效地获取所需的相关信息资源。根据 CNNIC 第 29 次报告,国内的网民数量达到 5.13 亿,有关搜索引擎的应用数量以 4.07 亿高居亚军,仅次于冠军
即时通信的 4.15 亿,可见搜索引擎的个性化推荐应用前景不可小觑。
在文献[6]中,该作者提出了一种适用于 MoSoSo 系统的个性化推荐模型,及与其相对应的智能推荐算法。该算法基于 MSS 模型特征,采用信息箱聚类协同过滤的方式,实现用户个性化信息推荐的私人订制。而则针对 OTA 系统,文献[7]中提出了一种基于
agent 的个性化应用推荐模型,这种模型对移动用户的行为与用户的兴趣之间的关系进行分析研究,并提出了移动用户兴趣发现和感性预测的算法。费洪晓,戴弋,穆珺等人还在文献[8]中提出了一种崭新的用户兴趣模型,这种模型是结合 Web 数据挖掘和针对用户行为进行分析而建立的,它通过时间窗口的移动来更新。[9]

1.3作者的主要工作

本小节阐述了项目研发过程中作者的参与情况以及具体工作量。

1.3.1前期调研

1.辅助展开该项目的前期环境调查,包括行业环境,竞争对手情况。


2.分析市场需求,确定针对的用户群体并调查用户情况,研究发放的调查问卷并统计调查结果。
3.根据调查结果与项目组合作成员协商并展开讨论,确定用户的需求并辅助编写需求分析文档。

1.3.2开发阶段

1.参与整个系统的架构设计。
2.推荐模块的开发:包括按喜好推荐和随机推荐两大主要功能。
3.社交模块的开发:搜狗 er 推荐功能(分享),拼桌功能。

1.3.3试用阶段

1.用户试用的反馈调研。
2.探讨功能改进与延伸。


2主要技术

这一章对该项目开发过程中所采用的技术路线依次进行简要介绍。

2.1Node.js

Node.js 是一个基于Chrome JavaScript 运行时建立的平台,用于方便地搭建易于扩展、响应速度快的网络应用。Node.js 使用事件驱动,以及非阻塞 I/O 模型,因此得以兼备轻量和高效,非常适合搭建在分布式设备上运行的数据密集型的实时应用。
Node.js 虽然带一个 JS 后缀,但是它与单纯的 JavaScript 却有很大不同。JavaScript是一个事件驱动语言,Node 利用这个优点,采用了一个所谓“事件循环(event loop)”的架构,使得开发人员可以更加容易安全地编写扩展性高的服务器。Node 采用一系列“非阻塞”库来支持事件循环的方式。本质上就是为文件系统,数据库之类的资源提供接口。当用户向文件系统发送一个请求时,无需等待硬盘(寻址并检索文件),硬盘准备好的时候非阻塞接口会通知 Node。使用 node.js 进行 Web 项目的设计实现,可以简化对慢资源的访问,让整个过程更加直观、易懂。[10]
准确来说,Node.js 更像是一个采用 Google chrome 浏览器,V8 引擎,由 C++语言编写,本质上是一个 JavaScript 运行环境。实际上它是对 Google V8 引擎进行了封装。往往提起 JS,大家就能想起浏览器里的各种交互组件,异步请求,等等,来解析页面的
JS 代码。Node.js 不仅可以解析 JS 代码而且没有浏览器安全级的限制,还提供很多系统级别的 API,比如:文件的读写,进程的管理,网络通信。Node 对一些特殊用例进行了优化,提供了替代的 API,使得 V8 在非浏览器环境下运行得更好。
V8 引擎执行 JavaScript 的速度快,性能好。这从某种程度上来说为我们开发此项目带来了特有的优越性。

2.2Express

Web 应用方面,Express 是一个基于 Node.js 平台的极简的、灵活的 web 应用开发框架,它在 node.js 的基础上提供一系列强大的特性,帮助创建各种 Web 应用和移动设备应用。
API 方面,丰富的 HTTP 快捷方法,以及任意排列组合的 Connect 中间件,可以简单而快速地创建友好健壮的 API。
Express 不会对 Node.js 已有特性进行二次抽象,只不过是在它之上扩展了 Web 应


用所需的基本功能。

2.3Java

作为一种可以撰写跨平台应用软件的面向对象程序设计语言,Java 技术具有卓越的通用性,高效性,平台移植性和安全性,广泛应用于 PC,数据中心,游戏控制台,科学计算机,移动电话和互联网。Java 不仅仅是一种程序设计语言,同时也代表着 Java平台(即 JavaSE,JavaEE,JavaME),所以,Java 是语言和平台的总称,同时具有全球最大的开发者专业社群。在风起云涌的云计算和移动互联网企业大热的产业环境下,Java更具备了优于其它编程方式的广阔前景和显著优势。
Java 平台由 Java 虚拟机(Java Virtual Machine)和 Java 应用编程接口(Application Programming Interface、简称 API)构成。Java 应用编程接口为 Java 应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个 Java 平台之后,Java 应用程序就可运行。现在 Java 平台已经嵌入了几乎所有的操作系统。这样 Java 程序可以只编译一次,就可以在各种系统中运行。Java 应用编程接口已经从 1.1x 版发展到 1.2 版。目前常用的 Java 平台基于 Java1.5,最近版本为 Java1.7。
Java 分为三个体系 JavaSE(Java2 Platform Standard Edition,java 平台标准版), JavaEE(Java 2 Platform,Enterprise Edition,java 平台企业版),JavaME(Java 2 Platform Micro Edition,java 平台微型版)。
Java 的特性非常丰富,除了跨平台,面向对象的基本特性之外,它还是一种分布式的,解释的,多线程动态语言。它的结构优异,可移植性非常高。Java 的编程风格十分接近 c++语言,它继承了 c++ 语言面向对象技术的核心,并舍弃了 c++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能,用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。
总地来说,Java 很适合开发健壮的网站应用和安卓应用。[11]

2.4Mongodb

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。主要解决的是海量数据的访问效率问题,为 WEB 应用提供可扩展的高性能数据存储解决方案。当数据量达到 50GB 以上的时候,MongoDB 的数据库访问速度是 MySQL 的 10 倍以上。
MongoDB 还自带了一个出色的分布式文件系统 GridFS,可以支持海量的数据存储。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中


功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似 json 的 bjson 格式,因此可以存储比较复杂的数据类型。
Mongo 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各种复杂的文件类型。我们称这种存储形式为 BSON
(Binary Serialized dOcument Format)。
MongoDB 把数据存储在文件中(默认路径为:/data/db),为提高效率使用内存映射文件进行管理。[12]

2.5Json

JSON 是JavaScript 对象表示法,其全称为JavaScript Object Notation。是一种轻量级的数据交换格式。
JSON 采用完全独立于语言的文本格式,是理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成。它独立于语言,具有自我描述性,更加易于理解。JSON使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言与平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 Javascript 程序能够使用内建的 eval()函数,用
JSON 数据来生成原生的 JavaScript 对象。

2.6本章小结

本章主要介绍了该系统在开发过程中使用的关键技术。系统主要采用 node.js 语言搭配 express 框架开发,部分功能用到 Java,还涉及了 Mongodb, JSON 等相关技术和方法。本章对这些技术的基本概念、使用场景进行了介绍。


3系统分析

本章主要进行该项目的可行性分析和需求分析,分为整体需求分析,功能性需求分析和非功能性需求分析几部分,阐述项目开发之前的主要工作。

3.1系统整体概述

本小节进行系统的整体概述,主要分为项目定位和用户定位两部分。

3.1.1项目定位

该项目是一款在浏览器端运行的应用 web 程序,开发目的是为了满足公司同学的就餐选择问题,主要功能是推荐分享美食。
总结来说,该程序是一个美食推荐类的社交服务系统。

3.1.2用户定位

为了让需求更加具体明确,可以被切实反映到用户的实际体验中。在经过调查研究和思考以后,项目所面向的用户群体被分类如下。
1.选择恐惧者:因为琳琅满目的选择而不知道从何下手,每天都在为去哪吃,吃什么而烦恼的选择恐惧者。
2.美食发现者:拥有发现美食的研究,却苦于无人同去的美食发现者。
3.美食分享者:热爱美食,热衷分享,却苦于没有分享途径的美食分享者。
4.美食制作者:可以制作精美菜肴,却苦于无法炫技的美食制作者。
5.团队组织者:热爱团体活动,期盼更多志同道合小伙伴的团队组织者。
6.TB 组织者:组织 TB 活动,却纠结到底去哪的 TB 组织者。
7.ES 工作者:热衷服务搜狗同学,却缺少推荐美食平台的 ES 工作者。

下载地址

点击此处→注册会员上传设计赚钱
以上是大纲和介绍,如需要完整的资料请在线购买.

软件评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论

下载说明

* 本站所有资料均已审核通过,内容原创保密,标准格式,质量保证
* 无需注册,点击在线购买后即可获取该套毕业设计(论文)完整
* 支付后请联系在线客服QQ:212181988发送资料
  • 官方微信