随着街舞在校园中的流行,搭建一个方便学生交流、分享经验和展示才艺的平台变得越来越重要。本项目利用Node.js作为后端技术,结合小程序开发框架,设计并实现了一个功能丰富、用户友好的校园街舞交流平台。通过需求分析、系统设计、数据库设计、接口开发等环节,完成了用户注册登录、动态发布、视频上传、评论互动等核心功能的开发。此外,还考虑了系统的安全性和性能优化,并进行了测试和部署,确保平台的稳定运行。
Node.js 是一个基于 JavaScript 的开源跨平台服务器端运行环境,它具有高效、灵活、可扩展等特点。通过使用 Node.js 技术,我们可以构建一个功能强大且易于使用的校园街舞交流平台小程序。
通过基于Node.js的校园街舞交流平台小程序的设计与实现的实施,旨在提供一个便捷的校园街舞交流平台,促进学生之间的互动和才艺展示。
关键词:校园街舞交流平台小程序;Node.js
NODEJS campus street dance exchange platform small program
Abstract
With the popularity of street dance on campus, it is becoming more and more important to build a platform for students to communicate, share experiences and show their talents. This project uses Node.js as back-end technology and small program development framework to design and implement a feature-rich and user-friendly campus hip-hop communication platform. Through demand analysis, system design, database design, interface development and other links, the development of core functions such as user registration and login, dynamic publishing, video uploading, comment interaction and so on has been completed. In addition, the security and performance optimization of the system have been considered, and testing and deployment have been carried out to ensure the stable operation of the platform.
Node.js is an open source cross-platform server-side running environment based on JavaScript, which has the characteristics of high efficiency, flexibility and extensibility. By using Node.js technology, we can build a powerful and easy to use campus street dance communication platform small program.
Through the design and implementation of the small program of campus street dance exchange platform based on Node.js, the purpose is to provide a convenient campus street dance exchange platform to promote the interaction between students and talent display.
Key words: Campus street dance exchange platform mini program; Node.js
第一章 绪 论
1.1选题背景
随着校园内街舞文化的兴起和年轻人对街舞的热爱,建立一个校园街舞交流平台小程序具有重要意义。传统的线下交流方式存在限制和不便,而通过小程序平台可以方便地实现在线交流、分享和学习。这样的平台将为校园内的街舞爱好者提供一个互动的社区,促进他们之间的沟通、合作和成长。此外,通过小程序的设计与实现,还可以更好地推广和传播街舞文化,让更多人了解、参与和喜爱街舞,进一步丰富校园文化生活。
1.2选题意义
校园街舞交流平台小程序的设计与实现具有重要意义。随着街舞文化在年轻人中的兴起,提供一个专门的平台用于校园内街舞爱好者之间的交流和分享成为必要。该小程序可以促进校园内的街舞文化传播,激发青年的创造力和热情,并为街舞爱好者提供了一个共同学习、表演和合作的空间。通过这个平台,校园内的街舞社群将得到更好的组织和联结,进一步推动街舞文化的发展与传承。
1.3论文结构与章节安排
本文共分为六章,章节内容安排如下:
第一章为引言,此章节对所设计和实现的系统的背景和意义和开发现状进行详细的论述以及说明,同时进行了论文整体框架的结构的简要介绍。
第二章为系统需求分析,章节所做的主要的工作是对系统进行了技术、经济和操作方面可行性的分析;对系统实行了总体功能的需求、用例分析。
第三章为系统的设计,主要是对系统的功能结构进行设计,并对系统数据库的概念结构以及物理结构的设计进行了分析。
第四章就是对系统的实现,根据系统功能的划分,分别的对系统所需要实现的前端客户功能和后端管理员功能进行了分析和说明。
第五章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试
第六章:总结。
2.1微信开发者工具
微信开发者工具是一款专为小程序开发而设计的应用,它不断改进,提供了便捷的操作方式,并且在开发过程中可以通过微信扫描二维码来访问,从而实现快速、准确的小程序开发和调试。根据用户的需求,我们将采用不同的屏幕大小来制作小程序。在完成了视图布置之后,可以通过执行编辑功能,快速更改当前的视图界面。控制台:方便调试打印输出信息。将代码上传至腾讯服务器,并在审核过程中填写版本号和备注信息,以确保代码的安全性和准确性。通过查看资源文件,我们可以快速地调整相关项目的文件目录,从而实现断点调试。使用远程调试技术,无论是在手机端还是PC端,都能够轻松地进行开发工作。本地数据存储:显示的是本地存储的数据。通过使用子父层级结构,我们可以更容易地进行视图调试。微信的代码体积应该保持在2M 以内,而且在开发过程中,应该严格检查合法域名信息,并且为小程序的后台配置服务器域名。微信开发者工具已经成为了开发过程中不可或缺的一部分,并且正在不断地改进和完善。
2.2小程序框架
微信小程序的设计旨在帮助用户快速、便捷地创建出一款拥有完全独特特色的应用。它由一套完善的框架结构,将用户界面、操作界面、功能界面等多种功能完美结合,使用户只需要一点点的操作,就能轻松实现微信小程序的创建。框架的核心功能是一个快速的数据绑定机制,它能够轻松地将用户的信息和界面进行一致性的管理。它不仅支持对用户信息的实时监控,还能够根据用户的需求,实现对界面的快速调整和优化,从而使用户能够轻松地构建强大的微信小程序。
2.3 Mysql数据库
Mysql 经过多次的更新,功能层面已经非常的丰富和完善了,从Mysql4版本到5版本进行了比较大的更新,在商业的实际使用中取得了很好的实际应用效果。最新版本的Mysql支持对信息的压缩,同时还能进行加密能更好的满足对信息安全性的需求。同时经过系统的多次更新,数据库自身的镜像功能也得到了很大的增强,运行的流畅度和易用性方面有了不小的进步,驱动的使用和创建也更加的高效快捷。最大的变动还是进行了空间信息的显示优化,能更加方便的在应用地图上进行坐标的标注和运算。强大的备份功能也保证了用户使用的过程会更加安心,同时支持的Office特性还支持用户的自行安装和使用。在信息的显示形式上也进行了不小的更新,增加了两个非常使用的显示区,一个是信息区,对表格和文字进行了分类处理,界面的显示更加清爽和具体。第二是仪表的信息控件,能在仪表信息区进行信息的显示,同时还能进行多个信息的比对,为用户的实际使用带来了很大的便捷。
第三章 系统分析
3.1可行性分析
3.1.1技术可行性
通过采用Node.js技术,我们开发出一款功能强大、操作简便的校园街舞交流平台小程序,同时还建立了一个完善、安全、可靠的后台数据库,以确保其运行的稳定性和可靠性。
通过采用Node.js技术和Mysql数据库,我们可以轻松实现校园街舞交流平台小程序的设计,并且将用户角色有机地融入其中,这种创新的方式值得一试。此外,数据的完整性和多样性也为数据的有效分配和管理提供了坚实的基础。数据库安全平台是一个至关重要的组成部分,它不仅可以提升数据安全性,还可以通过提供更加灵活、智能、有效的基础控制方法,来实现对安全计算环境的支撑,从而确保数据的安全性。由于校园街舞交流平台小程序拥有强大的功能、免费的特性以及出色的用户体验,因此它在技术上是一个可行的选择。
3.1.2经济可行性
校园街舞交流平台小程序的开发是由开发者自己开发,不需要购买其他软件或者端口之类的,而且在校园街舞交流平台小程序的开发之前所做的市场调研及其他的微信小程序的校园街舞交流平台小程序,都是没有任何费用的,通过开发者自己的努力,所有的工作的都是自己亲力亲为,在碰到自己比较难以解决的问题,大多是通过同学和指导老师的帮助进行相关信息的解决,所以对于校园街舞交流平台小程序的开发在经济上是完全可行的,没有任何费用支出的。
使用node.js技术是比较成熟的技术,所以校园街舞交流平台小程序的开发在经济上是没有问题的。
3.1.3操作可行性
校园街舞交流平台小程序设计完成后,其可操作性得到了显著提升,管理员可以轻松访问系统,快速管理各种数据信息,而用户也可以轻松访问系统界面,通过界面导航菜单,快速查看各个功能模块,满足用户的信息需求。此外,系统的操作也不再需要专业人员,只需要普通用户就可以轻松完成各个功能模块的操作管理。因此,我们的系统具有很高的可操作性。通过使用界面窗口,我们能够轻松地让用户进行登录。因此,只需要掌握基础的电脑操作技能,我们就能够满足您的需求。
3.2系统功能分析
3.2.1 功能性分析
按照校园街舞交流平台小程序的角色,划分了普通用户管理模块、管理员管理模块这两大部分。
普通用户管理模块:
- 用户注册登录:用户注册为会员并登录校园街舞交流平台小程序;用户对个人信息的增删改查,比如个人资料,密码修改。
- 基本信息:用户可以查看和修改个人信息,如头像、昵称、密码等。
- 收藏:用户可以收藏感兴趣的信息,方便以后查看。
- 网站公告:显示小程序发布的重要通知和消息,例如系统更新、公告等。
- 街舞资源:提供有关街舞课程推荐等方面的文章和信息。用户可以学习更多关于街舞的知识和技巧,同时可对文章进行点赞、收藏和评论。
- 私信:用户可以在街舞咨讯文章中,选择私信操作,可以跟其他用户分享的动态进行私聊。
- 街舞赛事:用户查看街舞赛事详情,可根据自己的情况选择赛事进行,同时可对赛事详情进行点赞收藏和评论。
- 我的:用户可在街舞动态中发布个人动态,查看私信信息和比赛报名情况。
管理员管理模块:
- 公共管理:当管理员点击“公共管理”这一菜单时,可查看轮播图和公告信息;如需添加新的轮播图,点击右侧“添加”按钮,上传图片,输入标题,点击“确认”按钮进行添加;如需添加新的公告信息,点击右侧“添加”按钮,输入标题和正文,点击“确认”按钮进行添加。
(2)用户管理:当管理员点击“用户管理”这一菜单时,可对管理员和普用户信息进行管理。
(3)咨讯管理:当管理员点击“咨讯管理”这一菜单时,可查看街舞咨讯和咨讯分类;如需添加新的咨讯分类,点击右侧“添加”,输入类型名称,点击“确认”按钮进行添加;如需添加新的街舞咨讯,点击右侧“添加”,上传图片,输入标题、标签,选择分类,输入描述和正文,点击“确认”按钮进行添加。
(4)学习水平:当管理员点击“学习水平”时,输入学习水平,可以添加新的学些水平成绩。
(5)街舞资源:当管理员点击“街舞资源”时,可查看街舞资源列表,如需添加新的街舞资源,点击右侧“添加”按钮,输入资源名称、资源类型,选择发布日期,输入课程课程,选择足额西水平,输入技术等级,上传资源视频、资源音乐和资源文件,输入资源内容和资源介绍,点击“确认”按钮进行添加。
(6)街舞动态:当管理员点击“街舞动态”时,可查看街舞动态信息详情。
(7)私信信息:当管理员点击“私信信息”时,可查看用户私信详情。
(8)街舞赛事:当管理员点击“街舞赛事”时,可查看街舞赛事详情,如需添加新的街舞赛事,点击右侧“添加”按钮,输入比赛名称、比赛时间、比赛地点、比赛对象、组织单位、比赛规则、比赛内容、比赛要求和比赛详情,点击“确认”按钮,进行添加。
(9)比赛报名:当管理员点击“比赛报名”时,可查看和审核比赛报名详情。
(10)退出:当管理点击“退出”时,可退出平台。
校园街舞交流平台小程序的非功能性需求比如校园街舞交流平台小程序的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2-1表格中:
表2-1校园街舞交流平台小程序非功能需求表
| 安全性 | 主要指校园街舞交流平台小程序数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
| 可靠性 | 可靠性是指校园街舞交流平台小程序能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
| 性能 | 性能是影响校园街舞交流平台小程序占据市场的必要条件,所以性能最好要佳才好。 |
| 可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
| 易用性 | 用户只要跟着校园街舞交流平台小程序的页面展示内容进行操作,就可以了。 |
| 可维护性 | 校园街舞交流平台小程序开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
3.3系统操作流程
3.3.1用户登录流程
对于系统的安全性的第一关,就是用户想要进入系统,必须通过登录窗口,输入自己的登录信息才可以进行登录,用户输入的信息准确无误后才可以进入到操作系统界面,进行功能模块的相对应操作,如果用户输入的信息不正确,则窗口出现提示框,用户登录失败,返回到第一步进行重新输入,如图3-2所示。

图3-2登录操作流程图
3.3.2信息添加流程
对于校园街舞交流平台小程序,需要随时添加所需要的数据信息,对于用户添加信息,需要根据添加界面,根据选框的内容进行填写所要添加的数据信息,信息输入完成后判断数据信息是否符合要求,符合要求则添加完成,用户所添加的信息不符合要求,则需要返回到第一步,重新输入数据信息,再进行判断操作,如图3-3所示。

图3-3信息添加流程图
3.3.3信息删除流程
不管是哪个用户角色进入到不通的系统操作界面,都可以进行不同的信息内容的操作功能,对用系统数据信息的删除,用户一旦将信息删除,那么该删除的数据信息将无法恢复,所以用户在对数据删除事,一定判断删除的内容是否是确定要删除的,确定无误后选择确定删除操作,如图3-4所示。

图3-4信息删除流程图
3.4 系统用例分析
通过3.2功能的分析,得出了校园街舞交流平台小程序的用例图:
普通用户角色用例如图3-5所示。

图3-5校园街舞交流平台小程序普通用户角色用例图
后端管理上的管理员是维护整个校园街舞交流平台小程序中所有数据信息的。管理员角色用例如图3-6所示。

第四章 系统总体设计
4.1系统架构设计
本校园街舞交流平台小程序从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。

图4-1 校园街舞交流平台小程序架构设计图
表现层(UI):又称UI层,主要完成本校园街舞交流平台小程序的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本校园街舞交流平台小程序时的舒适度。UI的界面设计也要适应不同版本的校园街舞交流平台小程序以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。
业务逻辑层(BLL):主要完成本校园街舞交流平台小程序的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。
数据层(DL):由于本校园街舞交流平台小程序的数据是放在服务端的mysql数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本校园街舞交流平台小程序的数据存储和管理功能。
4.2开发流程设计
校园街舞交流平台小程序的开发对管理模块和系统使用的数据库进行分析,编写代开发,规划和操作是构建信息管理应用程序的必要三步曲,它决定了系统是否能够真正实现预设功能以及是否可以在成功设计后实施。在开发过程中,每个阶段必须严格按照线性顺序进行开发,并且在相应阶段生成的每个工作都可以通过技术进行验证和检查。确保一个阶段完成后是正确的,不会造成下一阶段拖拽现象,使系统完成设计功能后得到保证。
从校园街舞交流平台小程序的成功开发经验来看,上述方法效果最为明显,最大程度地降低了系统开发的复杂性。如图4-2所示。

图3-2开发系统流程图
4.3数据库设计
数据库是信息系统的基础和核心。数据库设计的好坏直接影响到信息系统开发的成败。创建数据库表首先确定实体的属性和实体之间的关系。根据关系创建一个数据表。
4.3.1实体ER图
数据库是整个软件编程中最重要的一个步骤,对于数据库问题主要是判定数据库的数量和结构公式的创建。展示系统使用的是Mysql进行对数据库进行管理,进行保证数据的安全性、稳定性等。
概念模型的设计是为了抽象真实世界的信息,并对信息世界进行建模。它是数据库设计的强大工具。数据库概念模型设计可以通过E-R图描述现实世界的概念模型。系统的E-R图显示了系统中实体之间的链接。而且Mysql数据库是自我保护能力比较强的数据库,下图主要是数据库实体的E-R图如图4-3所示:

图4-3实体的E-R图
这些功能可以充分满足校园街舞交流平台小程序的需求。此系统功能较为全面,系统功能结构图如3-4所示。

图4-4系统功能结构图
4.3.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 | article_id | mediumint | 8 | 0 | N | Y | 文章id:[0,8388607] | |
| 2 | title | varchar | 125 | 0 | N | Y | 标题:[0,125]用于文章和html的title标签中 | |
| 3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
| 4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
| 5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 8 | source | varchar | 255 | 0 | Y | N | 来源:[0,255]文章的出处 | |
| 9 | url | varchar | 255 | 0 | Y | N | 来源地址:[0,255]用于跳转到发布该文章的网站 | |
| 10 | tag | varchar | 255 | 0 | Y | N | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
| 11 | content | longtext | 2147483647 | 0 | Y | N | 正文:文章的主体内容 | |
| 12 | img | varchar | 255 | 0 | Y | N | 封面图 | |
| 13 | description | text | 65535 | 0 | Y | N | 文章描述 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
| 2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
| 3 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
| 4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
| 5 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
| 6 | icon | text | 65535 | 0 | Y | N | 分类图标: | |
| 7 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
| 8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 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: |
表competition_registration (比赛报名)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | competition_registration_id | int | 10 | 0 | N | Y | 比赛报名ID | |
| 2 | competition_name | varchar | 64 | 0 | Y | N | 比赛名称 | |
| 3 | competition_time | varchar | 64 | 0 | Y | N | 比赛时间 | |
| 4 | venue_of_the_competition | varchar | 64 | 0 | Y | N | 比赛地点 | |
| 5 | competitors | varchar | 64 | 0 | Y | N | 比赛对象 | |
| 6 | organizational_unit | varchar | 64 | 0 | Y | N | 组织单位 | |
| 7 | registered_users | int | 10 | 0 | Y | N | 0 | 报名用户 |
| 8 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 9 | number_of_applicants | varchar | 64 | 0 | Y | N | 报名人数 | |
| 10 | reason_for_registration | text | 65535 | 0 | Y | N | 报名原因 | |
| 11 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
| 12 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
| 13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 14 | 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 | learning_level_id | int | 10 | 0 | N | Y | 学习水平ID | |
| 2 | learning_level | varchar | 64 | 0 | Y | N | 学习水平 | |
| 3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 4 | 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已取消 |
表private_message_information (私信信息)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | private_message_information_id | int | 10 | 0 | N | Y | 私信信息ID | |
| 2 | share_users | int | 10 | 0 | Y | N | 0 | 分享用户 |
| 3 | dynamic_title | varchar | 64 | 0 | Y | N | 动态标题 | |
| 4 | dynamic_type | varchar | 64 | 0 | Y | N | 动态类型 | |
| 5 | private_message_users | int | 10 | 0 | Y | N | 0 | 私信用户 |
| 6 | private_message_theme | varchar | 64 | 0 | Y | N | 私信主题 | |
| 7 | private_message_content | text | 65535 | 0 | Y | N | 私信内容 | |
| 8 | reply_content | text | 65535 | 0 | Y | N | 回复内容 | |
| 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 | learning_level | 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 | sensitive_vocabulary_id | int | 10 | 0 | N | Y | 敏感词汇ID | |
| 2 | sensitive_vocabulary | varchar | 64 | 0 | Y | N | 敏感词汇 | |
| 3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 4 | 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 | 更新时间: |
表street_dance_competition (街舞赛事)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | street_dance_competition_id | int | 10 | 0 | N | Y | 街舞赛事ID | |
| 2 | competition_name | varchar | 64 | 0 | Y | N | 比赛名称 | |
| 3 | competition_time | varchar | 64 | 0 | Y | N | 比赛时间 | |
| 4 | venue_of_the_competition | varchar | 64 | 0 | Y | N | 比赛地点 | |
| 5 | competitors | varchar | 64 | 0 | Y | N | 比赛对象 | |
| 6 | organizational_unit | varchar | 64 | 0 | Y | N | 组织单位 | |
| 7 | competition_rules | text | 65535 | 0 | Y | N | 比赛规则 | |
| 8 | competition_content | text | 65535 | 0 | Y | N | 比赛内容 | |
| 9 | competition_requirements | text | 65535 | 0 | Y | N | 比赛要求 | |
| 10 | competition_details | text | 65535 | 0 | Y | N | 比赛详情 | |
| 11 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
| 12 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | street_dance_dynamics_id | int | 10 | 0 | N | Y | 街舞动态ID | |
| 2 | share_users | int | 10 | 0 | Y | N | 0 | 分享用户 |
| 3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 4 | dynamic_title | varchar | 64 | 0 | Y | N | 动态标题 | |
| 5 | dynamic_type | varchar | 64 | 0 | Y | N | 动态类型 | |
| 6 | sharing_date | date | 10 | 0 | Y | N | 分享日期 | |
| 7 | dynamic_cover | varchar | 255 | 0 | Y | N | 动态封面 | |
| 8 | dynamic_content | text | 65535 | 0 | Y | N | 动态内容 | |
| 9 | dynamic_introduction | text | 65535 | 0 | Y | N | 动态介绍 | |
| 10 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
| 11 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表street_dance_resources (街舞资源)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | street_dance_resources_id | int | 10 | 0 | N | Y | 街舞资源ID | |
| 2 | resource_name | varchar | 64 | 0 | Y | N | 资源名称 | |
| 3 | resource_type | varchar | 64 | 0 | Y | N | 资源类型 | |
| 4 | release_date | date | 10 | 0 | Y | N | 发布日期 | |
| 5 | course_name | varchar | 64 | 0 | Y | N | 课程名称 | |
| 6 | learning_level | varchar | 64 | 0 | Y | N | 学习水平 | |
| 7 | technical_level | varchar | 64 | 0 | Y | N | 技术等级 | |
| 8 | resource_cover | varchar | 255 | 0 | Y | N | 资源封面 | |
| 9 | resource_video | varchar | 255 | 0 | Y | N | 资源视频 | |
| 10 | resource_music | varchar | 255 | 0 | Y | N | 资源音乐 | |
| 11 | resource_file | varchar | 255 | 0 | Y | N | 资源文件 | |
| 12 | resource_content | text | 65535 | 0 | Y | N | 资源内容 | |
| 13 | resource_introduction | text | 65535 | 0 | Y | N | 资源介绍 | |
| 14 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
| 15 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 16 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
| 17 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 18 | 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 | 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 | 更新时间: |
第五章 系统详细设计与实现
5.1用户端:普通用户功能模块
5.1.1用户登录界面
用户登录,用户通过输入账号和密码,选择角色并点击登录进行系统登录操作,如下图所示。

图5-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: "账户不存在"
}
};
}
};
5.1.2用户注册界面
注册,通过填写账号、密码、昵称、邮箱、性别、姓名、邮箱、身份、学习水平等信息,输入完成后选择提交即可注册成功,如下图所示。

图5-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: "注册失败",
},
};
}
}
};
5.1.3前台首页界面
前台首页,普通用户进入校园街舞交流平台小程序,可以对首页、网站公告、街舞资讯、我(基本信息、收藏、街舞动态、私信信息、比赛报名)等功能模块进行相对应操作,如下图所示。

图5-3前台首页界面图
5.1.4基本信息界面
基本信息,在基本信息页面用户可以修改头像、昵称、密码等操作,如下图所示。

图5-4基本信息界面图
5.1.5街舞赛事界面
街舞赛事:用户查看街舞赛事详情,可根据自己的情况选择赛事进行,同时可对赛事详情进行点赞收藏和评论。
如下图所示。

图5-5街舞赛事界面图
5.2 管理端:管理员功能模块
5.2.1管理员登录界面
管理员进入到操作界面,通过登录窗口进行在线填写自己的用户名、密码、角色进行登录,登录成功后进入到系统操作界面进行相应信息的获取,如下图所示。

图5-6管理员登录主界面图
5.2.2管理员首页功能界面
管理员登陆系统后,可以对后台首页、公共管理、用户管理、咨讯管理、学习水平、街舞资源、街舞动态、私信信息、街舞赛事、比赛报名等功能模块进行相对应操作,如下图所示。

图5-7管理员首页功能界面图
5.2.3用户管理界面
用户管理:当管理员点击“用户管理”这一菜单时,可对管理员和普用户信息进行管理。如下图所示。

图5-8系统用户界面图
系统用户添加的关键代码如下:
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;
};
5.2.4公共管理管理界面
公共管理:当管理员点击“公共管理”这一菜单时,可查看轮播图和公告信息;如需添加新的轮播图,点击右侧“添加”按钮,上传图片,输入标题,点击“确认”按钮进行添加;如需添加新的公告信息,点击右侧“添加”按钮,输入标题和正文,点击“确认”按钮进行添加。如下图所示。

图5-9公共管理界面图
轮播图上传的关键代码如下:
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)不能为空!",
};
}
};
5.2.5咨讯管理界面
咨讯管理:当管理员点击“咨讯管理”这一菜单时,可查看街舞咨讯和咨讯分类;如需添加新的咨讯分类,点击右侧“添加”,输入类型名称,点击“确认”按钮进行添加;如需添加新的街舞咨讯,点击右侧“添加”,上传图片,输入标题、标签,选择分类,输入描述和正文,点击“确认”按钮进行添加。如下图所示。

图5-10咨讯管理界面图
5.2.6街舞资源功能界面
街舞资源:当管理员点击“街舞资源”时,可查看街舞资源列表,如需添加新的街舞资源,点击右侧“添加”按钮,输入资源名称、资源类型,选择发布日期,输入课程课程,选择足额西水平,输入技术等级,上传资源视频、资源音乐和资源文件,输入资源内容和资源介绍,点击“确认”按钮进行添加。如下图所示。

图5-11街舞资源界面图
5.2.7街舞赛事功能界面
街舞赛事:当管理员点击“街舞赛事”时,可查看街舞赛事详情,如需添加新的街舞赛事,点击右侧“添加”按钮,输入比赛名称、比赛时间、比赛地点、比赛对象、组织单位、比赛规则、比赛内容、比赛要求和比赛详情,点击“确认”按钮,进行添加。界面如下图所示。

图5-12街舞赛事管理界面图
第六章 系统的测试
6.1系统测试的目的
系统开发到了最后一个阶段那就是系统测试,系统测试对软件的开发其实是非常有必要的。因为没什么系统一经开发出来就可能会尽善尽美,再厉害的系统开发工程师也会在系统开发的时候出现纰漏,系统测试能够较好的改正一些错误,为后期系统的维护性提供很好的支持。通过系统测试,开发人员也可以建立自己对系统的信心,为后期的系统版本的跟新提供支持。
6.2 系统测试用例
系统测试包括:用户登录功能测试、账户信息查看功能测试、添加预算记录、密码修改功能测试,如表6-1、6-2、6-3、6-4所示:
表6-1 用户登录功能测试表
| 用例名称 | 用户登录系统 |
| 目的 | 测试用户通过正确的用户名和密码可否登录功能 |
| 前提 | 未登录的情况下 |
| 测试流程 | 1) 进入登录页面 2) 输入正确的用户名和密码 |
| 预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
| 实际结果 | 实际结果与预期结果一致 |
基本信息查看功能测试:
表6-2 基本信息查看功能测试表
| 用例名称 | 基本信息查看 |
| 目的 | 测试基本查看功能 |
| 前提 | 用户登录 |
| 测试流程 | 点击基本信息列表 |
| 预期结果 | 可以查看到所有基本信息 |
| 实际结果 | 实际结果与预期结果一致 |
管理员添加街舞资源测试:
表6-3 管理员添加街舞资源测试表
| 用例名称 | 街舞资源发布测试用例 |
| 目的 | 测试街舞资源指发布功能 |
| 前提 | 用户正常登录情况下 |
| 测试流程 | 1)点击街舞资源,然后点击添加后并填写添加信息。 2)点击进行提交。 |
| 预期结果 | 提交以后,页面首页会显示新的街舞资源 |
| 实际结果 | 实际结果与预期结果一致 |
密码修改功能测试:
表6-4密码修改功能测试表
| 用例名称 | 密码修改测试用例 |
| 目的 | 测试管理员密码修改功能 |
| 前提 | 管理员用户正常登录情况下 |
| 测试流程 | 1)管理员密码修改并完成填写。 2)点击进行提交。 |
| 预期结果 | 使用新的密码可以登录 |
| 实际结果 | 实际结果与预期结果一致 |
通过编写校园街舞交流平台小程序的测试用例,已经检测完毕用户登录功能测试、账户信息查看功能测试、添加街舞资源、密码修改功能测试,通过这些测试为校园街舞交流平台小程序的后期推广运营提供了强力的技术支撑。
结 论
经过了几个月的努力,本校园街舞交流平台小程序终于完成了,虽然在校期间也开发过一些小型的小程序,但是都是在老师的讲解以及辅助下完成的,没有经历过开发之前的需求分析、系统分析,都是直接从系统设计开始的,因此开发校园街舞交流平台小程序对我意义重大。
在开发系统最初,首先对各个家庭财务管理方面的需求进行调研,了解对于家庭来说,开发的系统需要实现哪些功能才能满足家庭的财务管理需求,对需求进行分析;其次选择自己比较熟悉的Nodejs语言,MYSQL数据库来设计开发,通过知网库、学校图书馆等地方查阅、学习这些技术,掌握编程的思想和方法,然后就是对系统进行分析,从系统开发的可行性、系统实现的功能、系统应该具备的性能以及系统的操作流程方面,对系统进行全方位的分析,确定系统的最终功能,从而对系统的功能和数据库进行设计,最后就是系统的实现以及对实现的功能的测试,确保系统能够稳定的运行。
在开发的过程中暴露出了自己的很多问题,比如前期的准备还是不够充分,不能完全掌握其操作流程;在开发过程中对Nodejs的编程掌握的还不够熟练以及对系统的环境配置上还存在很多问题,经常会导致项目在运行的时候出现错误。学无止境,通过一边查阅资料一边向导师请教,慢慢的解决了这些问题,在以后的学习、工作者我会更加严谨,通过本项目的开发,我将会受益终生!
参考文献
[1]樊华华,冯晓辉,张亚蒙等. “CBS”互动教学模式在高校街舞教学中的实践探究[C]//中国体育科学学会.第十三届全国体育科学大会论文摘要集——专题报告(学校体育分会).[出版者不详],2023:3.DOI:10.26914/c.cnkihy.2023.069366.
[2]司奚源,蒋嘉陵.霹雳舞入奥背景下我国高校街舞快速发展的因应对策[J].文体用品与科技,2023(15):128-130.
[3]刘雪. 霹雳舞地板步在双人街舞啦啦操成套动作中的应用分析研究[D].西安体育学院,2023.DOI:10.27401/d.cnki.gxatc.2023.000110.
[4]左文超. SWOT分析视角下北京市街舞赛事的现状及推广路径研究[D].首都体育学院,2023.DOI:10.27340/d.cnki.gstxy.2023.000105.
[5]武江伟. 太原市高校街舞社团开展现状及社会动因分析[D].山西大学,2023.DOI:10.27284/d.cnki.gsxiu.2023.000641.
[6]孙宇琦. 亚文化理论视阈下舞蹈综艺节目《这!就是街舞》的传播研究[D].广州体育学院,2023.DOI:10.27042/d.cnki.ggztc.2023.000227.
[7]刘伟校,单冬冬,汪静雅等.街舞入奥背景下我国高校街舞项目发展机遇与挑战[J].当代体育科技,2023,13(14):140-148.DOI:10.16655/j.cnki.2095-2813.2302-1579-9773.
[8]段英凤,董亚鹏,董亚琦等.街舞进校园的价值及路径研究[J].运动精品,2023,42(05):26-28.
[9]杭瑞山. Web前端网络拥堵问题的优化研究[D].浙江海洋大学,2023.DOI:10.27747/d.cnki.gzjhy.2023.000353.
[10]张梦琦. 街舞对初中生自我意识及心理健康的影响研究[D].华东师范大学,2024.DOI:10.27149/d.cnki.ghdsu.2023.003710.
[11]程宇. 街舞运动进中小学的SWOT分析[C]//香港新世纪文化出版社.2022年第五届智慧教育与人工智能发展国际学术会议论文集.HONGKONG NEW CENTURY CULTURAL PUBLISHING HOUSE,2022:3.DOI:10.26914/c.cnkihy.2022.023459.
[12]葛晓婕,刘东升. 中国街舞的社会文化意涵研究[C]//中国体育科学学会.第十二届全国体育科学大会论文摘要汇编——墙报交流(体育史分会).[出版者不详],2022:2.DOI:10.26914/c.cnkihy.2022.007820.
[13]张佳佳.街舞运动对高校大学生心理健康的影响研究[J].绵阳师范学院学报,2022,41(02):133-139.DOI:10.16276/j.cnki.cn51-1670/g.2022.02.020.
[14]Piyush P ,Singh A R ,S.B. G , et al. [J]. Procedia Computer Science,2022,215.
[15]罗艳萍.探究体育舞蹈结合街舞在校园开展的可行性[J].当代体育科技,2021,11(31):253-256.DOI:10.16655/j.cnki.2095-2813.2109-1579-7505.
[16]宋宝庆.街舞在高校美育中的价值探析[J].大众文艺,2021(12):196-198.
[17]黄乙. 高校街舞运动开展的现状调查及社会动因分析[D].成都体育学院,2021.DOI:10.26987/d.cnki.gcdtc.2021.000144.
[18]周妤冰. 哈师大街舞社团发展现状与对策研究[D].哈尔滨师范大学,2021.DOI:10.27064/d.cnki.ghasu.2021.000702.
[19]樊华华,冯晓辉.街舞文化对我国街舞运动的影响研究[J].当代体育科技,2021,11(15):224-226.DOI:10.16655/j.cnki.2095-2813.2010-1579-1999.
[20]王熙.高校公共体育部开设街舞课程的可行性研究[J].体育科技文献通报,2020,28(09):108-110.DOI:10.19379/j.cnki.issn.1005-0256.2020.09.048.
致 谢
校园街舞交流平台小程序的完成,如何实现的更好,其中付出的努力是很大的,这段时光将会终身难忘。
校园街舞交流平台小程序的设计可以顺利完成,首先,我要感谢我的指导老师,他在我遇到设计问题时及时帮助了我,并在我对设计感到困惑时给了我充分的指导。在他的帮助下,我可以完成高质量的毕业设计。在校园街舞交流平台小程序的设计和开发中,指导老师提出了许多实用的意见和建议,并为我提供了大量相关的研究资料,使我对设计有了更深入的了解。只有在老师的指导下,才能在毕业设计中取得成功。在此,我要向指导老师表示深深的谢意。
在此,我还要感谢我的同学们,他们为我的设计提供了许多参考意见,并与我讨论了设计中的问题,从而使我的设计一步一步走向成熟。
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~

被折叠的 条评论
为什么被折叠?



