1、应用程序综合实践- I -摘要食谱分享网站已经出现在互联网中了。食品是也一个最流行的互联网搜索类别。大部分这些网站都有专家为他们编辑内容。在这个项目中,我们将开发的网站具有更加个性化的功能。业余用户可以将他们的食谱上传到网站上以便和其他网友共享,共享的食谱可以在不同的社交网站转载。我们的目标是创建一个非常基本的社会网站,用户可以注册和创建他们的食谱,其他用户可以筛选不同类型的食谱来阅读。用户体验是整个项目的一个重要组成部分。他们可以影响项目开发的方向,从长远来看,这是一个很重要的因素。一旦确定开发计划,即确定了我们将如何与用户进行交互以及所需的应用功能。我们把这作为一个参考,而编码容易得多。一
2、个好的规划会很好地帮助我们节省时间。本文首先对用户访问网站时的各个阶段进行分析,创建一个有许多用户可以注册,登录,创建食谱,并分类成不同的类型社会化食谱网站。以 Linux 为网络操作系统,以 ROR(Ruby on Rails)框架技术为支撑。该社会化食谱分享网在本文中得到实现的主要功能模块包括:用户管理模块。上传管理模块,食谱管理模块等。关键字:食谱分享网,ROR,用户管理模块。基于 Ruby On Rails 的社会化食谱分享网的开发- II -目录摘要 .I目录 .II引言 .1第一章 绪论 .11.1 背景与意义 .11.2 国内外食谱网站现状及分析 .11.3 研究内容及本文结构
3、.2第二章 基于 Ruby On Rails 的社会化食谱分享网的开发总体分析与设计 .32.1 基于 Ruby On Rails 的社会化食谱分享网设计目标 .32.2 基于 Ruby On Rails 的社会化食谱分享网功能需求分析 .32.2.1 管理员功能需求分析 .32.2.2 注册用户的功能需求分析 .42.2.3 基于 Ruby On Rails 的社会化食谱分享网性能需求分析 .52.3 可行性分析 .52.3.1 经济可行性 .52.3.2 技术可行性 .52.3.3 用户可行性 .52.4 基于 Ruby On Rails 的社会化食谱分享网总体功能设计 .52.4.1 基
4、于 Ruby On Rails 的社会化食谱分享网总体功能及其结构 .52.4.2 食谱分享网系统总体业务流程 .62.5 食谱分享网开发系统结构设计 .7第三章 食谱分享网详细分析与设计 .93.1 食谱分享网模块的详细分析与设计 .93.1.1 用户前台模块 .93.1.2 管理员后台模块 .93.2 数据库设计 .103.2.1 用户前台模块 .103.2.2 食谱分享网系统关键数据表 .11第四章 基于 Ruby On Rails 的社会化食谱分享网实现 .144.1 系统开发环境与开发工具 .144.2 ROR(Ruby on Rails)框架 .144.3 相关代码 .144.3.
5、1 添加的实现 .14应用程序综合实践- III -4.3.2 删除的实现 .174.3.3 修改的实现 .174.3.4 查询的实现 .18第五章 食谱分享网运行实例 .205.1 添加食谱界面 .205.2 修改食谱界面 .205.3 删除食谱界面 .215.4 查询食谱界面 .22第六章 总结和展望 .23参考文献 .24应用程序综合实践- 1 -引言Internet 的普及和应用使人们的现代生活方式发生了深刻的变化,各种行业也加快了信息化进程信息时代,人们的生活节奏在加快,在精神享受提升的同时更多人关注物质享受。美食成为更多人的追求,千金易得,美食难求。人们对食物的需求已经不再是解决温
6、饱这一概念。味美的食物不仅能让人带去口感上的满足,更让人的精神得以升华。而社会化食谱网站也将极大的方便了人们的日常需要。第一章 绪论本章对系统的研究背景、意义、现状、研究内容进行了阐述,重点叙述了作者的研究内容和所做的主要工作。1.1 背景与意义饮食的重要性是不言而喻的,它是人类的生存之本。食谱分享网站对方便用户查询菜谱信息非常重要。本论文针对当今时代越来越多的人面对“这顿吃啥”的问题进行了研究,在食谱检索系统上优化了菜谱检索网站的一些功能。对解决当今人们不知道“这顿吃啥”的问题具有重要的意义。“民以食为天” ,中国有五千多年的历史,饮食文化非常发达。伴随着生活节奏的加快和网络的发展已经很少有
7、人去查阅纸质的菜谱书籍。随便往搜索引擎中输入一个菜谱名并会出现很多跟这个菜谱名相关的信息。然而,这些信息大部分都不是用户想要的。在这个背景下,出现了很多菜谱搜索网站,然而这些网站只能满足有比较明确的搜索目标的用户。那些搜索目标不明确的用户可能花费很长时间都找不到自己想要的结果。1.2 国内外食谱网站现状及分析1、食谱网 http:/ 特点是食谱多,做美食视频多,寻找方便!最喜欢的是它的每个食谱都和视频结合起来的(如果有相关视频的话),同时还有相关的食谱,视频食谱一个页面就找到了,真是方便啊不需要东找西找了哈哈 2、贝太厨房 http:/ ,资料超多,烘烤类美食是她的强项,人气也很旺。3、大洋美
8、食 http:/ http:/ http:/ 02 年建的站,里面的各种菜系的制作方法还比较全面,还有杂谈,营养指南等。6、POCP 中国美食网 基于 Ruby On Rails 的社会化食谱分享网的开发- 2 -http:/ 有着强大的用户群,所以这个网站的用户活跃度是比较高的 ,有很多比较好的文章,而且它有个各地的分站,介绍各地的美食也比较方便。7、CCTV 天天饮食 http:/ 这里可以看 CCTV 的天天饮食节目的视频。8、39 健康网美食频道 http:/ 的优势就在于两个字,就是健康,这里有各种各样的食品的营养搭配,功效,包括果蔬,鱼鲜,禽肉等等,还介绍每天的食品搭配方法,怎么样
9、吃东西才能更健康都有很多比较好的文章。向健 9、今日美食 http:/ 台湾的老牌美食网站。1.3 研究内容及本文结构第一章 介绍了对系统的研究背景和目的、研究现状和内容进行了阐述,重点叙述了作者的研究内容和所做的主要工作。第二章 介绍了社会化食谱分享网站的设计目标,重点强调了该系统的功能需求,并对系统进行了可行性分析,根据需求分析设计了系统的总体功能模块,并指出了系统的业务流程,设计了系统的体系结构。第三章 对社会化食谱分享网站模块进行了详细分析和设计。根据体系结构设计了系统的包结构并描述了各个包的内容和作用。设计了社会化食谱分享网站的用力实现,描述了各个系统内部各个对象间的调用顺序。对社会
10、化食谱分享网站的数据库进行了设计,给出了实体关系图和关键数据表。第四章 介绍了社会化食谱分享网站实现的关键算法,主要技术,包括系统开发关工具、开发环境和开发语言。第五章 主要展示了社会化食谱分享网站的最终成果,介绍了系统核心功能和流程的界面。第六章 对毕业设计进行了总结,叙述了毕业设计当中遇到的主要问题和解决途径,并对后续工作进行了展望。应用程序综合实践- 3 -第二章 基于 Ruby On Rails 的社会化食谱分享网的开发总体分析与设计本章首先介绍了社会化食谱分享网站的设计目标,重点强调了该系统的功能需求,并对系统进行了可行性分析,根据需求分析设计了系统的总体功能模块,并指出了系统的业务
11、流程,设计了系统的体系结构。2.1 基于 Ruby On Rails 的社会化食谱分享网设计目标本系统的设计目标是为美食爱好者提供一个智能化的用户体验,它提供数据统计,简化繁琐的机械化工作。2.2 基于 Ruby On Rails 的社会化食谱分享网功能需求分析2.2.1 管理员功能需求分析根据管理员在本系统进行系统维护的工作分析得出其用例。图 1 管理员进行系统维护用例图用例:管理注册用户目的:对站内的注册用户进行添加、删除、修改操作。概述:管理员通过登陆后台,可以根据实际情况对用户表进行一些需要的操作。用例:管理食谱类别目的:对站内的食谱类别进行添加、删除、修改操作。概述:不同的食谱属于不
12、同的类别,当管理员进行管理食谱操作时,需要选择该食谱属于什么类别,前台通过管理员选择的不同的类别,在相应的页面显示相应的食谱。基于 Ruby On Rails 的社会化食谱分享网的开发- 4 -用例:管理食谱目的:对食谱进行添加,删除,修改概述:管理员通过登录后台可以对其他注册用户发布的食谱进行操作 2.2.2 注册用户的功能需求分析根据用户在本系统进行请求服务的分析得出其用例。图 2 用户进行请求分析用例图用例:浏览站内信息目的:用户通过浏览器浏览系统前台信息概述:用户在线对站内的食谱进行浏览,选择自己需要的信息进行阅读。用例:查询食谱目的:用户通过搜索框搜索自己需要的食谱概述:用户可以通过
13、站内搜索框的关键词搜索快速的定位自己需要的食谱,进行浏览时可以看到实物图以及烹饪的菜谱,以此来方便用户的阅读。用例:管理个人信息目的:注册用户对自己信息进行添加、删除、修改操作。概述:注册用户通过登陆后,可以修改一些信息,比如:密码、邮箱等信息。用例:发布食谱目的:注册用户可以通过网站发布自己的食谱概述:在进行食谱发布时,系统会判断用户是否登陆,未登陆用户需要登陆后,才可以发布相关内容。应用程序综合实践- 5 -2.2.3 基于 Ruby On Rails 的社会化食谱分享网性能需求分析系统的易用性本完全基于 ROR(Ruby on Rails)框架技术,用户只需具备基本计算机使用技能就能顺利
14、地使用本系统。系统的先进性系统在开发技术选择上采用 ROR(Ruby on Rails)框架技术,具备一定的先进性。 2.3 可行性分析针对食谱分享网的实际情况,将可行性分析分为经济可行性、技术可行性和用户可行性三部分进行。2.3.1 经济可行性本系统的开发不需要大量的开发人员,从而减少了工资费用以及管理维护人员。利用 ROR(Ruby on Rails)框架大大节约了时间。2.3.2 技术可行性RoR是Ruby on Rails的缩写。Ruby on Rails是一个用于编写网络应用程序的框架,它基于计算机软件语言Ruby,给程序开发人员提供强大的框架支持。Ruby语言是解释型脚本语言,它既
15、有脚本语言强大的字符串处理能力和正则表达式,又不失解释型语言的动态性。一方面,在最初设计Ruby语言时,Ruby的研发者松本行弘考虑到文字处理方面的需要,他借鉴了Perl语言在文字处理方面的成功经验。另一方面,松本行弘将Ruby语言设定为一种解释型语言,Ruby的动态性使得由Ruby语言编写的程序不需要事先编译即可直接运行,这为程序的调试带来了方便。同时,这一特点可以实现开发过程中的快速反馈。2.3.3 用户可行性目前,我国网民的普及增长的越来越快,对于绝大部分人都拥有能上网电脑,越来越多的人选择在网上查询信息。2.4 基于 Ruby On Rails 的社会化食谱分享网总体功能设计2.4.1
16、 基于 Ruby On Rails 的社会化食谱分享网总体功能及其结构据前面的需求分析,食谱分享网分为二个主要模块,分别是前台模块、管理员后台模块,图 3 是食谱分享网的总体功能模块图。基于 Ruby On Rails 的社会化食谱分享网的开发- 6 -图 3 食谱分享网总体功能模块图前台模块主要提供游客和注册用户在对网站请求服务的所有功能。管理员后台模块主要提供管理员管理系统的一些所需的功能。2.4.2 食谱分享网系统总体业务流程本文研究探索了食谱分享网系统的开发,对系统需求进行了分析,制定了相应的模块。图 4 是食谱分享网的前台核心流程。图 5 是食谱分享网系统的后台核心流程。图 4 食谱
17、分享网系统前台核心流程应用程序综合实践- 7 -图 5 食谱分享网系统后台核心流程2.5 食谱分享网开发系统结构设计考虑到整个系统的体系架构需要的功能变化以及数据变化,系统使用 ROR(Ruby on Rails)框架,大大便利了系统的更新和维护。J2EE 规范的出现为可伸缩、灵活性、易维护性的商务系统提供了良好的机制。基于以上说明以及食谱分享网需求功能,决定采用 Struts + Hibernate 的组合框构建食谱分享网系统。Struts 是一个基于 MVC 设计模式的框架, Struts 框架的目的是提供一个开发 Web的开放源码框架,该框架能够使显示层从业务逻辑层和持久数据层中抽象和分
18、离出来。Struts 可以实现代码重用,这一点让开发人员从冗余的代码中解放出来,从而大大节约了时间 9。Hibernate 是一个面向 Java 环境的 ORM(对象/关系映射)工具,它管理了 Java 到数据库的映射,提供了数据查询和存储的方法,减少了使用 SQL 和 JDBC 处理数据的时间 10。综上所述,图 6 是食谱分享网站系统的体系结构。图 6 食谱分享网站系统的体系结构客户端主要任务是通过 JSP 页面实现交互页面,传送客户的请求以及接受响应,还承担 JavaScript 代码的运行。表示层是由 JSP 页面组成的,这些 JSP 页面承担了信息展示和控制器处理结果显示功能。控制器层的主要控制器是 ActionServlet。它用来接受客户端的请求,并根据配置