




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(九龙港(SNS)后台管理系统)(九龙港(SNS)后台管理系统)计算机网络技术计算机工程系计算机网络技术计算机工程系本人郑重声明:所呈交的毕业设计文本和成果,是本人在指导老师的指导下,独立进行研究所取得的成果。成果不存在知识产权争议,本毕业设计不含任何其他个人或集体已经发表过的作品和成果。本人完全意识到本声明的法律结果由本人承担。毕业设计者签名:摘要随着网络技术的不断发展,人们对于网络有了越来越多的要求;阿里巴巴、淘宝的出现,让电子商务重现曙光,google,baidu的出现,让人们通过网络进行信息检索,获取到有效信息的途径更加丰富。特别是几年来以68同城交友、人人网(校内网)、开心网、猫扑网为代表,拉近了人们的距离,丰富了人们沟通和交流。全称SocialNetworkSite,即“社交网站”或“社交网”。社会性网络(SocialNetworking)是指个人之间的关系网络,这种基于社会网络关系系统思想的网站就是社会性网络网站(SNS网站)。SNS的全称也可以是SocialNetworkingServices,即社会性网络服务,专指旨在帮助人们建立社会性网络的互联网应用服务;也指社会现有已成熟普及的信息载体,如短信SMS服务。严格讲,国内SNS并非社会性网络服务,而是SocialNetworkSites(即社交网站)。本次的项目的选题设计是基于学习、互动、分享社交,基于大众化的一个社交后台管理制作,在开发设计中,采用B/S(Browser/Server)结构,这种结构使得数据结果集合在浏览器中显示,数据的处理在服务器进行,用户只需要一个浏览器就可以遨游于社交网站了。数据库方面,使用业界具有常用的关系数据库管理系统Mysql,使系统安全性能更高。关键字:电子商务,社交网站,数据库管理,社会性网络服务AbstractWiththecontinuousdevelopmentofnetworktechnology.Peoplefornetworktherehasbeenincreasingrequirements.alibaba,taobaooccurrence,lettheelectroniccommercerecreateshuguang,Google,theemergenceofbaidu,letpeoplethroughthenetworkforinformationretrieval,obtaintheeffectivewaysofmoreabundantinformationrich.Whenwritingneon-smearedwhite-collarworkersworkafterthewholemorning.Enjoybiglunchbecomeakindofbasicneeds.Andoftheexistingonlinereservationsystemsaretoprovideuserswithlimitedfoodresources,theuser'soptionsarelimited.Inviewofthepresentnetworkroscoegatewaywebsitethislimitation,weputforwardandrealizedthisnetworkdesignroscoesystem.Thissystembelongstocommodityautomatedsystemforthemanagementofasubsystem,anditisalsoaseparatefunctionperfectsystem,thistopicisonlinemealmanagementsystemdevelopment,thispaperofsystemanalysisanddesignisrelativetothegeneralgroupsofpeople.Inthedevelopmentofdesign,adoptsB/S(isclicked/Server)structure,thiskindofstructureallowsdataonlyresultsetsintheBrowserdisplay,dataprocessinginServer,usersneednotinstallclient,andbecausebytheServerunifiedmanagementdata,easytoensuretheconsistencyofthedata.Database,recommendindustryoftheleadingrelationaldatabasemanagementsystem,thesystemsever2000MicrosoftSQLsafetyperformanceishigher.Keyword:OnlineshopingSocialNetworkSite,Mysql,SocialNetworkingServices目录TOC\o"1-3"\h\u32318摘要 I3934Abstract II10171第一章前言 第一章前言1.1课题的背景及意义随着Internet的普及,越来越多的BBS论坛和博客出现,发布最新动态信息,使用户进行交流和沟通更加便捷,丰富娱乐人们的上网空间和生活等。随着网络技术的不断发展。人们对于网络有了越来越多的要求.当当购书网,阿里巴巴,淘宝的出现,让电子商务重现曙光,google,baidu的出现,让人们通过网络进行信息检索,获取到有效信息的途径更加丰富。特别是几年来以58同城、人人网(校内网)、开心网、猫扑网为代表,拉近了人们的距离,丰富了人们沟通和交流。全称SocialNetworkSite,即“社交网站”或“社交网”。社会性网络(SocialNetworking)这种基于社会网络关系系统思想的网站就是社会性网络网站(SNS网站)。SNS的全称也可以是SocialNetworkingServices,即社会性网络服务,专指旨在帮助人们建立社会性网络的互联网应用服务。也指社会现有已成熟普及的信息载体,如短信SMS服务。严格讲,国内SNS并非社会性网络服务,而是SocialNetworkSites(即社交网站)。旨在基于学习、互动、分享社交,基于大众化的社交。在项目制作中采用的主要技术解决方案是基于服务器端的脚本语言PHP、开源数据库MYSQL,WEB服务器Apache,以及操作系统windows。PHP是PersonalHomePage的缩写,是由SunMicrosystems公司倡导、许多公司参与建立一种动态网页技术标准,它在动态网页的建设中有强大而特别的功能。PHP是一种服务器端HTML(或XML)嵌入PHP代码的脚本语言,是开发Web动态网站快速而有效的工具,PHP的技术的优势:1.PHP是开源语言,具有成本低的天然优势。2.可维护性。由于PHP技术是一种开放的、跨平台的结构,因此Web服务器、平台及其他组件能很容易升级或切换,且不会影响PHP基本的应用程序。3.产品的多样性。目前,在国内PHP还是一种较新的技术。但PHP+MYSQL+Apache目前已经成为开发电子商务平台的主流技术。随着国内与国际的接轨,PHP必将成为网站开发技术的首选。1.2课题分析我们这次的项目主要是制作一款软件,这款软件主要是开创了第二代陌生人交友软件的新模式,通过附近的约会和聚会做为兴趣的切入点,快速的建立附近人们之间的联系,拉近彼此的距离,找到相同的话题,能够达到“5分钟成功约会”的目的,被用户称为“约会软件”;是基于地理位置的陌生人约会交友应用,它每天可以帮助认识有趣的人和事,是身边丰富多彩的线下活动中心。同时,还可以发起希望组织的约会,邀请附近的陌生人参与,快速建立陌生人之间的友谊。1.3技术方案的选取1.3.1开发语言随着互联网技术的不断发展,基于浏览器/服务器(Browser/Server简称B/S)体系结构的应用程序得到了空前广泛的应用,在项目制作中所采用的主要开发语言是当前主流的基于服务器端的脚本语言PHP。1.3.2开发模式选择选择一种好的合适的开发方案和设计模式是至关重要的,不仅使开发的工作得以顺利进行,而且对后期的工作也有着莫大的帮助好处,设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。选择MVC的设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型(M)、视图(V)、控制器(C),它们各自处理自己的任务。
视图:视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括AdobeFlash和象XHTML,XML/XSL,WML等一些标识语言和Webservices。如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。
模型:模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusionComponents这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
控制器:控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。1.3.3数据库选择(1)MySQL是一种数据库管理系统数据库是数据的结构化集合。它可以是任何东西,从简单的购物清单到画展,或企业网络中的海量信息。要想将数据添加到数据库,或访问、处理计算机数据库中保存的数据,需要使用数据库管理系统,如MySQL服务器。计算机是处理大量数据的理想工具,因此,数据库管理系统在计算方面扮演着关键的中心角色,或是作为独立的实用工具,或是作为其他应用程序的组成部分。(2)MySQL是一种关联数据库管理系统关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大的仓库内。这样就增加了速度并提高了灵活性。MySQL的SQL指得是“结构化查询语言”。SQL是用于访问数据库的最常用标准化语言,它是由ANSI/ISOSQL标准定义的。我们采用术语“SQL标准”标示SQL标准的当前版本。(3)MySQL软件是一种开放源码软件“开放源码”意味着任何人都能使用和改变软件。任何人都能从Internet下载MySQL软件,而无需支付任何费用。MySQL服务器还有一套实用的特性集合,在基准测试主页上,给出了MySQL服务器和其他数据库管理器的比较结果。从以上几点可以看出mysql的优点所在:1.免费2.使用简单、方便3.究竟考验,稳定不易出错4.性能不比其他大型数据库差6.占用空间小。
第二章系统概述2.1系统需求分析社交网站无论是在是针对人们交友这个目的进行社交开发的。在开发一个局部功能模块时要充分考虑到局部模块功能和整个目标系统之间的相容性和完整性,总的设计目标是:总功能模块是建立在局部功能模块之中。这样利于今后整个系统的建立扩展。在具体的设计实现上我们围绕着交友互动的方式需求展开,即会员之间各种互动的方式作为局部的模块功能。分析总结出系统的所有功能模块需求。2.2功能需求分析用户是系统的最终使用者和评价者,所以在系统的开发设计的过程中,我们树立了从用户需求的寻求出发,面向用户,一切为了用户的观念,在分析与设计系统的前期,为了保证系统的功能的完善多次寻求周围同学和老师的意见,了解他们的要求,依照功能完善,界面美观,操作简单的原则进行设计1、操作简单、界面友好:布局设计美丽大方,使得信息显示模块、操作模块显而易见,许多选项包括好友管理操作,查询好友操作,好友关注操作等只需要点击鼠标就可以完成;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。对常见的类似网站的管理的各个方面:基本信息录入、浏览、删除、修改、搜索等方面都大体实现;2、即时可见:对于好友的“微博信息”的处理将立即在个人主页的对应栏目显示出来。对于个人的“留言”的信息的将立即在自己主页的对应栏目显示出来。对于个人的空间的“访问记录”的信息的将立即在自己主页的对应栏目显示出来。达到“即时发布、即时见效”的功能;3、系统运行应该快速、稳定、高效和可靠;4、在结构上应具有很好的可扩展性,便于将来的功能扩展和维护。2.3系统设计原则2.3.1开放系统系统设计开放系统是生产各种计算机产品普遍遵循的原则,遵循这种标准的产品都符合一些公共的、可以相互操作的标准,能够融洽的在一起工作。开放系统使得各种类型的网络和系统互连简单、标准统一,容易扩展升级。从而适应广大用户需求的多变性和产品的更新换代。2.3.2良好的用户操作界面用户操作界面美观、方便、实用,使用户能在较短的时间内掌握其使用方法。2.3.3实用性原则任何系统的设计都要考虑其实用性,系统开发的目的是为了提供众多的途径给用户交友,提供一个平台让用户在里面互相认识沟通,提高人们交友的交友质量,减轻用户的生活压力,给用户带来更多的乐趣。2.3.4工作平台设计原则能适应不同的操作平台,不同的网络。2.4系统体统结构分析随着互联网技术的不断发展,基于浏览器/服务器(Browser/Server简称B/S)体系结构的应用程序得到了空前广泛的应用。但是服务器之间的通讯,尤其是在不同平台上运行的服务器之间的通讯仍然不是一件容易的事情。因为大多数Internet应用程序都是以数据库为中心的,方便的访问多种数据源的能力也比以往任何时候都更加重要。2.4.1B/S结构B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3层结构。B/S结构利用不断成熟和普及的浏览器技术实现原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。这种结构更成为当今应用软件的首选体系结构,.net也是在这样一种背景下被提出来的架构,JAVA技术已经是很成熟的应用了。2.4.2B/S对比C/S的优越性C/S(Client/Server,客户端/服务器)是建立在局域网的基础上的,B/S是建立在广域网的基础上的。传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件,没能提供用户真正期望的开放环境;B/S结构则不同,它的前端是以TCP/IP协议为基础的,企业内的WWW服务器可以接受安装有Web浏览程序的Internet终端的访问,作为最终用户,只要通过Web浏览器,各种处理任务都可以调用系统资源来完成,这样大大简化了客户端,减轻了系统维护与升级的成本和工作量,降低了用户的总体拥有成本。总的来说,两者有如下差别:1.硬件环境不同C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务。B/S建立在广域网之上的,不必是专门的网络硬件环境,例如电话上网,租用设备,信息自己管理,有比C/S更强的适应范围,一般只要有操作系统和浏览器就行。2.对安全要求不同C/S一般面向相对固定的用户群,对信息安全的控制能力很强。一般高度机密的信息系统采用C/S结构适宜,可以通过B/S发布部分可公开信息。B/S建立在广域网之上,对安全的控制能力相对弱,面向是不可知的用户群。3.对程序架构不同C/S程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑。B/S对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上。4.软件重用不同C/S程序可以不可避免的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好。B/S对的多重结构,要求构件相对独立的功能。能够相对较好的重用。就如买来的餐桌可以再利用,而不是做在墙上的石头桌子。6.系统维护不同系统维护是软件生存周期中,开销大,相当重要C/S程序由于整体性,必须整体考察,处理出现的问题以及系统升级难,可能是再做一个全新的系统。B/S构件组成方面构件个别的更换,实现系统的无缝升级。系统维护开销减到最小,用户从网上自己下载安装就可以实现升级。6.处理问题不同C/S程序可以处理用户面固定,并且在相同区域,安全要求高的需求,与操作系统相关,应该都是相同的系统。B/S建立在广域网上,面向不同的用户群,分散地域,这是C/S无法作到的,与操作系统平台关系最小。7.用户接口不同C/S多是建立在Window平台上,表现方法有限,对程序员普遍要求较高。B/S建立在浏览器上,有更加丰富和生动的表现方式与用户交流,并且大部分难度减低,降低开发成本。8.信息流不同C/S程序一般是典型的中央集权的机械式处理,交互性相对低。B/S信息流向可变化。9.成本降低,选择更多软件系统的改进和升级越来越频繁,B/S架构的产品明显体现的更方便的特性。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行,如果是异地只需要把服务器连接上网即可立即进行维护和升级,这对人力、时间、费用的节省是相当惊人的。传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,这么高的代价和低效率已经越来越不适应了。10.面向电子商务时代的技术将来所有的应用系统几乎都在互联网上运行,企业发展电子商务也是不可避免的,而B/S架构的软件则代表了将来的技术,只要连上互联网或内部广域网就可以与全球的客户相连,与各地的分支机构相连。2.5操作可行性分析可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决,必须记住,可行性研究的目的不是解决问题,而是确定问题是否值得去解。如何达到这样的目的?当然不能靠主观的猜想,应当进行客观分析。同时必须分析几种主要的可能解法的利弊,从而判断原定的系统目标和规模是否能实现,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。因此,可行性研究的实质是要进行一次大大压缩简化了的系统分析和设计的过程。首先需要进一步分析和澄清问题定义。在问题定义阶段初步确定设计的规模和目标,如果是正确的就进一步加以肯定,如果有错误就应该及时改正,如果对目标系统有任何约束和限制,也必须把他们清楚的一一列举出来。此社交网站具备友好的用户界面,使用方便、快捷,操作简单且易于维护,易于被用户接受,用户只需熟练操作计算机,和对此系统使用做简单的了解即可方便使用,而且使用此系统可以大大促进人们之间的交流和沟通,从操作方面看,此系统的开发是可行的。2.6系统运行2.6.1软件运行环境(1)服务器端:操作系统:Windows7操作系统数据库:MySQLServer数据库工具:mysql开发工具:UPUPWPHP(2)客户端:IE浏览器。2.6.2UPUPWPHP使用说明UPUPWPHP环境集成包是目前Windows平台下最具特色Web服务器PHP套件。包括以Apache,Nginx和Kangle为核心的三个版本,其中Kangle版支持IOCP工作模型,完美解决现今HTTP服务器软件在Win平台的软肋,更适应Win服务器的高效生产工作!UPUPWPHP套件省去了搭建Web服务器网站运行环境的复杂程序,一个压缩包解压到任意非中文目录即可运行。适用于VPS、云主机、服务器架设网站,也适用于本地开发和测试Discuz/phpwind/dedecms/wordpress等PHP程序。绿色,安全,稳定,高速!UPUPWPHP套件无需安装,不写入任何注册表信息,下载集成包解压即用,启动UPUPW控制面板后可运行Apache/Nginx/Kangle、PHP、MySQL等系统服务。主要组成部分:Apache/Nginx/Kangle+PHP+MySQL+phpMyAdmin+Xdebug+oAuth+XCache+Wincache+APC+eAccelerator+Memcached+FileZilla_server+ionCubeLoader+ZendGuardLoader/Optimizer。UPUPWPHP套件省去了您搭建PHP服务器环境的复杂程序,下载解压到装有任意Windows系统电脑的非中文目录即可运行。绿色、安全、稳定、高速!UPUPWPHP环境集成包Apache最新版全程采用Discuz!X3.1phpwind9.0dedecms6.7wordpress3.6等程序的UTF8版作为PHP环境的测试对象进行开发,完美运行以上程序!UPUPWPHP环境集成包可运行于任意版本任何架构的Windows系统之上(WindowsServer2003/2008/2012;XP/Vista/Win7/Win8.1;32/64位);UPUPWPHP环境集成包完全兼容IIS,独具代理虚拟主机功能,可与IIS相辅相成并驾齐驱;UPUPWPHP环境集成包绿色免费,解压即用,无拘无束,无需卸载,退出即无痕;UPUPWPHP环境集成包支持虚拟主机可在任意磁盘建立目录,并且每个目录可单独绑定多级域名或泛域名;UPUPWPHP环境集成包完全同步于Apache/Nginx/Kangle,PHP,MySQL的官方更新,前沿体验,一键即达。UPUPWPHP套件无需安装,完美支持打包移植或备份,支持U盘运行,随时部署一键即可。解压upupw文件夹到任意不含空格的非中文路径下-打开UPUPW面板s1-把PHP程序拷贝到htdocs目录-浏览器输入即可运行网站。2.6.3安装UPUPW1、从官网下载程序到本地硬盘2、把压缩包内UPUPW文件夹解压到不含中文和空格的任意盘符目录3、打开UPUPW文件夹,双击UPUPW图标启动UPUPW控制面板4、输入s1启动全部服务,也可根据面板图示选择其它相关功能A)启动时如有防火墙拦截提示请点击允许,如提示端口被占用请关闭相应端口占用程序后重试。B)htdocs文件夹为默认网站的主目录,在没有建立虚拟主机目录的情况下可以把网站放htdocs目录下运行。C)vhosts为虚拟主机默认存储目录,建立在此目录的网站文件夹在UPUPW迁移时无需再修改虚拟主机路径,UPUPW面板s1开启即可运行。6、打开浏览器,在地址栏输入或localhost如出现UPUPWPHP探针的页面则说明启动成功!备注:phpmyadmin的访问地址是/pmd或者http://域名:pmd2.6.4UPUPW集成包目录说明01、UPUPW.exeUPUPW控制面板主程序02、Apache2Apacheweb服务器软件目录02、BackupUPUPW配置备份及出厂配置目录03、FileZillaftpFileZillaserverftp程序目录04、htdocsUPUPW默认网站主机目录,UPUPW迁移时无需修改配置路径,面板s1开启即可运行07、memcachedmemcache服务端主程序目录08、MySQLMySQL数据库程序目录09、PHP6PHP6.3.28版目录10、phpmyadminphpmyadmin数据库管理软件目录,已配置别名解析11、sendmailsendmail邮件服务程序目录12、temptemp目录为session文件存储、临时上传文件、数据缓存目录13、upcoreupcore为UPUPW程序的附属目录14、vhostsvhosts为虚拟主机默认存储目录,建立在此目录的网站文件夹在UPUPW迁移时无需再修改虚拟主机路径,UPUPW面板s1开启即可运行16、xdebugxdebug文件夹为xdebug调试程序输出文件目录16、必装运行库此文件夹为运行UPUPW所需的全部运行库文件,如果你电脑中没有对应的运行库,请开启UPUPW前安装upupw\Apache2\logs环境及网站日志文件目录upupw\MySQL\dataMySQL数据库存储目录upupw\Apache2\conf\httpd-vhosts.conf虚拟主机配置文件upupw\PHP6\php.iniPHP配置文件upupw\MySQL\my.iniMySQL配置文件upupw\sendmail\sendmail.iniSendMail配置文件memcached://:11211MemCache配置地址及端口
第三章系统总体设计3.1系统流程分析3.1.1面向用户的观点社交网站是为广大用户开发研制的,用户是系统的最终使用者和评价者,所以在网络通信系统的开发设计的过程中,我们树立了从用户的寻求出发,面向用户,一切为了用户的观念,在分析与设计系统的前期,为了保证系统的功能的完善多次寻求周围同学和老师的意见,了解他们的要求,依照功能完善,界面美观,操作简单的原则进行设计。3.1.2规划过程系统的开发设计是一项较大的工程,所以应该将整个系统的开发设计过程划分为若干阶段,相应的阶段又要分为若干个不同的步骤,每个阶段和步骤都要有明确的工作任务和目标。这种有序的组织安排,条例清楚、层次分明,便于计划的制定和控制,且为后续工作的进行奠定了坚实的基础,提高了工作效率和质量。3.1.3系统观点在系统分析阶段,在对原系统进行全面调查和分析的基础上,构造系统的最佳逻辑模型,使用户对将来完整系统的轮廓有个初步的了解和认识,以便及时和用户进行交流和探讨,不断提高系统的完善性。在此基础上进行系统的物理实现和设计,切实完成逻辑模型的具体功能。逻辑设计和物理实现二者是相辅相成、密不可分的,这样使系统的设计更加稳妥合理。3.1.4开发环境WAMP是基于Windows,Apache,MySQL和PHP的开放资源网络开发平台。这个术语来自欧洲,在那里这些程序常用来作为一种标准开发环境。名字来源于每个程序的第一个字母。每个程序在所有权里都符合开放源代码标准:Linux是开放系统;Apache是最通用的网络服务器;MySQL是带有基于网络管理附加工具的关系数据库;PHP是流行的对象脚本语言,它包含了多数其它语言的优秀特征来使得它的网络开发更加有效。开发者在Windows操作系统下使用这些Windows环境里的工具称为使用WAMP。
虽然这些开放源代码程序本身并不是专门设计成同另外几个程序一起工作的,但由于它们都是影响较大的开源软件,拥有很多共同特点,这就导致了这些组件经常在一起使用。在过去的几年里,这些组件的兼容性不断完善,在一起的应用情形变得更加普遍。并且它们为了改善不同组件之间的协作,已经创建了某些扩展功能。3.2系统总体结构3.2.1结构目录社交网站系统的模型结构如下图所示:目录/文件说明ThinkPHP.php框架入口文件Common框架公共文件目录Conf框架配置文件目录Lang框架系统语言目录Lib系统核心基类库目录Tpl系统模板目录Extend框架扩展目录(关于扩展目录的详细信息请参考后面的扩展章节)图3.3.1从前面的需求分析中得知,有两种角色,可以将功能分为会员的功能模块和好友的功能两大模块,因此设计模块的思路也分为两大类:会员模块和好友模块。3.2.2系统功能模块下图为系统模块总图:九龙(SNS)网站模块功能图九龙(SNS)网站模块功能图首页模块用户管理模块好友关系模块朋友圈空间模块背景管理模块礼品列表模块徽章管理模块群组管理模块活动管理模块查找模块游戏管理模块空间访问模块图系统代码目录设计说明
代码目录:每个功能的模块的代码都放在同一个包中,这样使代码更加的清晰和维护修改方便。Controller包是存放控制层的代码。ActivitiesController.class、BackgroundController.class、ComplaninController.class、FcircleController.class、FriendsController.class、GameController.class、GiftController.class、GroupController.class、ImageController.class、UserController.class这些包都是单独的一个功能包。所有处理这些模块的代码都是位于命名相关的保内。Conf是放置数据访问层的代码,所有直接相关操作数据库的代码都是放置这个包内。Model是放置实体类和和映射数据库*hbm.xml的配置文件View是放置Activities、Background、Complanin、Fcircle、Friends、Game、Gift、Group、Group、Image、User各模块的HTML页面。图3.3.3
第四章系统数据库设计4.1数据库用户表用户表(member_user):用户登录是需要用户名和密码,所以用户数据表中必须包含用户名(name)、密码(password)两个信息,还有些其他的用户信息,比如photoUrl指的是用户头像地址。从功能上数据库表设计如表4.1。表4.1用户表:member_user列名数据类型是否空备注idintnotnull主键,自动生成passwordvarchar(100)notnull登陆密码emailvarchar(46)notnull,unique邮箱uservarchar(20)notnull,unique用户号,系统生成user_namevarchar(100)notnull会员昵称birthdayvarchar(20)notnull生日时间戳agevarchar(3)notnull年龄gendervarchar(1)notnull1男,2女head_imagevarchar(266)null头像图片路径occupationvarchar(100)null职业signaturevarchar(600)null签名interestvarchar(100)null兴趣爱好companyvarchar(266)null公司schoolvarchar(46)null学校hauntvarchar(266)null经常出没的地方explainvarchar(600)null个人说明truetimevarchar(20)notnull注册时间charmvarchar(266)notnull魅力值experiencevarchar(266)notnull经验值user_titlevarchar(100)notnull用户称号,授予勋章levelvarchar(266)notnull用户级别gold_coinintnotnull用户金币space_backgroundvarchar(266)notnull4.2数据库活动表表4.2活动列表—activities列名数据类型是否空备注列名idintnotnull主键,自动生成iduser_idintnotnull活动发起人id,member_user外键user_idactivities_titlevarchar(200)notnull活动标题activities_titleactivities_typevarchar(2)notnull活动类型1(2人聚会),2(多人聚会),3(威客任务)activities_typeactivities_costvarchar(2)notnull费用1(我买单),2(你请客),3(AA制),4无activities_costactivities_timevarchar(20)notnull活动时间,时间戳类型activities_time4.3数据库好友表好友表:(friend):好友表的一些相关信息,如好友表ID,此ID和是系统自动生成的;用户Id(UserId)关联用户表User表的ID;好友Id(friendId);好友请求(request);请求信息(message)等,具体描述表4.3表4.3好友表—friend字段名称数据类型可否为空约束条件说明idIntNOTNULL主健、自增好友表IDuserIdIntNotnull外键用户idfriendIdIntNOTNULL无好友idrequestChar(4)NOTNULL无好友请求状态(0—请求中,1—请求允许,2—请求拒绝)messeageChar(226)Notnull无好友请求信息4.4数据库朋友圈表朋友圈(friends_circle):如表4.4所示:表4.4朋友圈—friends_circle列名数据类型是否空备注列名idintnotnull主键,自动生成iduser_idvarchar(266)notnull用户id,memberuser表外键user_idimage1varchar(266)null朋友圈图片image1image2varchar(266)null朋友圈图片image2列名数据类型是否空备注列名idintnotnull主键,自动生成iduser_idintnotnull用户id,member_userid外键user_idcircel_idintnotnull朋友圈id,friends_circleid外键circel_idreview_textvarchar(600)notnull评论内容review_textreplyintnotnull回复,绑定当前表id字段,不回复字段为0replytruetimevarchar(20)notnull发布时间truetime4.6数据库礼品表礼品分类表(gift_type):如表4.6所示表4.6礼品分类表—gift_type列名数据类型是否空备注列名idintnotnull主键,自动生成idgift_namevarchar(266)notnull礼品名称gift_namegift_imagevarchar(266)notnull礼品图片gift_imageuser_idvarchar(266)notnull用户表id,外键user_idgift_idvarchar(266)notnull礼品表id,外键gift_idgift_numvarchar(200)notnull礼品数量gift_numtruetimevarchar(20)notnull购买礼品时间truetime
第五章软件运行测试报告5.1软件说明[1]是基于地理位置的陌生人约会交友应用,它每天可以帮助认识有趣的人和事,是身边丰富多彩的线下活动中心。同时,还可以发起希望组织的约会,邀请附近的陌生人参与,快速建立陌生人之间的友谊。[2]我们的这款软件开创了第二代陌生人交友软件的新模式,通过附近的约会和聚会做为兴趣的切入点,快速的建立附近人们之间的联系,拉近彼此的距离,找到相同的话题,能够达到“6分钟成功约会”的目的,被用户称为“约会软件”。1.丰富的群聊功能。2.有趣的聚会活动。3.精彩的小游戏PK。4.寻找你感兴趣的那个TA。5.2特色功能1、寻找附近的约会、活动:无论喜欢K歌、跳舞、打麻将还是打球、游泳、钓鱼、郊游,都可以打开我们的这款软件,通过附近的活动来查找有无感兴趣的,快速查找并加入感兴趣的活动,找到附近以及邻居中兴趣相同的人。2、基于现在的地理位置发起活动:如果发现身边没有感兴趣的活动时,可以随时发起一个感兴趣的活动,等待附近的人或邻居们的报名。3、微动态及时了解你关注的用户所有动态,女神一切尽在掌握,增加互动话题和提高交友成功率。4、我们的这款软件悬赏任务帮助玩家不用花钱一样做土豪,找到被美女搭讪的感觉。6、独有礼物系统:受欢迎的用户可以收到很多的礼物,礼物可以增加魅力值。6、个人资料:个人资料页独有的空间背景彰显每一个人的尊贵以及品位,更重要的是,在其他软件都是收费用户才可以享受的功能,在我们的这款软件里面这项功能是免费提供给所有用户的,以体现对于每一个位用户的体贴关怀。7、多媒体聊天:语音短信,对讲机,发文字、图片等功能一个都不能收,聊天记录随时保存快速查看历史记录,手机拍照即时发送。5.3使用场景1、当你在家的时候,可以发起一个活动或者聚会来认识身边的邻居,或者约几个和你兴趣相同的朋友(踢足球,看电影,打麻将,一起K歌)2、当你外出的时候,可以通过我们的这款软件发起一个活动,认识身边心仪的TA3、当你出差旅行时,可以通过我们的这款软件发起一个约会,找到异地同样寂寞的TA4、当你依然单身时,可以通过我们的这款软件发起一个约会,找到你的另一个TA5.4软件特色用户只需要下载我们的apk包致手机内进行安装,成功安装好后,登陆进去第一步注册自己的新帐号,用户都有自己的个人空间,同时可以浏览其他用户的个人空间,进行一系列的交友互动操作,简单易用,界面友好,用户之间交互的信息及时,信息的显示完整。最大的程度地让用户感受到系统的可靠性良好、交互性好和操作性能好,第六章程序运行6.1乱码处理问题及解决在刚开始运行的程序中,很多汉字都是乱码,不能正常显示,解决这一问题的传统做法是在网页中应该统一网页的字符编码统一设置为“utf-8”:<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>或者在PHP页面内嵌入:mysql_query("setnamesutf8");6.2软件系统不足1、系统有些细节方面还有待于完善。系统的各个运行界面应该更加美观。网站访客顺序没有在时间上排序,页面内容的排版不够大方有待进一步的改进,尽量做到风格的统一。2、功能的需求还有待进一步的发掘,现在这种社交网站已经不仅仅只是能上网通信交流这样简单了,日后,社交网站的发展趋势,更要集合网络电视电台,邮件的收发,新闻杂志的浏览,视频传输,音频聊天等等功能。3、系统对网络通信安全方面的设计不足。用户和密码的信息都是明文,没有进行进一步的加密保存到数据库中,有待进一步的加强用户信息的安全性。4、在速度性能方面,网络通信系统提出了更高的要求。在多用户并发访问的清考下,要求能够实现无堵塞的,顺畅的数据读写。在面对几百个甚至更多的用户客户端同时发出连接信息的情况下,服务器要求能够保持高性能的并发处理机制,迅速的完成并发请求的处理和发送任务。本系统在这速度性能方面有待于改进。6、操作的界面还需要进一步的加强以至提高用户体验。基于以上的不足,系统还有待于进一步的完善,还要深入学习ThinkPHP编程技术和掌握好网页设计、JavaScriptcss样式表和html等技术,才能够做出精美的画面,更加稳定功能强大的系统。所以要不断学习更多优秀的编程技巧和开源框架精髓,不断去完善自己的系统。
附录:1首页登陆模块客户端在登录窗口输入登录号码和登录密码,点击“登录”按钮。客户端发送“Admin”请求,表示需要登录,连接服务器。服务器接收到客户端发送过来的账号和密码信息后,业务逻辑层Service比较输入的用户名和密码和数据库中信息是否相符,如果相符则表示登录成功,并封装好跟踪用户的信息转入社交网站的个人主页。否则,则出现信息出错提示框:输入用户名和密码登陆输入用户名和密码登陆验证进入社交网站验证通过验证失败图.1.1登陆模块第一次登陆要求输入用户名和密码:<?phpnamespaceHome\Controller;useThink\Controller;classIndexControllerextendsController{ publicfunction_initialize(){ if($_SESSION['user']==''){ //$this->redirect('/Login/login'); } }publicfunctionindex(){ $this->display();}}namespaceHome\Controller;useThink\Controller;classGameControllerextendsController{ publicfunction_initialize(){ if($_SESSION['user']==''){ $this->error('您还没有登录,请登录!',U('Login/Index')); } } //检测是否登录 登陆成功:登陆成功进入个人中心模块:运行效果图:图.1.2用户登录如果登陆成功:如果登陆失败:提示用户名或密码错误。2用户管理模块// 用户管理 publicfunctionlists(){ if($_POST['user']!=''){ $where['user'] =array('eq',$_POST['user']); } if($_GET['user']!=''){ $where['user'] =array('eq',$_GET['user']); } if($_POST['email']!=''){ $where['email'] =array('eq',$_POST['email']); } if($_GET['email']!=''){ $where['email'] =array('eq',$_GET['email']); } if($_POST['gender']!=0){ $where['gender'] =array('eq',$_POST['gender']); } if($_GET['gender']!=0){ $where['gender'] =array('eq',$_GET['gender']); } $count =M('member_user')->where($where)->count(); $Page =new\Think\Page($count,10); $list =M('member_user')->where($where)->order('iddesc')->limit($>firstRow.','.$>listRows)->select(); foreach($whereas$key=>$val){ $>parameter[$key]=$val['1']; } $show =$>show(); $this->assign('list',$list); $this->assign('page',$show); $this->display(); } publicfunctionedit(){ $where['id'] =array('eq',$_GET['id']); $list =M('member_user')->where($where)->find(); if($list['gender']=='1'){ $list['gender']="男"; }else{ $list['gender']="女"; } unset($where); $where['user_id'] =array('eq',$_GET['id']); $img =M('member_head_image')->where($where)->select(); unset($where); $list1 =M('member_head_image')->where("user_id=$_GET[id]andsoft=$list[head_image]")->find(); $this->assign('list1',$list1); $this->assign('list',$list); $this->assign('img',$img); $this->display(); }图:2.1用户管理模块3好友关系模块<?phpnamespaceHome\Controller;useThink\Controller;classFriendsControllerextendsController{ publicfunction_initialize(){ if($_SESSION['user']==''){ //$this->redirect('/Login/login'); } }publicfunctionLists(){if($_GET['p']!=''){$_POST=$_GET;}if($_POST['user']!=''){$where['user']=array('like','%'.$_POST['user'].'%');}if($_POST['email']!=''){$where['email']=array('like','%'.$_POST['email'].'%');}if($_POST['gender']!=0){$where['gender']=array('eq',$_POST['gender']);}$count=M('friends_list')->where($where)->count();$Page=new\Think\Page($count,20); $list=M('member_user')->where($where)->order('iddesc')->limit($>firstRow.','.$>listRows)->select();$show=$>show();$this->assign('list',$list);$this->assign('page',$show);$this->display();}$where['user']=array('eq',$_GET['user']);$user_firend=M("friends_list")->where($where)->getField("friends_user");if($user_firend!=''){$list=explode("|",$user_firend);$db=M("member_user");for($i=0;$i<count($list);$i++){$row[$i]=$db->where("user=".$list[$i])->find();}}图:3.1好友关系模块4群组管理模块namespaceHome\Controller;useThink\Controller;classGroupControllerextendsController{GroupController.class.php publicfunction_initialize(){ if($_SESSION['user']==''){ } }publicfunctionLists(){if($_GET['p']!=''){$_POST=$_GET;}if($_POST['user']!=''){$where['user']=array('like','%'.$_POST['user'].'%');}if($_POST['email']!=''){$where['email']=array('like','%'.$_POST['email'].'%');}if($_POST['gender']!=0){$where['gender']=array('eq',$_POST['gender']);}$count=M('member_user')->where($where)->count();$Page=new\Think\Page($count,10);$list=M('member_user')->where($where)->order('iddesc')->limit($>firstRow.','.$>listRows)->select();foreach($whereas$key=>$val){$>parameter[$key]=$val['1'];}$show=$>show();$this->assign('list',$list);$this->assign('page',$show);$this->display();}图:3.1群组管理模块5活动管理模块<?phpnamespaceHome\Controller;useThink\Controller;classActivitiesControllerextendsController{//活动管理ActivitiesController.class.php//——活动列表(删除活动)Lists() publicfunction_initialize(){ if($_SESSION[user]==''){ //$this->redirect('/Login/login'); } }//——活动列表(删除活动)Lists() publicfunctionLists(){ $db=M("activities"); $count=M("activities")->where($where)->count(); $page=new\Think\Page($count,6); $show=$>show(); $ret=$db->limit($>firstRow.",".$>listRows)->order("iddesc")->select(); $i=0; foreach($retas$value){ unset($where); $where['id']=array('eq',$value['user_id']); $ls=M('member_user')->where($where)->find(); $ret[$i]['user']=$ls['user']; unset($where); $where['activities_id']=array('eq',$value['id']); $ret[$i]['count']=M('activ_review')->where($where)->count(); $i++; $time=date("Y-m-d"); $i=0; foreach($retas$value){ if($value['activities_time']>$time){ $ret[$i]['stat']="进行"; }else{ $ret[$i]['stat']="过期"; } $i++; }//状态 $this->assign("page",$show); $this->assign('list',$ret); $this->display(); }//————删除活动DeleteActivities() publicfunctionDeleteActivities(){ $db=M("activ_review"); $where['id']=array('eq',$_REQUEST['id']); if($db->where($where)->delete()){ $this->success('删除成功'); }else { $this->error('删除失败',U('Activities/lists')); } } publicfunctionDeleteComment(){ $db=M("activ_review"); $where['id']=array('eq',$_REQUEST['id']); if($db->where($where)->delete()){ $this->success('删除成功'); }else { $this->error('删除失败',U('Activities/lists')); } } }图:5.1活动管理模块6.朋友圈模块namespaceHome\Controller;useThink\Controller;classFriendsControllerextendsController{ publicfunction_initialize(){ if($_SESSION['user']==''){ //$this->redirect('/Login/login'); } }publicfunctionLists(){if($_GET['p']!=''){$_POST=$_GET;}if($_POST['user']!=''){$where['user']=array('like','%'.$_POST['user'].'%');}if($_POST['email']!=''){$where['email']=array('like','%'.$_POST['email'].'%');}if($_POST['gender']!=0){$where['gender']=array('eq',$_POST['gender']);}$count=M('friends_list')->where($where)->count();$Page=new\Think\Page($count,20); $list=M('member_user')->where($where)->order('iddesc')->limit($>firstRow.','.$>listRows)->select();$show=$>show();$this->assign('list',$list);$this->assign('page',$show);$this->display();$where['user']=array('eq',$_GET['user']);$user_firend=M("friends_list")->where($where)->getField("friends_user");if($user_firend!=''){$list=explode("|",$user_firend);$db=M("member_user");for($i=0;$i<count($list);$i++){$row[$i]=$db->where("user=".$list[$i])->find();}}图:6.1朋友圈模块7.背景管理模块<?phpnamespaceHome\Controller;useThink\Controller;classFcircleControllerextendsController{ publicfunction_initialize(){ if($_SESSION['user']==''){ //$this->redirect('/Login/login'); } } publicfunctionUser_lists() { if($_POST['user']!=''){$where['user']=array('eq',$_POST['user']);}i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天府新区航空职业学院《企业文化与团队建设》2023-2024学年第二学期期末试卷
- 南京工业大学《电路与模拟电子技术C》2023-2024学年第二学期期末试卷
- 邵阳职业技术学院《藏族文学概论》2023-2024学年第一学期期末试卷
- 山东科技职业学院《教育写作》2023-2024学年第二学期期末试卷
- 丽水学院《四史》2023-2024学年第一学期期末试卷
- 梧州职业学院《生物医学检测技术》2023-2024学年第一学期期末试卷
- 阳泉职业技术学院《法语语音》2023-2024学年第一学期期末试卷
- 郑州升达经贸管理学院《健身与指导》2023-2024学年第二学期期末试卷
- 配电箱供货合同
- 养鸡场地出租合同
- 2025年湖北省荆楚联盟初中学业水平考试(一)历史试题(原卷版+解析版)
- 2024年河南高职单招职测模拟题库及答案解析(共100道试题)
- 电缆桥架国标10216-2013
- 2025年郑州卫生健康职业学院单招职业倾向性测试题库含答案
- 肿瘤预防宣传
- 管理学基础-形考任务一-国开-参考资料
- 体育体感游戏创业计划
- 部编人教版道德与法治6年级下册全册课时练习讲解课件
- 2025年湖北三江航天江河化工科技限公司招聘高频重点模拟试卷提升(共500题附带答案详解)
- 法律实务案例分析卷集及参考答案解析
- 小学生风电知识科普课件
评论
0/150
提交评论