摘 要
随着社会的快速发展,城乡差距逐渐拉大,留守儿童问题也日益凸显。留守儿童,指的是那些因父母双方或一方长期外出务工、经商等原因,而被迫留在户籍所在地,无法与父母双方共同生活的未成年子女。他们面临着亲情缺失、教育不足、心理失衡等多重困境,急需社会各界的关注和帮助。
在这样的背景下,我们基于Vue.js和Node.js技术栈,开发了一个留守儿童帮扶网站。该网站旨在通过线上平台,汇聚社会爱心力量,为留守儿童提供全方位的帮扶支持。通过此平台,我们可以为留守儿童提供心理咨询服务、教育资源支持、亲情沟通渠道等,努力营造一个关爱留守儿童、助力他们健康成长的网络环境。
该网站采用Vue.js作为前端框架,利用其组件化、响应式等特性,为用户呈现一个界面友好、交互体验良好的网站。同时,我们选用Node.js作为后端技术,利用其高性能、非阻塞I/O模型等特性,实现高效的数据处理和服务响应。前后端通过RESTful API进行通信,确保数据的实时更新和同步。
我们希望通过这个留守儿童帮扶网站,让更多的人了解留守儿童的生活状况,关注他们的成长需求。同时,我们也期待通过这个平台,汇聚更多的爱心力量,为留守儿童送去关爱与温暖。让我们携手共进,为留守儿童创造一个更加美好的未来!
关键词:留守儿童帮扶网站;Node.js ;Web应用
A website for helping left behind children based on Vue+node.js
Abstract
With the rapid development of society, the urban-rural gap is gradually widening, and the problem of left behind children is also becoming increasingly prominent. Left behind children refer to those minor children who are forced to stay in the place where their registered residence is located and cannot live with both parents due to reasons such as both parents or one of them has been working or doing business for a long time. They are facing multiple difficulties such as lack of family affection, insufficient education, and psychological imbalance, and urgently need the attention and help of all sectors of society.
In this context, we have developed a website for helping left behind children based on Vue.js and Node.js technology stacks. This website aims to gather the power of social love through online platforms and provide comprehensive assistance and support for left behind children. Through this platform, we can provide psychological counseling services, educational resource support, and family communication channels for left behind children, striving to create a network environment that cares for left behind children and helps them grow up healthily.
The website adopts Vue.js as the front-end framework, utilizing its componentization, responsiveness and other characteristics to present users with a user-friendly and interactive experience. At the same time, we choose Node.js as the backend technology, utilizing its high-performance, non blocking I/O model and other characteristics to achieve efficient data processing and service response. The front-end and back-end communicate through RESTful APIs to ensure real-time updates and synchronization of data.
We hope to use this left behind children assistance website to help more people understand the living conditions of left behind children and pay attention to their growth needs. At the same time, we also look forward to gathering more loving forces through this platform to send care and warmth to left behind children. Let's work together to create a better future for left behind children!
Key words:Left behind children assistance website; Node.js; Web applications
第一章 绪 论
1.1研究背景和意义
基于Vue.js和Node.js的留守儿童帮扶网站的研究背景与意义,是一个融合了技术发展与社会责任的复杂议题。在快速的城市化进程中,越来越多的农民工涌入城市寻求更好的就业机会,他们的子女——留守儿童,则被迫留在农村,面临诸多生活和教育上的挑战。这些孩子普遍缺乏父母的陪伴与关爱,教育资源也相对匮乏,心理问题逐渐显现。
技术的飞速发展,特别是前端框架Vue.js和后端技术Node.js的广泛应用,为解决这一问题提供了新的可能性。Vue.js以其直观易用的组件化构建和响应式数据绑定,为开发交互性强、体验流畅的网站提供了有力支持。而Node.js则以其高效异步处理能力,使得服务端能够快速响应和处理大量并发请求,保证了网站的稳定运行和数据的及时处理。
留守儿童帮扶网站的出现,不仅是对现有帮扶模式的数字化升级,更是对社会责任的积极承担。通过这一平台,我们可以将分散的社会资源有效整合,为留守儿童提供精准、及时的帮助。同时,网站还能作为信息交流的桥梁,让更多人了解留守儿童的生活状况,激发社会各界的同情与关爱。
因此,基于Vue.js和Node.js的留守儿童帮扶网站的研究与实现,不仅具有技术上的创新价值,更承载着深刻的社会意义。它不仅是技术的展现,更是对社会责任的践行,对于推动社会公平、促进留守儿童健康成长具有不可估量的积极作用。
1.2国内外研究现状
在国内,随着技术的不断进步和社会对留守儿童问题的日益关注,基于Web技术的帮扶平台逐渐兴起。这些平台大多采用前端框架如Vue.js来构建用户界面,利用Node.js等后端技术来处理服务器端的逻辑和数据处理。这些平台通常具备信息发布、在线交流、资源分享等功能,为留守儿童及其家庭提供了便捷的线上帮扶渠道。然而,目前国内的留守儿童帮扶网站在功能丰富度、用户体验、数据安全性等方面仍有待提升。
国外研究现状:
在国外,类似的留守儿童帮扶网站也受到了广泛关注。由于国外在信息技术和社会服务方面的发展相对成熟,这些平台往往更加注重用户隐私保护、数据安全以及个性化服务。例如,一些国外平台采用了先进的加密技术来保护用户信息,同时提供了丰富的互动功能来增强用户之间的联系。此外,国外的研究者还在探索如何将人工智能技术应用于留守儿童帮扶领域,如通过大数据分析来精准匹配帮扶资源,以及利用机器学习来提升用户体验等。
总结:
国内外在基于Vue.js和Node.js的留守儿童帮扶网站研究方面均取得了一定的进展,但仍存在诸多挑战和机遇。未来的研究应更加注重技术创新与社会需求的结合,不断提升平台的功能性和用户体验,为留守儿童提供更加全面、高效的帮扶服务。同时,还应加强国内外交流与合作,共同推动留守儿童帮扶领域的进步与发展。
1.3论文结构与章节安排
本文共分为六章,章节内容安排如下:
第一章为引言,此章节对所设计和实现的系统的背景和意义和开发现状进行详细的论述以及说明,同时进行了论文整体框架的结构的简要介绍。
第二章为系统需求分析,章节所做的主要的工作是对系统进行了技术、经济和操作方面可行性的分析;对系统实行了总体功能的需求、用例分析。
第三章为系统的设计,主要是对系统的功能结构进行设计,并对系统数据库的概念结构以及物理结构的设计进行了分析。
第四章就是对系统的实现,根据系统功能的划分,分别的对系统所需要实现的前端客户功能和后端管理员功能进行了分析和说明。
第五章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试
第六章:总结
第二章 系统分析
2.1可行性分析
2.1.1技术可行性
基于Vue.js的前端框架与Node.js的后端技术栈,结合现代Web开发的最佳实践,为留守儿童帮扶网站提供了坚实的技术基础。Vue.js的响应式特性和组件化开发方式,使得前端开发更加高效和可维护;而Node.js的异步处理能力和丰富的生态系统,则确保了后端服务的稳定性和可扩展性。因此,从技术角度来看,该平台的设计与实现是完全可行的。
2.1.2经济可行性
留守儿童帮扶网站在经济上具有高度的可行性。首先,Vue.js和Node.js均为开源技术,无需支付高昂的授权费用。其次,这两种技术被广泛采用,有丰富的资源和社区支持,降低了开发和维护的成本。再者,平台能有效提升留守儿童帮扶网站效率,减少人力成本。该平台在成本控制、资源利用和效率提升等方面均表现出良好的经济可行性。
2.1.3操作可行性
留守儿童帮扶网站在操作上完全可行。Vue.js提供直观且用户友好的界面设计,使得志愿者和管理人员能够轻松上手并进行操作。Node.js后端则确保系统响应迅速,处理请求高效,提供良好的用户体验。同时,平台设计过程中将充分考虑用户体验和操作流程的合理性,确保用户能够方便快捷地完成各项任务。因此,从操作角度来看,该平台的设计和实现是切实可行的。
2.2系统功能分析
2.2.1 功能性分析
按照留守儿童帮扶网站的角色,划分了普通用户、管理员这两大部分。功能需求分析如下:
普通用户功能介绍:
注册登录:普通用户需要能够通过安全的注册登录界面输入个人信息,以便享受网站提供的服务。
心灵港湾:普通用户可以在心灵港湾板块找到安慰和支持,可以阅读心理学知识、获取心理健康建议等。
通知公告:普通用户可以查看网站发布的通知公告,包括活动信息、重要通知等内容。
案例分享:普通用户可以阅读和分享留守儿童的案例故事,获取启发和帮助。
心理课堂:普通用户可以参加网站组织的心理课堂活动,学习心理健康知识和技巧。
爱心活动:普通用户可以参与网站组织的爱心公益活动,为留守儿童提供帮助和支持。
教育生活:普通用户可以获取有关教育、生活等方面的信息和建议,为留守儿童提供更好的成长环境。
励志分享:普通用户可以分享正能量和励志故事,为留守儿童传递积极的生活态度和价值观。
我的账户:普通用户可以查看个人账户信息、参与过的活动记录等,方便进行账户管理和查看。
个人首页:普通用户可以查看个人信息、参与过的活动记录等。
收藏:普通用户可以收藏感兴趣的内容,方便以后查阅和分享。
管理员管理模块:
登录:管理员需要通过安全的登录界面输入用户名和密码,以确保系统的安全性和身份验证。
系统用户管理:管理员可以管理系统的用户,包括普通用户、教师用户和其他管理员,进行用户信息的查看、编辑和删除。
案例分享管理:管理员可以管理案例分享板块,包括发布、编辑和删除案例分享内容,以确保内容的质量和合法性。
心理课堂管理:管理员可以管理心理课堂板块,包括发布、编辑和删除心理课堂活动,确保活动的及时更新和内容的丰富性。
爱心活动管理:管理员可以管理爱心活动板块,包括发布、编辑和删除爱心活动信息,吸引用户参与和提供帮助。
教育生活管理:管理员可以管理教育生活板块,包括发布、编辑和删除教育生活相关信息,为留守儿童提供更好的成长环境。
励志分享管理:管理员可以管理励志分享板块,包括发布、编辑和删除励志分享内容,鼓励用户分享正能量和积极经历。
轮播图管理:管理员可以管理网站首页的轮播图,包括添加、编辑和删除轮播图图片,以吸引用户关注和宣传重要活动。
通知公告管理:管理员可以发布、编辑和删除网站的通知公告,包括活动信息、重要通知等内容。
考试管理:管理员可以管理网站的考试功能,包括科目列表、试题库、错题记录和试卷列表等,确保考试功能的正常运行和及时更新。
2.2.2 非功能性分析
留守儿童帮扶网站的非功能性需求比如留守儿童帮扶网站的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2-1表格中:
表2-1留守儿童帮扶网站非功能需求表
安全性 | 主要指留守儿童帮扶网站数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指留守儿童帮扶网站能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响留守儿童帮扶网站占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着留守儿童帮扶网站的页面展示内容进行操作,就可以了。 |
可维护性 | 留守儿童帮扶网站开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
2.3 系统用例分析
通过2.2功能的分析,得出了留守儿童帮扶网站的用例图:
普通用户角色用例如图2-1所示。
图2-1留守儿童帮扶网站普通用户角色用例图
后端管理上的管理员是维护整个留守儿童帮扶网站中所有数据信息的。管理员角色用例如图2-2所示。
2.4系统操作流程
2.4.1用户登录流程
对于系统的安全性的第一关,就是用户想要进入系统,必须通过登录窗口,输入自己的登录信息才可以进行登录,用户输入的信息准确无误后才可以进入到操作系统界面,进行功能模块的相对应操作,如果用户输入的信息不正确,则窗口出现提示框,用户登录失败,返回到第一步进行重新输入,如图2-3所示。
图2-3登录操作流程图
2.4.2信息添加流程
对于留守儿童帮扶网站,需要随时添加所需要的数据信息,对于用户添加信息,需要根据添加界面,根据选框的内容进行填写所要添加的数据信息,信息输入完成后判断数据信息是否符合要求,符合要求则添加完成,用户所添加的信息不符合要求,则需要返回到第一步,重新输入数据信息,再进行判断操作,如图2-4所示。
图2-4信息添加流程图
2.4.3信息删除流程
不管是哪个用户角色进入到不通的系统操作界面,都可以进行不同的信息内容的操作功能,对用系统数据信息的删除,用户一旦将信息删除,那么该删除的数据信息将无法恢复,所以用户在对数据删除事,一定判断删除的内容是否是确定要删除的,确定无误后选择确定删除操作,如图2-5所示。
图2-5信息删除流程图
第三章 系统总体设计
3.1系统架构设计
本留守儿童帮扶网站从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。
图3-1 留守儿童帮扶网站架构设计图
表现层(UI):又称UI层,主要完成本留守儿童帮扶网站的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本留守儿童帮扶网站时的舒适度。UI的界面设计也要适应不同版本的留守儿童帮扶网站以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。
业务逻辑层(BLL):主要完成本留守儿童帮扶网站的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。
数据层(DL):由于本留守儿童帮扶网站的数据是放在服务端的mysql数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本留守儿童帮扶网站的数据存储和管理功能。
3.2系统总体设计
留守儿童帮扶网站总体分为前台用户模块和后台管理员模块。
两个模块表现上是分别独立存在,但是访问的数据库是一样的。每一个模块的功能都是根据先前完成的需求分析,并查阅相关资料后整理制作的。
综上所述,系统功能结构图如下图所示。
图3-2系统功能结构图
3.3开发流程设计
留守儿童帮扶网站的开发对管理模块和系统使用的数据库进行分析,编写代开发,规划和操作是构建信息管理应用程序的必要三步曲,它决定了系统是否能够真正实现预设功能以及是否可以在成功设计后实施。在开发过程中,每个阶段必须严格按照线性顺序进行开发,并且在相应阶段生成的每个工作都可以通过技术进行验证和检查。确保一个阶段完成后是正确的,不会造成下一阶段拖拽现象,使系统完成设计功能后得到保证。
从留守儿童帮扶网站的成功开发经验来看,上述方法效果最为明显,最大程度地降低了系统开发的复杂性。如图3-3所示。
图3-3开发系统流程图
3.4数据库设计
数据库是信息系统的基础和核心。数据库设计的好坏直接影响到信息系统开发的成败。创建数据库表首先确定实体的属性和实体之间的关系。根据关系创建一个数据表。
3.4.1实体ER图
数据库是整个软件编程中最重要的一个步骤,对于数据库问题主要是判定数据库的数量和结构公式的创建。展示系统使用的是Mysql进行对数据库进行管理,进行保证数据的安全性、稳定性等。
概念模型的设计是为了抽象真实世界的信息,并对信息世界进行建模。它是数据库设计的强大工具。数据库概念模型设计可以通过E-R图描述现实世界的概念模型。系统的E-R图显示了系统中实体之间的链接。而且Mysql数据库是自我保护能力比较强的数据库,下图主要是数据库实体的E-R图如图3-4所示:
图3-4实体的E-R图
3.4.2数据表
我们可以根据数据结构的详细分析要求,我们根据输入和输出数据量的要求进行分析,确定什么表表,结构之间的关系,我们可以验证,调整和完善,查询和浏览过程,可以实现数据库,以使用户对数据和功能有更多要求。
基于系统使用的数据库管理系统的特点,对数据库的概念模型进行了转换和构建。但是,这个系统只需要充分考虑留守儿童帮扶网站的功能,而且组织比较清晰。数据表如下。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | case_sharing_id | int | 10 | 0 | N | Y | 案例分享ID | |
2 | case_name | varchar | 64 | 0 | Y | N | 案例名称 | |
3 | case_images | varchar | 255 | 0 | Y | N | 案例图片 | |
4 | case_time | date | 10 | 0 | Y | N | 案例时间 | |
5 | case_number | varchar | 64 | 0 | Y | N | 案例编号 | |
6 | case_content | longtext | 2147483647 | 0 | Y | N | 案例内容 | |
7 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
8 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | educational_life_id | int | 10 | 0 | N | Y | 教育生活ID | |
2 | article_name | varchar | 64 | 0 | Y | N | 文章名称 | |
3 | article_images | varchar | 255 | 0 | Y | N | 文章图片 | |
4 | article_number | varchar | 64 | 0 | Y | N | 文章编号 | |
5 | share_time | datetime | 19 | 0 | Y | N | 分享时间 | |
6 | sharing_content | longtext | 2147483647 | 0 | Y | N | 分享内容 | |
7 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
8 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | exam_question_id | mediumint | 8 | 0 | N | Y | ||
2 | subject_name | varchar | 255 | 0 | Y | N | 科目名称 | |
3 | type | varchar | 20 | 0 | Y | N | 类型 | |
4 | title | varchar | 255 | 0 | Y | N | 题目 | |
5 | question_item | varchar | 500 | 0 | Y | N | 选项 | |
6 | answer | varchar | 500 | 0 | Y | N | 参考答案 | |
7 | score | double | 9 | 2 | Y | N | 总分 | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | inspirational_sharing_id | int | 10 | 0 | N | Y | 励志分享ID | |
2 | story_name | varchar | 64 | 0 | Y | N | 故事名称 | |
3 | story_cover | varchar | 255 | 0 | Y | N | 故事封面 | |
4 | story_number | varchar | 64 | 0 | Y | N | 故事编号 | |
5 | share_time | datetime | 19 | 0 | Y | N | 分享时间 | |
6 | story_content | longtext | 2147483647 | 0 | Y | N | 故事内容 | |
7 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
8 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | love_activities_id | int | 10 | 0 | N | Y | 爱心活动ID | |
2 | activity_name | varchar | 64 | 0 | Y | N | 活动名称 | |
3 | activity_images | varchar | 255 | 0 | Y | N | 活动图片 | |
4 | activity_time | datetime | 19 | 0 | Y | N | 活动时间 | |
5 | event_location | varchar | 64 | 0 | Y | N | 活动地点 | |
6 | activity_content | longtext | 2147483647 | 0 | Y | N | 活动内容 | |
7 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
8 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
表psychological_classroom (心理课堂)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | psychological_classroom_id | int | 10 | 0 | N | Y | 心理课堂ID | |
2 | psychological_name | varchar | 64 | 0 | Y | N | 心理名称 | |
3 | psychological_cover | varchar | 255 | 0 | Y | N | 心理封面 | |
4 | video_attachments | varchar | 255 | 0 | Y | N | 视频附件 | |
5 | release_time | datetime | 19 | 0 | Y | N | 发布时间 | |
6 | content_details | longtext | 2147483647 | 0 | Y | N | 内容详情 | |
7 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
8 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | regular_users_id | int | 10 | 0 | N | Y | 普通用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
4 | contact_information | varchar | 64 | 0 | Y | N | 联系方式 | |
5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | subject_id | int | 10 | 0 | N | Y | ||
2 | name | varchar | 255 | 0 | Y | N | ||
3 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | exam_id | mediumint | 8 | 0 | N | Y | 考试id | |
2 | subject_name | varchar | 255 | 0 | Y | N | ||
3 | name | varchar | 32 | 0 | N | N | 考试名称:[2,32] | |
4 | duration | int | 10 | 0 | Y | N | 答题时长 | |
5 | score | double | 9 | 2 | Y | N | 总分 | |
6 | status | varchar | 10 | 0 | Y | N | 状态:启用、禁用 | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | user_id | int | 10 | 0 | Y | N | 出题人 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | exam_question_id | mediumint | 8 | 0 | N | Y | ||
2 | subject_name | varchar | 255 | 0 | Y | N | 科目名称 | |
3 | type | varchar | 20 | 0 | Y | N | 类型 | |
4 | title | varchar | 255 | 0 | Y | N | 题目 | |
5 | question_item | varchar | 500 | 0 | Y | N | 选项 | |
6 | answer | varchar | 500 | 0 | Y | N | 参考答案 | |
7 | score | double | 9 | 2 | Y | N | 总分 | |
8 | question_order | int | 10 | 0 | Y | N | 排序 | |
9 | exam_id | mediumint | 7 | 0 | Y | N | 所属试卷 | |
10 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_answer_id | mediumint | 8 | 0 | N | Y | ||
2 | user_id | mediumint | 7 | 0 | N | N | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
3 | exam_id | mediumint | 7 | 0 | N | N | 0 | 考试id |
4 | score | double | 9 | 2 | Y | N | 0.00 | 分数 |
5 | answers | text | 65535 | 0 | Y | N | 答案 | |
6 | score_detail | text | 65535 | 0 | Y | N | 评分详情 | |
7 | objective_score | double | 9 | 2 | Y | N | 0.00 | 客观题得分 |
8 | subjective_score | double | 9 | 2 | Y | N | 0.00 | 主观题得分 |
9 | score_state | tinyint | 4 | 0 | Y | N | 0 | 评分状态 |
10 | nickname | varchar | 255 | 0 | Y | N | 提交人 | |
11 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | open_id | varchar | 255 | 0 | Y | N | 针对获取用户信息字段 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_answer_id | mediumint | 8 | 0 | N | Y | ||
2 | subject_name | varchar | 255 | 0 | Y | N | 科目名称 | |
3 | question_item | varchar | 255 | 0 | Y | N | 选项 | |
4 | title | varchar | 255 | 0 | Y | N | 题目 | |
5 | type | varchar | 255 | 0 | Y | N | 题目类型 | |
6 | exam_id | mediumint | 7 | 0 | N | N | 0 | 考试id |
7 | score | double | 9 | 2 | Y | N | 0.00 | 分数 |
8 | answers | text | 65535 | 0 | Y | N | 用户提交的答案 | |
9 | answer | text | 65535 | 0 | Y | N | 参考答案 | |
10 | score_detail | text | 65535 | 0 | Y | N | 评分详情 | |
11 | objective_score | double | 9 | 2 | Y | N | 0.00 | 客观题得分 |
12 | subjective_score | double | 9 | 2 | Y | N | 0.00 | 主观题得分 |
13 | score_state | tinyint | 4 | 0 | Y | N | 0 | 评分状态 |
14 | nickname | varchar | 255 | 0 | Y | N | 提交人 | |
15 | user_id | int | 10 | 0 | N | N | 提交人ID | |
16 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
17 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
第四章 系统详细设计与实现
4.1普通用户功能模块
4.1.1用户登录界面
用户登录,用户通过输入账号和密码,选择角色并点击登录进行系统登录操作,如下图所示。
图4-1用户登录界面图
登录的关键代码如下:
const md5 = require("md5");
var Controller = require("../core/controller.js");
class Login extends Controller {
constructor(config) {
super(
Object.assign({
tpl: "./login/",
service: "user",
},
config
)
);
}
}
Login.prototype.api = async function(ctx) {
var body = ctx.request.body;
var obj = await $.services["user"].get_obj({
username: body.username
},{like:false});
if (obj) {
var group = await $.services["user_group"].get_obj({
name:obj.user_group
})
if (group){
if (group.name!=="管理员"){
var sql = "select examine_state from "+ group.source_table +" WHERE user_id = " + obj.user_id;
var userExamine = await $.mysql.run(sql);
if (userExamine && userExamine.length > 0 && userExamine[0].examine_state!=="已通过"){
return {
error: {
code: 70000,
message: "该用户审核未通过"
},
};
}
}
if (obj.state!==1){
return {
error: {
code: 70000,
message: "用户非可用状态,不能登录"
},
};
}
var password = md5(body.password);
if (password === obj.password) {
ctx.session.user = obj;
var date = Date.parse(new Date());
var token = md5(obj.user_id + "_" + date);
await $.services["access_token"].add({
token,
info: JSON.stringify(obj),
user_id:obj.user_id
});
obj.token = token;
return {
result: {obj}
};
} else {
return {
error: {
code: 70000,
message: "密码错误"
},
};
}
}else {
return {
error: {
code: 70000,
message: "用户组不存在"
},
};
}
} else {
return {
error: {
code: 70000,
message: "账户不存在"
}
};
}
};
4.1.2用户注册界面
注册,通过填写密码、昵称、邮箱、性别、姓名等信息,输入完成后选择提交即可注册成功,如下图所示。
图4-2注册界面图
注册的关键代码如下:
Register.prototype.index = async function(ctx) {
var group_list = await $.services["user_group"].get_list({}, Object.assign({}, this.config));
return await ctx.render(this.config.tpl + "index.html", {
group_list
});
};
Register.prototype.api = async function(ctx) {
var user = $.services.user;
var body = ctx.request.body;
var username = body.username;
var obj = await user.get_obj({
username
});
if (obj) {
return {
error: {
code: 70000,
message: "账户名已存在",
},
};
} else {
var password = md5(body.password);
var nickname = body.nickname;
var user_group = body.user_group;
var email = body.email;
var email_state= body.hasOwnProperty('email_state') ? body.email_state : 0;
var phone = body.phone;
var phone_state= body.hasOwnProperty('phone_state') ? body.phone_state : 0;
var avatar = body.avatar;
var bl_reg = await user.add({
username,
password,
nickname,
user_group,
email,
email_state,
phone,
phone_state,
avatar
});
if (bl_reg) {
return {
result: "注册成功"
};
} else {
return {
error: {
code: 70000,
message: "注册失败",
},
};
}
}
};
4.1.3前台首页界面
前台首页,用户进入留守儿童帮扶网站,可以对首页、心灵港湾、通知公告、案例分享、心理课堂、爱心活动、教育生活、励志分享等功能模块进行相对应操作,如下图所示。
图4-3前台首页界面图
4.1.4心理课堂界面
心理课堂,提供心理课程的板块,普通用户可以参加网站组织的心理课堂活动,学习心理健康知识和技巧。还可以进行点赞、收藏和评论。如下图所示。
图4-4心理课堂界面图
心理课堂添加的关键代码如下:
Controller.prototype.add = async function(ctx) {
var result = await this.service.add(ctx.request.body, this.config);
if (this.service.error) {
return {
error: this.service.error,
};
}
return {
result,
};
};
删:
Controller.prototype.del = async function(ctx) {
if (!Object.keys(ctx.query).length) {
return {
code: 30000,
message: "删除条件不能为空!",
};
}
var result = await this.service.del(ctx.request.query, this.config);
if (this.service.error) {
return {
error: this.service.error,
};
}
return {
result,
};
};
改:
Service.prototype.set = async function(query, body, config) {
var sql = $.mysql.toSetSql(query, body, Object.assign({}, this.config, config || {}));
var ret = await this.run(sql);
return ret;
}
4.1.5爱心活动界面
普通用户可以参与网站组织的爱心公益活动,为留守儿童提供帮助和支持。还可以进行点赞、收藏和评论。爱心活动界面如下图所示。
图4-5爱心活动界面图
4.1.6教育生活界面
提供有关教育、生活等方面信息和建议的板块,为留守儿童提供更好的成长环境。还可以进行点赞、收藏和评论。教育生活界面如下图所示。
图4-6教育生活界面图
4.2. 管理员功能模块
4.2.1管理员登录界面
管理员进入到操作界面,通过登录窗口进行在线填写自己的用户名、密码、角色进行登录,登录成功后进入到系统操作界面进行相应信息的获取,如下图所示。
图4-8管理员登录主界面图
4.2.2管理员首页功能界面
管理员登陆系统后,可以对系统用户、案例分享管理、心理课堂管理、爱心活动管理、教育生活管理、励志分享管理、系统管理、通知公告管理、考试管理等功能模块进行相对应操作,在首页可以查看试卷平均统计和考试成绩统计表。如下图所示。
图4-9管理员首页功能界面图
4.2.3 系统用户管理界面
管理员可以对系统中所有的用户角色进行管控,包含了管理员、用户这两种角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户。系统用户管理界面如下图所示。
图4-10系统用户界面图
4.2.4案例分享管理界面
案例分享管理,管理员点击“案例分享管理”会显示出案例分享列表和案例分享添加这两个子菜单,管理员可以发布成功帮扶案例,展示帮扶成果,激励更多人参与帮扶活动。管理员可以根据案例类型、地区等进行分类管理,并提供搜索功能,方便用户查找。案例分享列表和案例分享添加如下图所示。
图4-11案例分享列表界面图
图4-12案例分享添加界面图
4.2.5系统管理界面
系统管理,在系统管理页面管理员可以对系统前台展示的轮播图进行增删改查,方便用户进行查看。如下图所示。
图4-13轮播图管理界面图
轮播图上传的关键代码如下:
Controller.prototype.upload = async function(ctx) {
var req = ctx.request;
var query = req.query;
var url = "";
if (req.files && req.files.file) {
var f = req.files.file;
const render = fs.createReadStream(f.path);
var name = f.name;
var dir = f.dir || "";
var file = _dir + dir + name;
try {
if (fs.existsSync(file)) {
var arr = name.split(".");
name = arr[0];
var extension = arr[arr.length - 1];
var num = 10000;
for (var i = 0; i < num; i++) {
var na = name + "_" + (i + 1) + "." + extension;
file = path.join(_dir, na);
if (!fs.existsSync(file)) {
name = na;
break;
}
}
}
const upStream = fs.createWriteStream(file);
render.pipe(upStream);
url = _path + name;
} catch (e) {
console.log("上传失败:", e);
}
return {
result: {
url
}
};
} else {
return {
code: 10000,
message: "上传的文件(file)不能为空!",
};
}
};
4.2.6试题库界面
试题库,管理员可以上传、修改、删除试题,建立和维护试题库,为考试提供充足的题目资源。如下图所示。
图4-14试题库界面图
4.2.7试卷列表界面
试卷列表,管理员可以创建、编辑、发布试卷,管理试卷的状态和访问权限,确保试卷的安全性和有效性。如下图所示。
图4-15试卷列表界面图
第五章 系统的测试
5.1系统测试的目的
系统开发到了最后一个阶段那就是系统测试,系统测试对软件的开发其实是非常有必要的。因为没什么系统一经开发出来就可能会尽善尽美,再厉害的系统开发工程师也会在系统开发的时候出现纰漏,系统测试能够较好的改正一些错误,为后期系统的维护性提供很好的支持。通过系统测试,开发人员也可以建立自己对系统的信心,为后期的系统版本的跟新提供支持。
5.2 系统测试用例
系统测试包括:用户登录功能测试、通知公告查看功能测试、添加案例分享、密码修改功能测试,如表5-1、5-2、5-3、5-4所示:
表5-1 用户登录功能测试表
用例名称 | 用户登录系统 |
目的 | 测试用户通过正确的用户名和密码可否登录功能 |
前提 | 未登录的情况下 |
测试流程 | 1) 进入登录页面 2) 输入正确的用户名和密码 |
预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
实际结果 | 实际结果与预期结果一致 |
通知公告查看功能测试:
表5-2 通知公告查看功能测试表
用例名称 | 通知公告查看 |
目的 | 测试通知公告查看功能 |
前提 | 用户登录 |
测试流程 | 点击通知公告 |
预期结果 | 可以查看到所有通知公告 |
实际结果 | 实际结果与预期结果一致 |
管理员添加案例分享:
表5-3 管理员添加案例分享界面测试表
用例名称 | 案例分享发布测试用例 |
目的 | 测试案例分享指发布功能 |
前提 | 用户正常登录情况下 |
测试流程 | 1)点击案例分享管理,然后点击添加后并填写信息。 2)点击进行提交。 |
预期结果 | 提交以后,页面首页会显示新的案例分享 |
实际结果 | 实际结果与预期结果一致 |
密码修改功能测试:
表5-4密码修改功能测试表
用例名称 | 密码修改测试用例 |
目的 | 测试管理员密码修改功能 |
前提 | 管理员用户正常登录情况下 |
测试流程 | 1)管理员密码修改并完成填写。 2)点击进行提交。 |
预期结果 | 使用新的密码可以登录 |
实际结果 | 实际结果与预期结果一致 |
5.3 系统测试结果
通过编写留守儿童帮扶网站的测试用例,已经检测完毕用户用户登录功能测试、通知公告查看功能测试、添加案例分享、密码修改功能测试,通过这些测试为留守儿童帮扶网站的后期推广运营提供了强力的技术支撑。
结 论
经过了几个月的努力,留守儿童帮扶网站终于完成了,虽然在校期间也开发过一些小型的系统,但是都是在老师的讲解以及辅助下完成的,没有经历过开发之前的需求分析、系统分析,都是直接从系统设计开始的,因此开发留守儿童帮扶网站对我意义重大。
在开发系统最初,首先对各个留守儿童帮扶网站方面的需求进行调研,了解对于用户来说,开发的系统需要实现哪些功能才能满足管理需求,对需求进行分析;其次选择自己比较熟悉的Nodejs语言,MYSQL数据库来设计开发,通过知网库、学校图书馆等地方查阅、学习这些技术,掌握编程的思想和方法,然后就是对系统进行分析,从系统开发的可行性、系统实现的功能、系统应该具备的性能以及系统的操作流程方面,对系统进行全方位的分析,确定系统的最终功能,从而对系统的功能和数据库进行设计,最后就是系统的实现以及对实现的功能的测试,确保系统能够稳定的运行。
在开发的过程中暴露出了自己的很多问题,比如前期的准备还是不够充分,不能完全掌握其操作流程;在开发过程中对Nodejs的编程掌握的还不够熟练以及对系统的环境配置上还存在很多问题,经常会导致项目在运行的时候出现错误。学无止境,通过一边查阅资料一边向导师请教,慢慢的解决了这些问题,在以后的学习、工作者我会更加严谨,通过本项目的开发,我将会受益终生!
参考文献
[1]武徐梅,肖有俊.社会支持理论视角下农村留守儿童家庭教育探究[J].黑龙江科学,2024,15(03):120-122+127.
[2]强薇,杨晓雯,陈海波,等.留守儿童阅读发展路径探析[J].科技传播,2024,16(03):69-72.DOI:10.16607/j.cnki.1674-6708.2024.03.017.
[3]李淑玲,朱彤.基于Node.js技术的在线测试系统设计方案[J].科技资讯,2023,21(19):35-38.DOI:10.16661/j.cnki.1672-3791.2303-5042-5997.
[4]胡娟,蒲源.基于Node.js的低代码人脸识别系统的设计与实现[J].电脑知识与技术,2023,19(28):14-17.DOI:10.14004/j.cnki.ckt.2023.1504.
[5]范兴娟,郭芳彤,刘保庆.基于node.js云平台的快递无人车在生鲜配送系统的应用[J].电子制作,2023,31(18):70-74.DOI:10.16589/j.cnki.cn11-3571/tn.2023.18.009.
[6]Tyson M .Intro to Hapi: The Node.js framework[J].InfoWorld.com,2023,
[7]Krill P .Node.js upgrade adds environment variable config[J].InfoWorld.com,2023,
[8]张猛,何姗姗.基于Vue+Node.js的智能小区数据管理系统设计与实现[J].电脑知识与技术,2023,19(14):46-49+53.DOI:10.14004/j.cnki.ckt.2023.0730.
[9]Uzayr B S .Conquering JavaScript:Node.js[M].CRC Press:2023-02-28.
[10]Krill P .Deno 1.30 backs built-in Node.js modules[J].InfoWorld.com,2023,
[11]Reid B ,D'Amorim M ,Wagner M , et al.NCQ: Code Reuse Support for Node.js Developers[J].IEEE Transactions on Software Engineering,2023,49(5):3205-3225.
[12]布宇凡.基于Node.js的船舶信息管理系统的设计与实现[D].北京邮电大学,2022.DOI:10.26969/d.cnki.gbydu.2022.000688.
[13]刘倩辰.社交网站自我表露与自我概念清晰性对留守儿童基本心理需要影响的追踪研究[D].淮北师范大学,2022.DOI:10.27699/d.cnki.ghbmt.2022.000157.
[14]闵亮,薛格格,张玉欣,等.基于Node.JS博客系统的设计与实现[J].电子设计工程,2022,30(07):37-41.DOI:10.14022/j.issn1674-6236.2022.07.008.
[15]朱君,赵梓同.基于Node.js的旅游资源可视化构建平台设计与实现[J].电子技术与软件工程,2022,(03):62-66.
[16]陈明雪,赵勇,周小丽,等.基于Node.js和Bootstrap的图书管理系统设计与研究[J].现代信息科技,2021,5(24):12-15.DOI:10.19850/j.cnki.2096-4706.2021.24.004.
[17]余任杰,王风硕.基于Node.js的网上图书销售系统设计[J].电脑知识与技术,2021,17(34):83-84+92.DOI:10.14004/j.cnki.ckt.2021.3680.
[18]赵婉琳,彭仕霖,杜孟新.基于Node.js的汽车数据中台系统的设计与实现[J].仪器仪表标准化与计量,2021,(05):23-26.
[19]朱克武.Node.js在高职就业网站开发中的应用[J].现代信息科技,2021,5(15):19-21+32.DOI:10.19850/j.cnki.2096-4706.2021.15.005.
[20]杨涛.基于Node.js的高并发电商购物系统设计与实现[D].北京邮电大学,2021.DOI:10.26969/d.cnki.gbydu.2021.002805.
致 谢
留守儿童帮扶网站的完成,如何实现的更好,其中付出的努力是很大的,这段时光将会终身难忘。
留守儿童帮扶网站的设计可以顺利完成,首先,我要感谢我的指导老师,他在我遇到设计问题时及时帮助了我,并在我对设计感到困惑时给了我充分的指导。在他的帮助下,我可以完成高质量的毕业设计。在留守儿童帮扶网站的设计和开发中,指导老师提出了许多实用的意见和建议,并为我提供了大量相关的研究资料,使我对设计有了更深入的了解。只有在老师的指导下,才能在毕业设计中取得成功。在此,我要向指导老师表示深深的谢意。
在此,我还要感谢我的同学们,他们为我的设计提供了许多参考意见,并与我讨论了设计中的问题,从而使我的设计一步一步走向成熟。
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~