




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于微信小程序个人知识管理系统设想及达成目录绪论 1论文研究的背景、意义及目的 1国内外研究现状 1本文研究的主要内容 2系统分析与设计 个人知识管理概念与流程 2总体需求分析 3系统功能设计 3系统UI设计 4系统数据库设计 5系统开发相关技术 6微信小程序相关技术 6Egg.js 7服务器部署 8docker介绍 73简介 7Mongodb 9Web端相关技术 8 8 83.4.3Yup与react-hook-form 9系统实现 9登录注册模块实现 9登录成功首页实现 知识库模块实现 文字编辑器实现 复习模块的实现 5系统测试 测试分析 12测试方案 测试结果 总结 附录: 参考文献 致 谢 PAGE\*ROMANPAGE\*ROMANIII基于微信小程序个人知识管理系统设想及达成摘 要在学生的学习和研究中,需要不断吸收具有意义的新知识,将互联网碎片化的知识进行整合意味着以一种复杂的方式创造、储存、分享和使用知识来提高自我效能,以此来协调未来在特定任务上的表现。自我效能有三个关键特征。第一点,自我效能是一个人对自己产生结果的能力的信念,而不是对结果影响的评估。第二点,自我效能关注的是整体结果。最后,自我效能是对一个人未来能做什么的判断,而不是对一个人过去做过什么的评估。所以有效的整合知识为个人自我效能的提升具有很大影响。本文借助华为云服务器完成数据的云交互,让大学生随心所欲的建立和管理个人知识,使其有序化,并不断把新知识融入到个人知识体系当中,在解决问题时,可以有效利用和提取相应的专业知识,优化自身的自我效能,提升自己的知识构建【关键词】微信小程序个人知识库PAGE1PAGE11绪论论文研究的背景、意义及目的国内外研究现状在如今知识库大概分为:博客类,通过编写日志按照时间顺序发布到网上,其他用户也可以利用评论进行经验交流,如国外的WordPress,Tumblr,Medium等,国内的博客园,掘金之类,虽然其整体信息量相比搜索引擎会比较小,但是会过滤很多无用信息以及和发布人互动,更有实用价值;笔记类,国外有oneNote,StickyNotesbyUkiv,Ideanote,Simplenote,NimbusNote,Encryptic,GoogleKeep,RoamResearch,Notion,Notejoy。国内有语雀,印象笔记之类。数字化笔记可以方便大家把信息和想法记录下来,并以自己的理解将其分类以便有所遗忘时进行翻看,它们共同的特点是:支持多种输入形式(文字,照片,视频),支持云端同步,支持知识共享,支持标签分类,让笔者和读者都可以快速关心标签以内的内容;导图和地图类,国外有openknowledgemaps,mindmanager,xmind等,国内有百度脑图之类,导图是把信息可视化,通常围绕单个概念知识,地图则是知识之间的联系和导航,帮助使用者将知识汇聚成知识网;数字图书馆类分为两类,官方的数字图书馆,如各大高校的数字图书馆能提供专业的信息资源,而个人图书馆能把看到的文章收藏到自我的知识库内,兼顾了信息管理和个人知识管理。整合现有的知识库工具,可以得知知识库的管理过程包括检索获取,分类命名,整理存储这些功能。无论是国内外,知识库工具都已经变得十分重要,在国内的团队办公软件中,钉钉和飞书都具有知识库构建的功能。本文研究的主要内容方案设计及选择图1.1知识管理微观模型总体需求分析在本次的设计中,用户的体验流程为结构如图所示:用户注册登录用户注册登录查看操作查看操作查看查看操作查看查看操作查看查看知识库复习题文章更新指数待办学习任务知识库复习题文章更新指数待办学习任务图1.2宏观需求流程图在本次的设计中,用户先要进行账户的登录,如果后端数据库没有查询到匹配的数据,则需要用户进行注册,将数据存储到数据库中,在用户登录之后可以看见自己的文章更新指数来查看最近每天的学习状态,也可以查看自己预定的学习任务,这个任务可以不完成,是给学习者的一个提醒,及时判断自己的学习状态并进行自我调整。最重要的是创建知识库,在登录之后可以随意创建自己的知识合计库然后新建文章,这个需要学者有一定的判别归纳能力,知道自己学习的东西是归为哪一类别,这也是在待办学习任务中隐式提示学者需要考虑的事情。在文章的功能中,用户可以用文字加粗/斜体等功能来提醒自己最关键的文章的信息。在添加知识库之后,用户可以根据知识库来增加复习题,对于知识的回顾也是非常重要的一件事,德国心理学家艾宾浩斯对记忆遗忘规律作过相应的研究,以此证明了遗忘过程是不均衡的,它随时间的递进而有所不同,在学习到一个知识点后最初遗忘得比较快,而以后便逐渐缓慢下来。俄国教育家乌申斯基原则也说明了及时复习的重要性,他表示与其借助复习去恢复记忆,不如借助复习去防止遗忘。这两位学者的理论都不约而同证明了在学习中我们应当去“巩固建筑物”,而不是“修补已经倒塌的建筑物”。系统功能设计2.3.1待办学习任务设计在待办学习任务这种todolist的列表当中,应该拥有添加学习计划,删除学习计划和修改学习计划的功能,而因为这种代办学习任务是服务于知识库的,所以在添加学习任务时,把其设计为预计更新的知识库章节,使用者可以自行添加对应的知识库。具体流程如下图:添加所属知识库(可选)具体知识点/文章标题新建学习计划添加所属知识库(可选)具体知识点/文章标题新建学习计划添加添加修改删除修改删除选择近五日日期与优先级显示学习计划用户选择近五日日期与优先级显示学习计划用户图1.3学习计划模块流程图用户在添加学习计划时,需要写上具体的知识点或者文章标题,再填写上所属于的知识库,选择日期,比起长期的计划,短期计划更加能够坚持完成,所以再本次的设计中,只设计了短期计划的添加,当填写完这些信息后用户可以去对每个学习计划进行修改删除或查看。2.3.2知识库设计知识库的建立,文章的增删改查,文章更新自动更新用户更新指数功能,具体流程如下图所示:PAGEPAGE20系统自动修改,删除系统自动修改,删除新建文章新建知识库更新文章指数用户新建文章新建知识库更新文章指数用户、图1.4知识库与文章模块流程图用户在新建了知识库之后可以在知识库中随意添加文章之后系统会自动将其算在文章更新指数之中,在添加文章时,为了方便用户查阅,也会自动同步用户增加/更改文章的时间,在文章编辑的功能中,主要实现以下几点:2.3.1复习题模块设计复习题目,复习内容新增复习题选择知识库用户在用户增加复习题时,应该选择相应的知识库来辨别所要复习的类别,方便用户在碎片时间中选择自己需要构建维护的学习建筑物。复习题目,复习内容新增复习题选择知识库用户查看选择知识库查看复习题查看选择知识库查看复习题图1.5复习题模块流程图系统UI设计UI界面实现了人与系统之间的有效互动,好的UI设计可以让用户在系统之间进行自然的交流互动操作,同时利用色彩与心理的间接反应,带给使用者好的感受。图1.6色彩对心理影响的分类(图源:毛艳艳)在本次的设计中,主要的色调是蓝,蓝色给人一种沉稳的感觉,而在知识学习的过程中,学者需要沉静下来,这符合了这一设计的最基本要求,在许多学术界面中,也都是使用的蓝色,比如知网,全球学术快报,在团队工作软件中,也有许多以蓝色为基调的APP设计,比如腾讯会议,飞书,这些都是因为蓝色对于人的心理暗示为沉静与安稳。在首页登录的背景选择中,本次选择了巴西插画家paolaSaliby的作品,在其美丽又敏感的作品中,她表示其绘制的角色大多是在经历孤独,都是在自己的内心世界中进行个人旅行。在攀登知识这座大山的时候,我们每个人也都相当于是在孤独的在追求知识的旅途,所以paolaSaliby的作品也与本次设计的作品不谋而合。系统数据库设计当用户注册之后,在数据库中会单独为用户开一条数据,为用户开一个独有的id,然后通过传递这个独特的id和一些字段来进行数据处理,所以只需要考虑功能接口需要的数据准备,不用面向特定功能模块进行数据库结构设计,这里简单列出一些字段:用户信息字段字段名称数据类型约束条件字段说明_idstring唯一用户唯一IDuaernamestring非空用户名suerpassstring非空用户密码updateindexarray可为空更新指数todolistarray可为空学习计划repositoryarray可为空知识库allarticlearray可为空所有文章表中描述了每行数据中的主要字段,具体知识库库中的字段如下表:知识库字段字段名称数据类型约束条件字段说明namestring非空知识库名称briefstring可为空知识库简介privacyBoolean非空知识库是否公开listidstring唯一知识库唯一IDwritingsnum非空学习计划articlearray可为空文章集合具体文章中的字段如下表文章字段字段名称数据类型约束条件字段说明htmlstring非空文章内容titlestring可为空文章标题articleidBoolean非空文章唯一IDdaystring唯一文章创建/修改日期momentnum非空文章创建/修改时刻系统开发相关技术微信小程序相关技术微信小程序的设计模式是MVC模式,即模型、视图和控制器的缩写。MVC是一种流行的代码组织方式。MVC背后的思想是,代码的每一部分都有一个目的,而这些目的是不同的。一些代码保存应用的数据,一些代码让应用看起来更漂亮,一些代码控制应用的功能。MVC是一种将代码的核心功能组织成它们自己的、组织整齐的模型方法。你在思考你的应用程序,重新访问你的应用程序,或与他人分享你的应用程序时更容易和干净。模型:模型代码是你需要的代码封装。视图:视图代码是由所有直接与用户交互的功能。这就是使你的应用看起来很漂亮的代码,来定义你的用户看到和与它交互。控制器:控制器代码充当模型和视图之间的联络人,接收用户输入并决定如何处理它。它是应用程序的大脑,将模型和视图联系在一起。这有点像做饭,你有一个装满食物的冰箱,就像Model一样。冰箱(Model)里有我们准备做晚餐的原材料。你可能也有一两个食谱。食谱规定了你要在冰箱里取出哪些食物,如何将它们组合在一起,以及你需要烹饪多长时间。然后,你有餐具,银器等,这是你的饥饿的朋友和家人用来吃晚餐。桌面项类似于视图。它们允许您的用户与您的模型和控制器的创建进行交互。在微信小程序整个程序中,pages目录里每一个目录文件夹都是小程序的一个页面,每一个页面由js、json、wxml、wxss四部分组成;image目录,存放页面上用到的图片;app.js负责整体逻辑交互;app.json是全局配置;app.wxss是整体样式。除了对目录的把控,还需要了解微信小程序的生命周期:微信小程序生命周期onLoad生命周期函数--监听页面加载onReady生命周期函数--监听页面初次渲染完成onShow生命周期函数--监听页面显示onHide生命周期函数--监听页面隐藏onUnload生命周期函数--监听页面卸载同时在微信小程序的开发中必须了解API接口与组件的思想。应用程序编程接口(api)使应用程序能够轻松安全地交换数据和功能,从而简化了软件开发和创新。应用程序编程接口使公司能够向外部第三方开发人员、业务合作伙伴和公司内部部门开放其应用程序的数据和功能。这允许服务和产品通过文档化的接口相互通信,并利用彼此的数据和功能。开发人员不需要知道API是如何实现的;他们只是使用接口与其他产品和服务进行通信。在本次的设计中,所用到的微信生态提供的API就有:微信小程序APIwx.switchTab跳转到tabBar页面,并关闭其他所有非tabBar页面wx.navigateTo保留当前页面,跳转到应用内的某个页面wx.navigateBack关闭当前页面,返回上一页面或多级页面wx.showModal显示模态对话框wx.setNavigationBarTitle动态设置当前页面的标题wx.setStorageSync将数据存储在本地缓存中指定的key中wx.setNavigationBarColor设置页面导航条颜色组件,在编程和工程学科中,组件是更大的程序或结构的可识别部分。通常,组件提供一个特定的函数或一组相关的函数。在程序设计中,系统被划分为多个组件,这些组件经常由多个模块组成。在面向对象编程和分布式对象技术中会有很多组件,组件是一种可重用的程序构件,它可以与分布式网络中同一计算机或其他计算机中的其他组件组合在一起形成应用程序。组件的例子包括:图形用户界面中的单个按钮、小型计算器、数据库管理器的界面。在有很多重复UI的时候,我们都可以封装组件进行复用。Egg.jsEgg.js是由Node.js和Koa.js发展而来的,Node.js的官方API支持的异步编程模型都是回调形式,因此带来很多回调地狱的问题。说到回调地狱,是因为同步Javascript中,当我们运行代码时,浏览器会立即返回结果。一次只能发生一个操作,因为它是单线程的。因此,在执行操作时,所有其他进程都被搁置。因为一些函数的响应不是立即的。这需要一些时间,下次操作不能立即开始。它必须等待函数在后台完成。由于完成这些操作需要时间,在完成回调函数之前不能继续到下一行,因为它可能会抛出一个表示不可用的错误,但是也不能立即暂停程序。在回调函数嵌套回调函数这种方式下,代码结构看起来像一个金字塔,使其难以阅读和维护。此外,如果一个函数中存在错误,那么所有其他函数都会受到影响。Koa.js应运而生,Koa.js的官方网站提到Koa.js是一个更小,更有表现力,更健壮的web应用程序和api的基础。Koa消除了回调,增加了洋葱模型的使用方式,如图1.7,在洋葱模型中,每一层相当于一个中间件,用来处理特定的功能,比如错误处理、Session处理等等。其处理方式先是Request,从外层到内层,然后执行下一步函数,之后是执行函数后的Response,从内层到外层,也就是说每一个中间件都有两次处理时机。并且该框架内置的错误包罗万象可帮助开发人员避免网站崩溃。即使不编写额外的代码,程序员也可以使用简单的“try/catch”命令报告错误。开发者也可以通过简单地修改默认设置在Koa.js中配置错误处理。它基于ES6规范构建。通过拥有许多新的类和模块,ES6可以更轻松地构建任何复杂的程序。Koa.js还帮助开发者使用Context来封装普通的响应和请求对象到一个单独的对象中。这个统一的对象通过包含大量有用的方法和评估器,这样开发人员会更容易创建web的应用程序和api。图1.7koa.js洋葱模型而Egg.js是为构建企业应用和框架而诞生的,目的是在追求明确规范和合作的过程中求同存异,专注于为Web开发提供核心特性,提供灵活的、可扩展的插件机制,而不是常见Web框架中流行的市场模式(集成了数据库、模板引擎、前端框架等功能)。不会进行技术选择,因为默认的技术选择使得框架的可伸缩性太差,无法满足各种定制需求。在Egg.js的帮助下使用者可以很容易地基于现有的技术堆栈构建适合他们业务场景的框架。Egg的插件机制是非常可扩展的,聚合插件并根据它们自己的业务场景定制配置,极大地降低了开发成本。当然它本身只集成插件的可能性,而不是提供插件。容器化技术和dockerDocker是Moby项目的一个子集,是一个用于在服务器和云上构建、运行和管理容器的软件框架。术语“docker”可以指工具(命令和守护进程),也可以指Dockerfile文件格式。过去,当你想要运行一个web应用程序,您买了一个服务器,Linux安装,设置堆栈,运行应用程序。然而,时代已经变了,互联网不再专注于单个服务器,而是建立在一个通常被称为“云”的系统中相互依赖、冗余的服务器阵列之上。Docker引擎对于需要轻量级、干净的测试环境,但不需要复杂编配的独立开发人员来说非常有用,服务器的概念可以从硬件的限制中解脱出来,而从本质上成为一个软件。这些基于软件的服务器称为容器,它们是它们所运行的Linux操作系统加上超本地化运行时环境(容器的内容)的混合。MongodbWeb端相关技术Next.js优点系统实现登录注册模块实现图4.1登录注册界面登录成功首页实现图4.2添加计划界面知识库模块实现图4.3知识库界面文字编辑器实现图4.4文章编辑界面及最近文档界面复习模块的实现图4.4复习界面系统测试测试分析测试分为系统测试合集成测试,系统测试是一个测试级别,在这个级别中执行测试,以了解一个完整的构建是否符合为其制定的功能性和非功能性需求。相反,集成测试是同时连接和测试两个或多个软件单元的测试阶段。系统测试检查每个软件单元,以确保它们作为一个整体或组合构建的熟练程度。通常在单元测试和集成测试之后进行系统测试。测试方案在本次的设计中先是使用单元测试再进行系统测试,在本地开发时,每完成一个功能,先不连接数据库,就在微信开发者工具中进行单元测试。在系统整体开发完毕后,在本地把egg.js运行起来,链接到华为云上的mongodb进行整体流程的测试,注册登录的功能是否完善,登陆后是否跳转到首页,首页显示的时候功能是否齐全,在添加完文章之后是否显示正确,进行修改时是否会有错误,在复习系统中答案与题目是否匹配等等测试结果在本次个人知识库小程序中的测试比较顺利,成功完成了登录注册的功能,计划的添加更改功能,知识库的构建与文章填写修改功能,复习题的增加查看功能,每个模块的功能都达到了基本的预期,这次的测试也比较顺利。总结在这次的设计中,我借鉴的是语雀的功能模块,最初的设计也是因为我经常在语雀上做笔记然后有这样的灵感,在长达几个月的实践中,从有一些懵懂到做出这些功能,中间也花费了大量的学习时间与成本,很多问题都需要去自己研究解决,在stackoverflow,github,掘金网站上有很多优质的答案,也让我逐渐成长了起来。在开发的期间需要不断的思考,也让对整体的流程架构有一定的理解,从而锻炼自己得到了提升。在这次的设计中我接触到微信小程序领域和Egg.js领域,一个软件数据的交互从无到有我终于有了具体的认知,对于mogodb的命令使用和在华为云上部署linux我也是第一次接触,让我对运维也有了一定的认识。虽然目前只是一名大四学生,在做这个项目的时候还有一定挑战,但是经过自我的查询问题能力解决了开发中的问题,完成了这个项目,也是心里感觉舒服,挑战了自我还达成了目的。但是我的脚步不会止步于此,我会继续向前,继续完善我的技术,努力提高自己让自己变得优秀起来。参考文献[1].叶俊.符合人全面发展的知识结构的塑造[J].哲学进展,2020,9(4):175-179.[2].袁芳,许文.基于微信小
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药店开药归谁管理制度
- 莆田小型仓库管理制度
- 薪酬管理体系管理制度
- 设备借用流程管理制度
- 设备实行集中管理制度
- 设备整机采购管理制度
- 设备点检维护管理制度
- 设备维护保养管理制度
- 设备防火安全管理制度
- 设计公司科室管理制度
- 2022-2023学年广东省广州市花都区四年级数学第二学期期末考试模拟试题含解析
- 星海音乐学院乐理试题A卷
- 2019年4月27日山东省纪委监委遴选公务员考试真题及答案
- ktv包房服务员岗位职责8篇
- 西安某大跨度钢桁架人行天桥结构设计分析
- 新疆全部及全国部分加气站分布情况6
- 初中学段劳动任务清单(七到九年级)
- 2023年中国各地磁偏角
- 六维领导力专题知识
- 【护士资格考试】云南省精神病医院模拟检测练习题
- 高温高压设备警示牌
评论
0/150
提交评论