1 项目描述
1.1 问题描述
在繁忙琐碎的生活中,人们通过阅读来寻求精神上的愉悦。无纸化时代,电子书取代了纸质书,成为更多读者的选择。而市面上读书软件的质量良莠不齐,或多或少存在功能单一、迎合低级趣味、乱插广告等缺陷,无法为读者提供完美的阅读体验。
此外,随着年轻人喜欢的文化越来越多元,围绕一部作品可以衍生出多种二创的主题和形式。互联网降低了创作的门槛,激发了创作者们产出的活力和热情。因此,我们认为市面上应该有这样一款app,将阅读、发布二创的功能较好地融合起来,构建一个阅读书圈,让有共同兴趣爱好的用户方便地交流、分享。
基于以上思考,本小组计划设计一款简约、易用、有品质、重原创的阅读工具、原创社区。
1.2 预期成果
基本目标:
(1)实现一款页面简约、兼容少数几种主流格式书籍的阅读器
(2)实现一个具有一定可用性、业务功能正确完善的服务器后端
(3)构建一个由原著衍生出的二创社区,允许用户上传自己的作品或阅读他人的作品
拓展目标:
(1)实现根据用户的阅读记录,在首页进行私人推荐、好句推荐的功能
(2)设计一系列简洁美观、清晰明了、简单易用的页面
(3)实现一个具有增删查改等基本功能的后台系统,方便管理员管理数据
本小组将采用增量模型,按照基本目标和拓展目标的划分,分批次地分析、设计、编码、和测试增量组件。
2 选题依据
2.1 选题意义
首先,我们的app符合当下人们阅读习惯和社交习惯的变化。当下,人们越来越习惯于电子书阅读与线上社交,我们的app不仅能够让用户阅读自己喜欢的二创作品、小说,也能够帮助用户在电子化阅读的过程中学习知识、提高素质、增长见识。同时,用户还可以在线上社交时,通过社区找到志趣相投的同好,交流心得、扩展交际圈。
其次,我们的app结合了多种功能,更加方便用户使用。目前市场中虽然存在电子化阅读的app,也存在“社区交友”的app,但是缺少同时拥有阅读和社交功能的app,且大多数电子化阅读和“社区交友”app都缺少教育意义。而我们的app不仅结合了阅读与社交两种功能,还意在通过推荐名言警句、美言美段等,增强教育意义。
2.2 同类系统分析
一言app
一言app是一个文字记录和排版的轻社区。它可以每日为用户推荐精选字句、音乐、话题等,用户也可以在社区中看到其他人分享的字句。但一言的缺点是它只有分享与阅读字句的功能,不能分享和阅读长篇的文章,也不能通过标签找到自己喜欢的圈子。
Lofter
Lofter是一款轻博客产品,专注于为用户提供简约、重原创的博客工具、原创社区。用户可以在lofter上分享自己的原创作品,包括文章、画作等。用户还可以在自己的作品上打上标签,以吸引更多的同好。Lofter重点在于原创,因此此平台上更多的是用户分享自己创作的作品,缺少对于经典著作的文化传播。
2.3 选题的先进性和实用性
先进性
首先,我们结合了市面上常见app的实用功能,意在打造一个集阅读经典著作、二创作品、社区交友于一体的app,满足大部分读者的需求。
其次,我们考虑到了阅读和社交app的教育意义。现代年轻人因为快节奏的生活,很少有静下心来品读经典著作的时间,对于他们来说,一款纯粹以分享名言警句作为功能的app,通常是不能吸引他们的注意力的。但我们的app将分享名言警句作为一个功能融合在app中,用户在打开app时,会在首页首先看到我们推荐的来自经典著作的名言美句。同时,在用户阅读自己喜欢的二创作品时,app也会根据用户的兴趣推荐一些经典著作。这样不仅可以做到潜移默化地传播知识,也可以提高用户阅读经典著作的可能性。
实用性
无纸化时代,人们对于阅读app的需求大幅度提升。同时,随着年轻人喜欢的文化越来越多元,形成了许多小圈子,每个圈子都有自己的二创主题和作品,所以年轻人对于二创作品交流平台的需求也在迅速上升。我们的app拥有的多种实用的功能,可以满足不同读者的需要,符合市场需求。
2.4 技术难度和工作量
App整体选用MVVM框架搭建,选用Material Design来设计UI界面。MVVM框架与Material Design设计已经十分成熟,有许多优秀案例可以供我们参考、改用。
后台管理系统采用前后端分离框架,前端采用VUE架构,通过axios与后端通信。VUE架构封装了很多底层复杂性,其本身简单易用,学习成本较低。服务端搭建采用flask框架,配合MySQL数据库与redis实现数据交换与数据读写。我们上学期的数据库课程已经使用过flask框架和MySQL数据库,对它们已经比较熟悉,且redis对于熟悉数据库的开发者来说,学习难度并不高。
总体来说,小组成员对后台管理系统和服务器后端的相关技术都有了解,并有一定的开发经验,所以后台管理系统和服务器后端的难度对我小组来说可以接受。App开发对我们而言是一个挑战,但是小组成员学习能力较强,部分成员又有一定的Java基础和Android开发经验,对小组整体会有带动作用,所以我们有能力有信心能够按质按量按时完成App的开发工作。
前期我们可能需要一些时间去熟悉这些技术,中后期可以在开发的过程中一边开发一边学习。因为所选用的技术在github上都有现成的优秀案例可以参考,所以我们是“站在巨人的肩膀上”进行开发的,难度和工作量都是我们可以接受和完成的程度。
3 可行性分析
3.1 经济角度
市场需求存在。随着智能手机和移动互联网的发展,越来越多的人使用移动设备进行阅读和学习。而名言警句、句子段落等内容的阅读和分享也成为了一种时尚。因此,这个app有可能获得足够的用户数量,从而产生一定的广告和付费收益。
成本控制可行。在移动应用程序开发方面,可以使用各种开源框架和工具,降低开发成本。同时,通过优化服务器和数据库架构、精简功能和界面设计等方式,可以控制运营成本。因此,可以较好地控制成本。
广告收益可以实现。可以在app内置广告,通过展示广告获得收益。由于应用程序可能吸引到大量的用户,自然而然吸引到广告主。尤其是在这个app内的名言警句类别下,各大公司可以选择合适的名言作为广告,进而提升公司的知名度。
付费收益有机会实现。该应用程序可以提供一些增值功能或者收费服务,例如订阅高质量的名言警句,提供更多的个性化搜索和推荐功能等。这些功能可以吸引一些愿意付费的用户,从而产生一定的收益。
3.2 技术角度
移动应用程序开发技术已成熟。当前,移动应用程序开发技术已经非常成熟,可以使用各种开发框架和工具来实现各种功能。而且,许多应用程序都在移动设备上提供完整的阅读器和名言分享功能,提供了很好的参考。
数据库和服务器技术已经足够成熟。要实现一个包含大量内容的应用程序,需要使用数据库和服务器技术来存储和管理数据。当前,各种开源和商业数据库和服务器技术已经非常成熟,如MySQL、PostgreSQL等。这些技术可以为我们提供安全、高效、可靠的数据存储和访问服务。
人工智能技术可以优化阅读体验。当前,人工智能技术可以帮助我们提供更好的用户体验和功能。例如,可以使用自然语言处理技术来优化内容推荐和搜索,使用机器学习技术来推荐相关的名言和句子,使用语音识别技术来提供语音搜索和朗读等功能。
移动设备的性能和功能已经足够强大。当前,移动设备的性能和功能已经足够强大,可以支持各种阅读和分享功能。如今,许多移动设备已经具备高分辨率屏幕、高速处理器、大容量存储器、高速网络连接等功能,可以满足我们对于高质量阅读和分享的需求。
3.3 法律角度
用户数据隐私保护。该应用程序需要收集用户数据,例如用户的搜索记录、浏览历史等,以提供更好的服务。因此,需要确保用户数据的安全,遵守相关的隐私保护法律法规。例如,需要明确告知用户收集数据的目的、方式和范围,获得用户的明确同意,并在必要时对数据进行加密和安全存储。
版权问题。该应用程序提供了大量的名言警句、句子段落等,需要确保所提供的内容均为合法授权的。如果未经授权使用他人的作品,可能会侵犯著作权、商标权等知识产权,导致法律纠纷。因此,应该对所提供的内容进行版权审核,确保它们是合法授权的。
用户使用协议。应用程序需要制定用户使用协议,明确告知用户使用该应用程序的权利和义务,包括数据收集、知识产权、使用范围、免责声明等,以规范用户行为,并为应用程序的运营提供法律保障。
其他法律法规。此外,还需要遵守其他相关的法律法规,例如《网络安全法》、《电子商务法》、《信息安全技术个人信息安全规范》等,以确保应用程序的合法性和安全性。
3.4 社会角度
社会需求存在。人们经常在生活和工作中需要一些名言警句来激励自己或者与他人分享。而这个app可以方便地提供大量的名言警句、句子段落等,满足用户的需求。同时,该应用程序可以通过阅读和学习功能,帮助用户提升自我价值和个人能力,从而产生一定的社会效益。
有利于人们的学习和成长。该应用程序提供了许多优质的阅读材料,使人们可以在阅读中学习知识、提高素质、增长见识。这对于用户的个人成长和社会发展都具有重要意义。
具有普惠性。这个app的使用门槛较低,用户只需下载安装即可轻松使用。因此,它具有较高的普惠性,不仅可以吸引教育、学术、商业等多个领域的用户,还可以让更多的人通过阅读名言警句来感受生活的美好,促进社会文化建设。
有利于知识传播和文化交流。该应用程序提供了便捷的社交分享功能,可以让用户轻松地将自己喜欢的名言警句分享给朋友和同事。这有利于知识的传播和文化的交流,进一步促进社会发展和进步。
4 主要工作
4.1 阶段性目标与提交物
我们拟采用增量模型指导开发工作的进行。总体上,工作安排分为三个阶段,第一阶段是搭建一个能实现最基础功能的系统,之后的两个阶段在其上不断更新迭代。其中系统从无到有是第一个里程碑,功能的扩充和完善是第二个里程碑,稳定性、安全性、易用性、美观程度的提升和优化是本项目第三个里程碑。详细安排见下:
第一阶段目标
第一阶段任务是搭建出一个具有基础功能的,可运行的简单系统。具体如下:
(1)能够实现一款能够为用户提供好句、好书推荐,兼容少数几种主流格式书籍的阅读器,围绕某本书兴趣交流圈子,运行正确的App
(2)实现一个具有一定可用性,业务功能正确的服务器后端
该阶段的提交物为Apk文件、源码仓库地址、简单的开发文档。
第二阶段目标
第二阶段任务是在现有系统基础上拓展,增加新的功能,提供更多服务,具体如下:
(1)能够实现一款能够为用户提供好句、好书推荐,兼容多种主流格式书籍的阅读器,围绕某本书兴趣交流圈子,功能完善、运行正确的App
(2)实现一个具有一定可用性,业务功能正确完善的服务器后端
(3)实现一个具有增删查改等基本功能的后台系统,方便管理员管理数据
该阶段的提交物为Apk文件、源码仓库地址、详细的开发文档及简单的用户使用文档。
第三阶段目标
第三阶段的任务是在现有的功能较完善的系统基础上进一步优化,提高性能,优化界面,进一步提高系统的稳定性。
(1)能够实现一款能够为用户提供好句、好书推荐,兼容多种主流格式书籍的阅读器,围绕某本书兴趣交流圈子,功能完善、运行正确,界面统一美观,简洁易用,适配多种类型设备的App
(2)实现一个业务功能正确完善,稳定可靠,支持高并发,部署简单,具有较高可用性的服务器后端
(3)实现一个界面美观大方,具有增删查改,服务监控,用户监控等多功能的后台管理系统,方便管理员管理数据
该阶段的提交物为Apk文件、源码仓库地址、Docker镜像文件、详细的开发文档及详细的用户使用文档。
4.2 技术路线
设计阶段
项目的设计使用Visio、Edrawer等软件辅助流程设计与原型设计,使用MySql WorkBench、dbdiagram等进行数据库关系设计
开发阶段
软件开发生产线使用CodeArts,代码管理使用gitee。前端的开发主要使用html, css,scss, js等语言,借助vue cli开发。服务端主要使用python语言。
App技术路线
App整体使用MVVM框架,使用Java或Kotlin借助Android Studio IDE、Android Emulator等开发。
其中View使用Material Design设计,以提供一致性、美观和直观的用户体验。
数据仓库是对数据的抽象,它主要接受两方面的数据,一个是使用本地缓存采用SQLite储存的热点数据,另一个是通过Android提供的HttpURLConnection或Apache HttpClient等库调用服务器提供的API与之进行通信交换得到的云数据。数据仓库为上层应用提供数据存取服务,屏蔽了下层的细节。
后台管理系统技术路线
后台管理系统整体采用前后段分离框架。其中前端是一个Web应用,后端与App后端一致。前端采用VUE架构,通过axios与后端通信。
服务端技术路线
服务端为App与后台管理系统提供统一的服务。服务端采用flask框架搭建,整体采用模块化设计。其中文件抽象层屏蔽电子书的格式类型,为上层应用提供统一的电子书格式。数据库使用MySQL,配合redis提高并发量。
测试与质量控制
为追求简洁,以上的流程图中隐藏了测试环节。实际开发中,在每个模块编写完成后,我们都会对其进行模块测试,多个模块整合后会对其进行集中测试。除此之外,我们还会使用华为CodeArts提供的代码检测服务,及时重构低质量代码,保证代码质量和安全。
部署阶段
华为云ECS做后端服务器,MySQL,Redis等基础服务会被部署到该ECS上。为了方便部署和管理,服务器后端和后台WebApp将被分别打包,制作成一个Docker镜像,使用Docker部署。App将会通过Android Studio编译打包签名。
4.3 难题及解决方案
难题1:电子书有多种格式,如何兼容适配?**
为了兼容适配多种电子书格式,我们将在服务端添加文件抽象层,将不同类型的转换成统一的格式,屏蔽电子书格式等细节。
难题2:App中涉及电子书、图片等相对较大的文件的传输,如何保证系统在高并发的情况下依然能够流畅使用?**
针对此问题,我们现考虑使用多层缓存来解决。缓存主要放在App端和服务器端。在App端,我们使用文件缓存来储存热点数据,以避免频繁地访问服务器,减小开销。服务器端我们使用Redis来提供数据库的缓存服务,通过减少MySQL的访问量来整体开销,从而保证系统在高并发的情况下仍然能够流畅使用。
难题3系统的电子书籍资源如何获取?**
书籍是受法律保护的资源,因此本项目如要正式上线,必须要与各出版社联系,取得相应版权。但目前该项目仅用于学习交流,所以我们现考虑从网络获取免费的电子书资源免费,用于构建测试数据。