微信投票平台设计与实现-南通大学毕业论文_第1页
微信投票平台设计与实现-南通大学毕业论文_第2页
微信投票平台设计与实现-南通大学毕业论文_第3页
微信投票平台设计与实现-南通大学毕业论文_第4页
微信投票平台设计与实现-南通大学毕业论文_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本本 科科 毕毕 业业 设设 计计 题题 目目 微信投票平台的设计与实现 作作 者者: 张 星 星 专专 业业: 软 件 工 程 指导教师指导教师: 鞠 小 林 完成日期完成日期: 2017. 6 南通大学计算机科学与技术学院 2017 年 6 月 题目: 微信投票平台的设计与实现 姓 名: 张 星 星 指导教师: 鞠 小 林 专 业: 软件工程 南 通 大 学 毕 业 设 计 南通大学本科毕业设计 I 摘摘 要要 在这信息爆炸的时代,移动互联网发展迅速,微信作为新兴通讯工具已经融入每个人 的生活。微信公众平台提供了一种新的信息传播方式和强大的业务服务能力。微信开发成 为移动应用开发的热点之一, 微信投票活动是提升关注度, 增加用户数量的主要途径之一。 微信公众平台提供的投票系统能实现简单的投票功能,但不能充分满足服务号、订阅号举 办各类活动的需求。因此,研究基于微信的投票平台对于满足复杂的投票需求和提高投票 结果统计分析的效率具备重要的现实意义。 本文阐述了如何设计能够自定义投票规则、设计投票选项和统计分析投票结果的微信 投票平台。对系统进行具体设计,首先以投票应用为例,探索影响移动用户体验满意度要 素;接着研究微信公众平台的移动应用开发方法;随后分析微信投票的需求,定义相应的 投票规则、 及有效性验证策略; 最后设计并初步实现了一个基于微信公众平台的投票系统。 该系统基于 B/S 架构,主要实现在服务端设计并发布投票活动、在用户手机端进行投票以 及最终在服务端统计投票结果等功能。 关键词:微信开发,投票平台,统计分析 南通大学本科毕业设计 II ABSTRACT In the age of information explosion, the mobile Internet was growing rapidly. As a new communication tool, WeChat was already integrated into everyones life. The WeChat public platform provides a new way of information dissemination and a strong business service capability. WeChat development has become one of the hot spots in mobile application development, and WeChat voting is one of the main approaches to raise awareness and increase the number of users. The WeChat public platform provides a voting system that can implement simple voting functions, but it cannot fully meet the needs of various activities for service Numbers and subscription Numbers. Therefore, it is of great practical significance to study the voting platform based on WeChat which is design to meet complex voting needs and improve the efficiency of the statistical analysis of the voting results. This thesis describes how to design a voting platform based on WeChat that can customize voting rules, design voting options, and execute statistical analyses of voting results. For specific design of the system, this thesis takes voting application as an example to explore the influence factors of mobile application user experience satisfaction firstly. Secondly, it researches on mobile application development based on the WeChat development model. Moreover, it analyzes the requirements of the WeChat vote and define the voting rules and validation strategies. Finally, a voting platform based on WeChat is designed and initially implemented. The system is based on the B/S framework, mainly to complete publishing voting on the server, voting on the client and finally showing voting result on the server. Key words: WeChat development, Voting Platform, Statistics and analysis 南通大学本科毕业设计 III 目目 录录 摘摘 要要 I ABSTRACT II 第一章第一章 引言引言 . 1 1.1 研究背景 . 1 1.2 研究现状 . 1 1.3 主要研究内容 . 2 1.4 论文结构 . 3 第二章 相关技术 . 5 2.1 相关技术介绍 . 5 2.2 技术分析比较 . 7 2.3 课题技术路线 . 9 2.4 本章小结 . 10 第三章 微信投票平台需求分析 . 11 3.1 系统总体需求 . 11 3.2 用户分析 . 11 3.3 典型用例 . 11 3.4 其他需求 . 14 3.5 本章小结 . 15 第四章 微信投票平台系统分析与结构设计 . 16 4.1 系统流程图 . 16 4.2 数据库概念设计 . 16 4.3 系统架构 . 18 南通大学本科毕业设计 IV 4.4 本章小结 . 19 第五章 微信投票平台系统详细设计与实现 . 21 5.1 数据库具体设计 . 21 5.2 系统用户管理功能 . 22 5.3 微信用户管理功能 . 23 5.4 投票活动管理功能 . 24 5.5 系统测试 . 31 5.6 本章小结 . 34 第六章 结论与展望 . 35 6.1 主要研究成果 . 35 6.2 下一阶段工作 . 35 致谢 . 36 参考文献 . 37 南通大学本科毕业设计 1 第一章第一章 引言引言 1.1 研究背景 微信公众平台从产生到现在只有短短五年时间,其发展远远超过了我们的想象。中国 新闻出版社研究院于 2017 年 4 月 18 日发布的第十四次全国国民阅读调查报告显示, 64.4% 的成年国民在过去的一年进行过微信阅读1。微信成为用户的一个重要的信息传播媒介。 微信公众平台简称公众号,公众号往往利用多种途径达到提升关注度,增加粉丝数量的目 的,投票活动是主要途径之一,微信公众号是一个重要的信息接入口。以往的投票方式主 要依靠人工操作,过程繁琐,投票结束要对其进行数据分析,消耗了大量人力物力。微信 公众平台提供了一种简单的类似于调查问券式的投票,该投票方式仅能实现简单的投票功 能,不能满足服务号、订阅号举办各类活动的需求。因此,研究基于微信的投票平台对于 满足服务号、订阅号的投票需求和提高投票结果统计分析的效率具备重要的现实意义。 本课题研究一套基于微信的投票平台,简化整个投票流程,满足了常见的投票需求。 其一,系统开发基于 B/S 架构,满足用户方便快捷的使用;其二,系统用户分为管理员和 普通用户,普通用户只需注册就能实现发布投票,统计投票结果和管理公众号订阅用户; 管理员还可以对所有用户进行管理;其三,系统实现了在线发布投票实时推送到公众号的 功能,缩减了用户推送投票消息的工作量;其四,系统具备多种选项设计以及投票规则的 自定义,包括上传图片、界面排版、投票时间限制、是否强制关注、是否打开每日投票限 制等;其五,系统记录了每一次投票记录,并提供了投票结果统计与导出 Excel 文件的功 能。在互联网发展尤为迅速的今天,能满足快捷、高效的投票需求的投票平台具有极其迫 切的必要性。 1.2 研究现状 近年来,微信公众平台发展火热,微信开发成为移动应用开发的热点之一。网上投票 无处不在,从国际上的选举到学校活动,存在各种网上投票系统。由于微信开发发展时间 短,基于微信公众号的二次开发技术比较新颖,以致于基于微信的投票平台数量较少。目 前网上存在的一些投票系统,实现了投票活动的基本需求,也提供了简单的投票结果统计 的功能。据了解,网上提供投票平台并不能和微信公众号完美的对接,投票界面不能和移 动客户端完美契合。网上提供的投票平台多以盈利为主。如用户只能使用基本的功能,对 于更多要求的微信公众平台需要购买 VIP 账户才能进行更多操作2。无论是投票系统本身 还是发布投票的界面,都被嵌着广告,影响使用者的体验度。 基于微信的投票平台还不够成熟,在技术上面临挑战。例如投票规则自定义、丰富投 南通大学本科毕业设计 2 票选项和对投票结果进行统计分析等 3。关于微信开发的技术较为新颖,官方提供的文档 较少,学习难度大。如何与微信公众平台衔接起来是系统开发的一个关键点。投票有效性 的判断和投票结果统计是投票过程中重要的环节之一,需要进行重点研究。 1.3 主要研究内容 设计一个基于微信的投票平台,首先新颖美观的 UI 能够吸引用户的使用。为了让系 统界面的整体设计美观,要简化人机交互的操作逻辑。一个优秀的系统也要具备完整性, 系统需能够具备完整正确的信息处理能力,以便实时更新系统数据4。为了满足公众号进 行投票活动,通过调查、分析投票流程,本次设计将构建出人性化 UI、具备较全面的信息 处理能力和交互性较强的基于微信的投票系统5。 1) 系统是基于微信开发的投票平台,在投票规则定义中加入了只允许关注用户参加 投票或者允许所有用户参加投票的选择。当用户将投票链接分享给其他用户投票 时,在用户打开投票界面时系统判断用户是否关注了微信公众号,根据是否关注 来决定投票界面是否显示投票按钮即用户是否可以投票。用户可以选择打开或者 关闭投票界面的关注按钮,可以自定义文字和关注链接,用户点击文字即可跳转 到关注此公众号的界面。 2) 微信投票系统的投票界面美观程度决定用户是否会使用,本系统提供给系统用户 在发布投票时选择候选项排版的功能,给予用户良好的体验, 。 3) 投票的有效性是决定一个投票系统的合格的重要因素,为了对投票活动的有效控 制,微信投票系统的功能选项设置中加入开始时间和结束时间的设置,在开始时 间前和结束时间后用户不能投票。系统研究投票用户的 IP 地址的获得,并根据 IP 地址进行限制投票,限制无限量重复的刷票行为。 4) 系统为了满足不同系统用户的投票需求,可自行设置单选或者多选候选项,在多 选中系统用户可以设置最少投票个数限制用户最少需要投票的数量,和最多投票 个数限制用户最多不能投票超过的数量。 1.3.1 理论方法研究 本次微信投票系统由个人完成, 软件工程理论贯穿于整个开发过程。 软件工程(Software Engineering,简称为 SE),作为一套全面合理的高质量的工程学方法,是软件开发成功的 重要理论基础6。本次投票系统按照软件工程理论进行开发,将系统分为三大模块:系统 用户管理模块、投票活动管理模块和微信用户管理模块。微信投票平台设计整个生命周期 包括: 南通大学本科毕业设计 3 1) 微信投票平台的需求分析,初步了解投票平台的需求; 2) 概要设计,对投票系统的处理流程进行设计,进行系统模块划分; 3) 详细设计,对投票系统的各个模块所涉及的算法、结构考虑,并对数据库结构进 行设计; 4) 编码,对投票系统进行具体的编码工作,分别实现每一模块的各种接口,功能, 实现目标系统的的要求; 5) 测试,本次系统只进行简单的测试,测试系统各个功能模块是否完成,测试系统 Bug,并进行及时修补; 由于本次基于微信的投票平台只作为毕业设计的课题,只进行简单的理论设计。 1.3.2 系统研发技术 1) 面向切面的编程(Aspect Oriented Programming,简称 AOP):本次微信投票平台的设 计基于面向切面的编程,强调了各个模块之间的低耦合的特性,对业务逻辑进行 隔离,与面向对象的编程(OOP)不同,代码有更好的可移植性。 2) B/S 架构(Browser/Server,浏览器/服务器模式):微信投票平台设计基于 B/S 架构, 从开发层面本次设计与微信公众号相联系, B/S 架构很好的解决了与微信公众号连 接的问题。 3) MySQL(关系型数据库管理系统): 本次设计属于小型网站开发, 使用轻量级 MySQL 数据库,MySQL 性能卓越,体积很小,非常适合中小型网站开发使用。 4) Eclipse(集成开发环境): 本次微信公众平台使用免费的、 开放源码的 Eclipse IDE for Java EE Developers 进行系统的编码工作。 1.4 论文结构 本论文主要以投票应用为例,探究移动开发技术,研究基于微信开发模式的移动应用 开发方法,探索影响移动应用用户体验满意度要素,对微信投票的需求进行分析,对微信 投票规则、投票有效性进行研究,设计并实现基于微信的投票平台。 第二章 相关技术。介绍了微信投票平台开发的相关技术,分析系统开发的技术路线, 阐述相关技术的优缺点。 第三章 微信投票平台需求分析。介绍了微信投票的基本流程与投票方式,分析微信 投票平台的需求和典型用例,阐述系统的总体需求和系统的模块划分。 第四章 微信投票平台系统分析与结构设计。介绍了微信投票平台的系统和结构,分 南通大学本科毕业设计 4 析微信投票系统的系统流程,阐述系统的具体流程和数据库设计以及系统的架构。 第五章 微信投票平台系统详细设计与实现。介绍了微信投票平台的详细的系统设计 与实现,分析微信投票系统的各个模块的具体实现方法,阐述系统的数据库表单设计与各 部分功能的完成情况 。 第六章 结论与展望。介绍了本文的主要成果,分析微信投票系统的完成进度与实现 的功能,阐述本次系统设计的理论和实践成果和下一阶段的工作。 南通大学本科毕业设计 5 第二章第二章 相关技术相关技术 2.1 相关技术介绍 本章节介绍了微信投票系统开发的相关技术,本次编码基于 Java Web,在 SSM 框架 下,利用 Eclipse IDE for Java EE Developers 开发工具对本系统进行研究开发。在开发中采 用了 Maven 对项目进行管理,降低了开发的繁琐性,提高了项目构建的效率。 2.1.1 Java 从 21 世纪计算机的迅速普及到编程技术的不段演变,编程语言多种多样各具特色。 Java 一直受到程序开发者的欢迎。Java 技术以其简洁、小体积、安全的特性被应用在不同 的领域开发。如在第三方金融交易系统、Web 开发、嵌入式领域、以及热门的 Android 应 用的开发等都被广泛使用。Java 发展的脚步随着时代的发展一直在前进,其向程序开发者 展示了程序代码编写的精髓,其简洁整齐的代码结构、语言的高级化以及在 Web 开发中完 美结合 JSP 技术、JavaScript 等客户端语言使得 Java 的发展紧随计算机技术的发展,满足 不同需求的开发,也一直在世界编程语言排名中名列前茅。 作为世界主流编程语言,Java 以其独特的优势维持其在程序开发语言中的地位。无论 在服务器、PC 端还是移动客户端,Java 已经在内存、可识别性方面占取优势,其不断发 展的语言和多种框架结构为计算机应用开发提供了良好的平台,在未来一段时间内依然具 有很大的发展空间。 2.1.2 JavaScript 语言 在程序开发中,基于 Web 的开发已经非常广泛,在 Web 开发中少不了 JavaScript 的出 现, HTML 语言有其固有的缺陷,而在 HTML 页面几乎都在用此网络脚本语言,作为非 常简单最流行的直译语言,在运行之前不需要先编译,而是直接由浏览器解释运行7。在 各个网站中,JavaScript 被使用实现页面的动态设计、表单验证、操作 Cookies 等更多的功 能。 作为 Web 开发被广泛使用的 JavaScript 语言,其具有独特的特点和优势: 1) 是一种简单弱类型解释型语言,开发过程非常简单,因其语法特点与代码结构 和 C+、Java 等非常类似,上手难度非常小,但是其并不需要像 C+、Java 先编译后执行8。 2) 是一种基于对象的语言,可以很方便的操作 HTML 对象,控制元素的状态, 多元化网页,对用户的发生的事件进行响应,实现更多的功能。 南通大学本科毕业设计 6 3) 是一种跨平台相对安全的语言,其不依赖于操作环境,只需要浏览器本身便可 以执行,也正是这点导致在不同厂商对其支持程度的不同引起不正确的行为, 其只能实现 Web 信息浏览和动态交互,没有权限对数据进行访问和操作。 JavaScript 将在很长的一段时间内作为热点语言被使用,其减少了服务器的压力,直 接在客户端程序响应了很多事件。JavaScript 门槛低,在与 JSP 技术、CSS 相结合非常强 大,具有非常大的发展潜力。 2.1.3 CSS 与 JavaScript 一样,CSS(层叠样式表)同样在 Web 开发中占有非常重要的位置,CSS 是用来展示 JSP、HTML 页面元素样式(包括字体大小格式、颜色位置等)的语言,不仅 可以控制整个页面的排版布局,更是可以精确到像素级的控制元素的位置。 CSS 编程工具要求很低,Windows 系统的记事本就可以对其操作编辑修改,在易于修 改和使用方面占据了优势。 CSS 提供了丰富的样式来美化页面的各种元素, 对其设置大小、 颜色、排版、效果等,成为 Web 开发不可或缺的一部分。CSS 与 JavaScript 一样,在复用 性上非常高,大量重复的元素只需要一个单独的 CSS 样式就可以解决,简化了 Web 的代 码格式以及代码数量,大大减少了工作量,也加快了页面下载的速度9。 2.1.4 JSP 技术 本次微信投票平台开发采用 JSP 技术,JSP(Java Server Pages)被称作 Java 服务器页面, 与传统的 HTML 静态网页不同,JSP 实现了 Java 的扩展,和 Java 相同具有简单易用性, 面向对象,嵌入了 Servlet 技术,以形式完成 Java 代码,是一种动态页面技术,其 是在服务器端执行的,在浏览器客户端只能返回 HTML 文本。 基于 Java 的 JSP 技术拥有着 Java 语言的特点以及自身的优势,其包括以下几部分: 1) 具备多平台支持的特性,与 Java 语言类似,一次编写就可以在不同的系统中运行。 2) JSP 页面与业务代码分离开,在修改业务代码时候不影响视图层,JSP 只负责显示 数据,业务代码交由后台控制层处理。 3) JSP 拥有 Servlet 功能和特性,简化 Web 开发,不需要在类中编写 HTML 代码,代 码编写变得简洁方便,并且 JSP 甚至整个项目可以重用 JavaBean,缩减了工作量。 4) 在第一次访问 JSP 页面时,JSP 被执行一次编译,在下一次访问时就不需要再次编 译,节约了 CPU 资源提升了访问速度10。 JSP 提供了 JSTL 标准标签库,允许程序员不使用 Java 代码而用 JSTL 标签进行编程, 代表了网页编程的一个新的方式。 南通大学本科毕业设计 7 2.1.5 SSM 框架(Spring+SpringMVC+MyBatis) 本次关于微信投票平台的设计没有使用 SSH 框架,而是使用目前比较主流,应用很多 的 Java EE 企业级框架 SSM 框架,SSM 框架即 Spring、Spring MVC 和 MyBatis 的整合,适 用于搭建各种 Web 项目。SSM 框架和 MVC 结构相同,分模型(Model) 、视图(View) 和控制器(Controller) ,其中 Mapping.xml 是操作数据库的映射文件。SSM 框架在代码结 构的清晰度,业务操作逻辑的简易程度都为本次微信投票系统开发提供了便捷。 2.1.6 Maven Maven 的产生意味着一种清晰地标准化的项目结构的产生,Maven 不仅提供了强大的 团队项目管理模式,更是给程序开发人员减少了很大的工作量。日常开发中,Maven 被使 用进行团队项目共享代码,将项目上传至服务器,以便各开发部门分工协作。Maven 提供 了对项目进行 clean、compile、deploy 等功能,在此管理模式下,开发者不需要手动下载 程序所需要的 jar 包,而是通过配置 pom.xml 文件,以短短几行代码 Maven 就自动下载 jar 包到 Maven 仓库中, 极其的方便快捷, 在编译时 IDE 会自动查找相应的 jar 文件打包发布。 2.1.7 微信开发 微信开发指的是对微信公众平台的二次开发,微信公众平台可以启用开发者模式。启 用开发者模式需要进行服务器配置,获得微信公众号的 AppID 和 AppSecret,相当于唯一的 编号和密钥,是唯一识别微信公众号的依据,在具体实施开发中,也需要这两个参数。微 信提供了一系列的接口供程序开发者调用,开发者在程序中调用这些接口,就可以调用这 些接口提供的功能,完成公众平台的深度定制。开发者利用好这些接口,可以完成普通公 众号完成不了的功能,可以实现网站开发与公众号结合,公众号就变成了网站的入口。这 些接口是对于订阅号和企业号开放权限不同,其中免费开放地理位置、Oauth 网页授权、 语音识别等九大接口。微信开发提供了一种新型的营销模式,线上线下结合,企业与消费 者构成联系,形成精准营销。 2.2 技术分析比较 针对基于微信的投票平台,可以用不同的技术和方法完成设计,每一个技术都有优缺 点,需要寻找一系列最适合本系统设计的技术和方法。以下将对研究此系统常用技术进行 分析比较以及阐述最终选择完成本系统的技术。 2.2.1 常用技术 常见的网上投票平台都是基于 Web 开发的,本系统需要和公众平台相结合,形成与微 南通大学本科毕业设计 8 信的联系,要涉及微信开发的技术。首先都是基于 Web 开发的都需要对前端开发有一定的 理解。HTML 是 Web 开发人员的基础,目前 HTML5 已经发展和普及,虽然一些老的浏览 器内核不能对 HTML5 很好的支持,但这将成为 Web 开发者的必修课12。JavaScript 的使 用会让开发出来的网页更具活力、多元化。网站是否美观,是否能够吸引用户很大程度决 定于 Web 开发者对 CSS 脚本语言的使用是否成熟。 前端脚本语言掌握了就需要寻找一个适合的 Web 框架来完成开发,无论是用.NET、 Java 还是 PHP,各种框架都是有相同之处的。对于基于微信的开发,开发者大都选择 PHP 作为微信开发语言,PHP 语法较 Java 而言相对简单,且微信官方提供的微信开发文档就是 基于 PHP 给出的接口与示例。 对于使用 PHP 的开发者多使用 Apache+PHP+MySQL 环境进 行开发,每一个组件都是开源或者免费的。对于开发者来说,免费开源的方式是非常具有 吸引力的。 在系统的数据库选择方面,企业级开发多采用 Oracle 或者 SQL Server 等大型数据库, 而对于小型开发多采用小巧便捷的 MySQL 作为开发的数据库。 服务器普遍多采用 Tomcat。 2.2.2 技术比较 对于基于微信的投票平台开发而言,前端开发大都采用 HTML、JSP、JavaScript、CSS 等脚本语言,主要区别就是后台业务实现的编码方式不同,以下对主流编码方式优缺点进 行比较。 表 2-1 编程语言的对比 语言 优缺点 PHP Java .NET 介绍 面向对象的概念、解释 性语言、嵌入在 HTML 中执行 面向对象编程、编译性 语言、先编译后在 Java 虚拟机上解释执行 面向对象编程、编译性 语言、先编译后在.NET 框架 CLR 编译执行 优点 开发成本比 Java 略低、 效率快、可移植性高 语言跨平台、适合团队 开发、框架结构丰富 快速开发、开发成本维 护成本低 缺点 后期延伸性差、缺少标 准框架 开发成本相对较高、效 率稍差 可移植性差,缺少核心 技术积累 对于本人在校大学生而言,由于课程设置对 Java 的学习较为深入,在语言的了解以及 运用上获得了优势,使用 Java 进行基于微信的投票平台的开发降低了开发的难度,缩短项 目完成的时间。 进行 Web 开发的投票平台需要一个数据库进行数据的存储,在此主要分析 MySQL、 南通大学本科毕业设计 9 Oracle 和 SQL Server,对比其优缺点13。 表 2-2 常见数据的对比 数据库 优缺点 MySQL Oracle SQL Server 优点 开源、价格便宜、跨平 台、性能出色、体积小 稳定性好、功能强大、 安全性高、大数据处理 能力强 图形化界面简单直观、 伸缩性强跨平台、编程 接口工具丰富 缺点 安全性有限、缺乏一些 存储程序的功能 价格昂贵、体积大、硬 件要求高 开放性差、体积大、安 全性有限 对于小型开发来言 MySQL 比较适合、对于大型企业级别开发选择 Oracle 比较合适。 2.2.3 系统设计选用技术 在本次微信投票平台的开发中,利用开源免费的 Eclipse 来进行设计,前端设计采用 JSP、JavaScript、CSS 等脚本语言。综合自身所学知识的局限性,本次微信投票平台采用 Java 语言完成业务逻辑的编码,采用 Maven+SSM 框架的整合14,在数据库的选择方面选 择轻量级 MySQL 数据库。其中包括微信开发的技术部分,采用 Weixin Java Tools 集成包, 简化编码的复杂性,底层设计交由此工具完成。 2.3 课题技术路线 本次微信投票平台的设计与实现遵循软件工程中软件开发流程,将本系统划分为三大 模块进行开发,即系统用户管理模块、投票活动管理模块、微信用户管理模块。利用软件 工程理论对本系统进行需求分析,系统的分析和结构的设计,并对其进行详细设计为开发 做准备。 1) 配置 SSM 框架。在 Eclipse 中配置 JDK1.7、Tomcat7.0、Maven3.9 环境。在此环境 下创建 Maven Web 项目,对 Spring 和 MyBatis 两大框架进行整合。然后整合 SpringMVC,配置 spring-mvc.xml 并在 web.xml 中配置整合。 2) 开启微信开发者模式。在开发之前首先要在微信公众平台的网站申请微信公众号, 在开发者工具中进入公众平台测试账号,获取公众号开发者 ID(AppID)和开发者 密码(AppSecret)。创建新浪云计算平台应用,上传微信接口配置代码到新浪云应 用。在接口配置信息填写服务器地址(URL)为 和 令牌(Token)为 weixin,验证 Token 成功,开启微信开发者模式成功。 3) 系统前端设计。对系统三大模块的功能进行详细的分析与规划,绘出系统界面的 南通大学本科毕业设计 10 草图。 利用 PS、 Visio 等软件对系统的前端进行设计, 如绘制无背景文字的图片等。 4) 系统后台编码。在基本配置和系统功能确定后,开始对系统功能实现进行具体的 编码。首先对用户的注册、登录和注销开始,然后实现系统三大功能界面的跳转。 在整体界面确定后,对每一模块进行具体设计。先对用户管理模块进行细节划分, 对查看用户列表、添加用户、编辑和删除用户具体实现。然后实现微信用户管理 模块,调用微信获取用户列表和获取用户信息接口,实现对微信公众号订阅者的 管理。最后对最主要的投票活动管理模块进行设计编码,分为创建投票活动、编 辑投票活动、投票界面和投票结果统计几个部分进行开发,逐步实现每一功能。 5) 测试系统。在系统完成后,对系统的每一功能模块进行简单测试,测试各界面是 否展示完整、各个功能是否能够正确运行以及用户体验度是否良好。在发现问题 及时对其修复。 2.4 本章小结 本章从系统设计所需技术入手, 介绍了设计微信投票系统的相关技术, 其中包括对Java 语言、 SSM框架的组成、 Maven和微信开发技术的介绍以及对前端设计 (JSP技术、 JavaScript 脚本语言、CSS)简单介绍,分析比较了常用技术的优缺点。在详细分析各项技术的基础 上,结合自身所学以及系统所需条件选取了 Java 作为本系统的后台编码语言,采用 Maven+SSM 框架、MySQL 数据库以及 Weixin Java Tools 来完成本次设计。在完成技术的 选择,综合阐述了本课题的技术路线,给出了完成系统的大致流程,为整个开发工作指清 方向。 南通大学本科毕业设计 11 第三章第三章 微信投票平台需求分析微信投票平台需求分析 3.1 系统总体需求 本次课题以微信投票应用为例,设计一个完整的投票平台,该投票平台基于 Web,实 现用户在本系统中注册成为系统用户,可以绑定微信公众号,能够实现发布投票的功能和 简单的微信公众号订阅者管理的功能。投票链接可以一键群发到订阅者的微信中,在用户 投票完成后,该系统提供对投票结果的统计与分析功能。 本系统主要实现微信用户投票的功能,解决微信公众号发布投票和举办投票活动的需 求。微信投票的需求很大,能够满足投票活动需求和自定义功能的不多,本系统实现免费 使用,将给公众号带来更多便捷,更具竞争力。本系统主要功能需求有: 1) 用户管理(包括用户注册、编辑、删除等) ; 2) 发布投票功能(包括对活动内容的描述、图片上传、投票规则定义、投票选项的 设计、投票有效性检测) 3) 投票功能(包括用户进行投票、搜索选项、查看投票名次票数等) 4) 投票结果统计分析功能(包括对每次投票的具体时间和 IP 地址记录、投票排名统 计、投票结果 Excel 文件导出等) 3.2 用户分析 本次基于微信的投票系统按照使用方式来说分为两类用户:系统管理者和进行投票用 户。系统管理者负责投票的发布与投票统计功能查看等,进行投票用户主要完成投票页面 的浏览和进行投票等。按照系统目标用户可分为:微信公众平台管理者与普通投票活动组 织者。微信公众平台管理者可以将微信公众号和本系统进行绑定 AppID 和 AppSecret,可 以管理公众号订阅者,查看订阅者信息,直接推送投票链接给订阅者。普通投票活动组织 者面向大众,只需要发布投票,将投票链接自行发送给需要投票的人,完成投票流程,并 进行投票结果统计。将这两类用户整合,形成表 3-1 所示的用户: 3.3 典型用例 系统的用例是系统功能的体现,在进行系统详细设计前,需要对系统各个模块的功能 进行合理的分析与规划。用例图直观的展示出系统中出现的用户与用户的动作,直接体现 出系统的需求。本次微信投票平台主要阐述三种用户,即管理员用户、普通用户和微信用 户15。有了完整的用例图和系统功能模块图才能对接下来的微信投票平台所需要的数据库 设计进行快速准确的定位。 南通大学本科毕业设计 12 表 3-1 微信投票平台用户分析 典型用户 特点 需求 微信公众号管理者 微信公众号的经营者,常通过投 票活动来吸引用户关注,实施精 准营销 需要实现微信用户投票,并对微 信用户管理、投票结果统计 普通投票活动组织者 一般投票活动的发起者,偶尔需 要发起投票活动,来调查某一活 动主题的参与度 需要一个能够发布投票的投票 系统和简单的投票名次查看 投票用户 一般为普通微信用户或者网络 投票者,仅进行投票活动 需要进行投票,能够查看投票排 名等 3.3.1 用户管理用例分析 微信投票平台的系统用户管理部分,主要涉及系统的使用者,而系统的使用者由系统 用户的权限不同分为管理员用户和普通用户。管理员用户拥有普通用户的所有功能,除此 之外,管理员用户拥有对普通用户的管理功能。 如图 3.1 所示,无论是系统管理员还是普通用户在使用本系统时,都需要进行登录验 证身份, 普通用户只需要注册即可完成账号的创建。 管理员有权对普通用户账号进行禁用, 被禁用了的账号将无法登录本系统。所有用户均有对个人信息以及密码的更改的功能。管 理员用户有权在系统内创建账号即添加新用户还可以对用户信息进行编辑,修改其邮箱、 手机号,账号状态等信息。管理员拥有对普通用户直接删除的权利,所有用户在使用完本 系统可以进行注销操作,以保证账号的安全。 3.3.2 投票管理用例分析 无论是注册成为用户还是管理员用户均可使用微信用户管理和投票活动管理功能。图 3.2 为投票活动管理的用例分析图。 微信用户管理部分,系统用户在个人信息中绑定了公众号的 AppID 和 AppSecret 后, 可以在本系统中查看公众号的所有订阅者的信息,包括订阅者的头像、昵称、所在地、备 注、OpenID 等信息。 如图 3.2 所示,在投票活动管理部分系统用户可以进行创建投票、编辑投票、发布投 票、查看投票结果和删除投票活动的操作。其中创建投票包含创建投票主题、添加投票候 选项、功能选项设置的功能,在编辑投票中可以对创建好的投票活动进行更改编辑,修改 投票活动的显示信息以及投票规则的设计。创建好了投票活动,用户可以复制生成的链接 南通大学本科毕业设计 13 分享给需要投票的用户进行投票,也可以直接选择一键推送到微信公众号。一键推送到公 众号后,所有订阅其公众号的微信用户将会收到群发的投票链接,进行投票。在投票开始 后任何时间里,系统用户均可对投票实时结果进行查看,包括查看投票日志明细即对每一 次投票的时间、IP 地址、选择的候选项等信息进行分析也包括对票数的统计管理即查看投 票活动的总体趋势,查看投票活动的总浏览量,总投票量,今日投票量,以及今日投票数 量最多的候选项及其票数。利用这些数据系统用户若发现问题,可以及时对投票的规则进 行修改,实现投票的公平公正化。 管理员普通用户 编辑用户 添加用户 修改密码 修改个人资料 登录 删除用户 注销 接收公众号消息 进行投票 查看投票结果 查找候选项 图 3.3 微信投票用例图 3.4 其他需求 本系统除了完成主要的业务需求外,还需要完成对系统性能、安全等方面的设计。在 本系统登录页中,加入了滑动验证码以便验证是人工操作。在投票界面也是加入了验证码 验证,防止投票者进行机器刷票。系统采用 HTML5 技术,需要在最新版的 Google Chrome 中操作以免出现控件加载不成功、排版错误的问题。 由于系统是基于微信开发的微信投票平台,所以在投票规则设定中加入了只允许关注 用户参加投票或者允许所有用户参加投票的选择。当投票用户将投票链接分享给其他用户 投票时,在打开投票界面时判断用户是否关注了微信公众号,根据是否关注来决定投票界 面是否显示投票按钮即用户是否可以投票。 微信投票系统的投票界面美观程度决定用户是否会使用,我们不采用可选择投票界面 主题而是提供给系统用户选择候选项排版,以达到用户满意体验度。 微信投票系统的功能选项设置中加入了开始时间和结束时间的设置,在开始时间前用 户不能投票,在结束时间后用户也不能投票。 微信投票系统投票的有效性是决定一个投票系统的合格的重要因素,系统应该加入每 日每 IP 地址限制只能投一票的功能,限制了无限量重复的投票。 本系统可自行设置单选或者多选候选项,在多选操作中系统用户可以设置最少投票个 数限制用户最少需要投票的数量,和最多投票个数限制用户最多不能投票超过的数量。 本系统中和微信公众号密切关联,用户可以选择打开或者关闭投票界面的关注按钮, 可以自定义文字和关注链接,用户点击文字即可跳转到关注此公众号的界面。 南通大学本科毕业设计 15 3.5 本章小结 本章从微信投票平台的需求着手,介绍了微信投票系统的总体需求,分析了本系统的 可能用户的特点和需求。在本章中着重分析了关于微信投票系统的典型用例,在综合分析 多个投票系统的用例以及其特点、定位、系统完整性等,对本系统的需求有了完整的定义, 对各部分功能有了具体的计划。在本章中着重分析了三个典型用例,基于用例图分解系统 的主要功能模块,直观清晰地展示了系统的业务流程走向,为系统分析和投票平台的结构 设计做铺垫。在明确系统整体功能模块的基础上还对系统的其他需求进行分析,综合影响 用户体验度因素对本系统的其他需求进行了阐述。 南通大学本科毕业设计 16 第四章第四章 微信投票平台系统分析与结构设计微信投票平台系统分析与结构设计 4.1 系统流程图 在本次微信投票系统的设计中, 系统的主要功能模块分为三大块: 系统用户管理模块、 投票活动管理模块、微信用户管理模块。本系统用户分为管理员和普通用户,管理员用户 拥有最高权限可对普通用户进行管理。所有用户均可使用投票活动管理模块与微信用户管 理模块。 本次微信投票系统的主要模块流程是从注册到登录再到系统三大模块的使用,系统主 要流程如图 4.1 所示。 注册 登录 投票活动管理系统用户管理微信用户管理 判断用户 类型 图 4.1 微信投票系统模块流程 本系统的主要流程为注册成为用户,在登录界面进行登录,登录后有三大块主要功能 (普通用户没有系统用户管理功能) ,即投票活动管理、系统用户管理和微信用户管理。 其中微信用户管理只是简单的公众号订阅者信息的查看,没有进行深入的开发。系统用户 管理仅是对系统用户添加、编辑、删除功能。本系统的主要功能模块在投票活动管理展开, 其中包括投票活动的创建、编辑、发布、投票结果统计等。 4.2 数据库概念设计 本次基于微信的投票平台使用轻量级 MySQL 数据库,设计名为 vote 的数据库。数据 库中主要涉及用户信息存储的表,投票活动信息存储的表。关于微信用户的数据库,本设 计直接调用微信公众平台 API,查询保存在腾讯的数据库,不需要在本地建立数据库。 本系统中关于系统用户信息表的部分数据和投票活动的主题信息、规则设计、有效性 检测是否开启的部分数据以及每一次的投票记录数据为持久性数据。而关于投票活动的结 果统计部分出现的大量数据,如数据库中 vote_statistics 和 vote_options 中的票数、访问量 南通大学本科毕业设计 17 等都是随着投票活动的进行而不断进行变化的。 在具体设计数据库之前,对本系统的主要活动流程的实体关系图进行简单的绘制: 用户投票活动 投票 候选项 投票活动 数据 投票用户 创建 1n 拥有 11 n n 图 4.2 微信投票系统数据库 ER 图 用户和投票活动之间关系为一个用户可以创建多个投票活动,投票活动和候选项、投 票活动数据、投票用户之间是拥有关系。一个投票活动拥有多个投票候选项,一个投票活 动拥有一条投票活动数据,一个投票活动拥有多个投票用户。以下主要介绍实体与其主要 属性,不全部列举。 用户实体的属性包括用户编号、用户名、密码、AppID、AppSecret、邮箱、手机号、 账号权限等级、账号状态等,其中 AppID 与 AppSecret 为连接微信公众号所需的属性。用 户编号是用户表的主键,用户名和密码长度小于 25,不能为空。用户名、密码、账号权限 等级以及账号状态不能为空。 邮箱需要满足电子邮箱的书写格式, 手机号需要满足 11 位数 字。账号权限等级和账号状态为 int 型,值为 1 或 0,账号权限等级字段值为 1 代表该账号 为管理员账号,0 代表普通用户账号。账号状态字段值为 1 代表该账号状态正常,0 表示 该账号状态为禁用。 投票活动属性包括投票活动编号、投票主题、投票活动描述、开始时间、结束时间、 投票活动图标地址、是否打开关注按钮、是否限制 IP 地址、以及投票创建的时间和投票类 型等。投票活动的属性比较多,在此只是简单的介绍部分主要的属性,具体属性在数据库 的详细设计中有阐述。投票活动编号为投票活动表的主键。投票主题限制为 50 个字符, 投票活动描述、投票结束显示信息使用 kindeditor 控件输入,数据库字段定义为 longtext 类型。投票模版字段定义为 int 型,用对应的数字代表投票界面候选项的排版每行的个数。 投票活动图标地址字段定义为 varchar 类型,长度为 100。开始时间和结束时间中的日期定 义为 date 类型,时间定义为 time 类型,投票活动的创建时间定义为 datetime 类型。是否打 开关注按钮、是否限制 IP 地址、投票类型在实现时候选用单选按钮,故数据库表中对应字 段都定义为 int 型,用户的不同选择在数据库中用 1 或 0 存储。投票主题、投票活动描述、 开始时间、结束时间、投票活动图标地址、是否打开关注按钮、是否限制 IP 地址、以及投 票创建的时间和投票类型在数据库中的字段都不能为空。 南通大学本科毕业设计 18 候选项属性包括候选项编号、候选项名称、图片地址、该候选项投票量等,一个候选 项中有候选项名称、该候选项所属投票活动的编号、该候选项被投票的数量以及该候选项 的展示图片等。投票候选项编号为候选项表的主键,不能为空。投票候选项名称在数据库 表中定义为 varchar 类型,长度为 50,不能为空。候选项的图片地址定义为 varchar 类型, 长度为 100,不能为空。候选项的投票量定义为 int 型,默认为 0,不能为空。 投票数据属性包括投票数据记录的编号、投票数据对应的投票主题的编号、投票量、 访问量。每一个投票活动拥有一条投票数据记录,投票数据记录的编号为投票数据表的主 键,所有字段都是 int 型,都不能为空,投票总数量和投票活动总浏览量默认为 0。 每个投票活动将会有多个投票用户进行投票,投票用户属性包括投票活动编号、所投 票的候选项编号、候选项名称、投票者的 IP 地址以及投票的时间等。投票用户编号为投票 用户表的主键,投票用户编号、投票活动编号和所选候选项编号为 int 型,都不能为空。 投票时间字段定义为 datetime 类型,不能为空。 4.3 系统架构 微信投票系统的三大模块即系统用户管理模块、投票活动管理模块、微信用户管理模 块功能分解图如图 4.3 所示。 管理员用户有着最高权限可以对普通用户进

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论