目录
随着互联网的快速发展和智能设备的普及,人们对于电影的需求也越来越高。然而,在庞大的电影资源中寻找适合自己口味的电影却成为了一项挑战。传统的电影推荐系统往往只基于用户的观影历史或简单的标签匹配,无法满足用户的个性化需求。
本论文基于NodeJS和微信小程序,设计与实现了一个个性化电影推荐系统。该系统根据用户的喜好和兴趣,提供个性化的电影推荐服务,帮助用户发现符合口味的电影作品。通过收集用户的个人信息、观影历史和评分记录,构建用户画像和电影特征向量。采用协同过滤算法技术,对用户和电影进行匹配和推荐。系统使用NodeJS作为后端开发工具,微信小程序作为前端界面。功能模块包括用户注册与登录、个人信息管理、电影浏览与搜索、电影评分和收藏、个性化推荐等。经过实验和测试,该系统在用户界面友好性、推荐准确性和用户体验方面表现良好。该论文具有实用性和可行性,为其他类似推荐系统的开发提供参考和借鉴。
关键词:nodejs语言;微信小程序;电影推荐系统
Abstract
With the rapid development of the Internet and the popularity of intelligent devices, people's demand for movies is also increasing. However, finding a movie that suits one's taste in the vast film resources has become a challenge. Traditional movie recommendation systems often only rely on the user's viewing history or simple tag matching, which cannot meet the personalized needs of users.
This paper designs and implements a personalized movie recommendation system based on NodeJS and WeChat mini program. The system provides personalized movie recommendation services based on user preferences and interests, helping users discover movies that match their tastes. By collecting user personal information, viewing history, and rating records, construct user profiles and movie feature vectors. Using collaborative filtering algorithm technology to match and recommend users and movies. The system uses NodeJS as the backend development tool and WeChat mini program as the frontend interface. The functional modules include user registration and login, personal information management, movie browsing and search, movie ratings and favorites, personalized recommendations, etc. After experimentation and testing, the system has performed well in terms of user interface friendliness, recommendation accuracy, and user experience. This paper has practicality and feasibility, providing reference and inspiration for the development of other similar recommendation systems.
Keywords: nodejs language; WeChat Mini Program; Movie recommendation system
1 绪论
1.1研究背景和意义
电影作为一种受众广泛的娱乐形式,每年都有大量的新片上映。然而,由于电影种类繁多、内容各异,用户往往难以快速准确地找到自己喜欢的电影作品。因此,基于个性化推荐的电影推荐系统成为了一个备受关注的研究方向。
在互联网技术的高速发展和智能移动设备的普及下,越来越多的用户通过手机等设备观看电影。然而,传统的电影推荐方式往往只能提供一般化的推荐,无法满足用户的个性化需求。因此,设计与实现一个基于NodeJS和微信小程序的个性化电影推荐系统具有重要的研究背景和意义。
其意义主要体现在以下几个方面:
提升用户满意度:个性化电影推荐系统可以根据用户的兴趣、偏好和观影历史,为其推荐符合口味的电影作品,提高用户的满意度和观影体验。用户可以更加方便快捷地找到适合自己的电影,减少信息过载和选择困难。
促进电影产业发展:个性化推荐系统能够帮助用户发现新的电影作品,扩大用户观影范围,提高电影的曝光率和市场需求。这将对电影制片方、发行商和影院等相关产业链环节产生积极的推动作用,促进电影产业的发展和壮大。
提升平台竞争力:拥有个性化推荐系统的电影平台可以根据用户的偏好和历史行为进行精准推荐,吸引更多用户流量,提升平台的竞争力和市场份额。这对于电影平台来说具有重要的商业价值,能够增加广告收入和会员付费等盈利渠道。
推动技术创新:设计与实现基于NodeJS和微信小程序的个性化电影推荐系统,需要运用协同过滤算法等技术手段,推动相关领域的研究和创新。这将促进相关技术的发展,并为其他个性化推荐系统的设计和实现提供借鉴和参考。
1.2国内外研究现状
个性化电影推荐系统是当前研究和应用领域的热点之一。在国内外,许多知名的个性化推荐网站和平台已经应用了先进的推荐算法和技术,为用户提供个性化的电影推荐服务。
国内方面,豆瓣电影是中国领先的电影推荐和评论平台,通过分析用户的评分记录、关注标签和社交网络行为,利用协同过滤和标签匹配等算法,为用户推荐个性化的电影和影评。此外,酷我音乐也应用个性化推荐技术,通过分析用户的听歌记录、收藏偏好和相似用户行为,为用户推荐个性化的音乐作品和歌单。
在国际上,Netflix是全球领先的在线视频流媒体服务提供商,其个性化推荐系统被广泛认可。Netflix通过分析用户的观影历史、评分记录和喜好,利用机器学习和协同过滤等算法,为用户推荐符合其口味的电影和电视剧。IMDb是全球最大的电影数据库和信息网站,其个性化推荐系统帮助用户发现和评估电影作品。通过分析用户的观影历史、评分记录和喜好,IMDb利用协同过滤和内容匹配等算法,为用户推荐个性化的电影和电视剧。
这些个性化电影推荐网站在不同领域中应用了先进的推荐算法和技术,通过分析用户的行为和偏好,为用户提供个性化的电影推荐服务,帮助他们发现和享受符合自己口味的电影作品。这些成功案例为个性化电影推荐系统的设计与实现提供了有价值的借鉴和参考。此外,国内外研究者们也在协同过滤、深度学习和社交推荐等方面进行了广泛的研究,以提高个性化推荐系统的准确性和效果。
(1)系统采用前后端分离的开发模式,使得前端和后端可以独立开发和维护,提高了开发效率和系统的可维护性。
(2)系统采用微服务架构,将系统拆分成多个独立的服务,每个服务可以独立部署和扩展,提高了系统的灵活性和可扩展性。
(3)系统采用 Docker 容器化部署技术,使得系统可以快速部署和迁移,提高了系统的可靠性和可移植性。
(4)系统采用自动化测试技术,包括单元测试、接口测试和性能测试等,提高了系统的稳定性和可靠性。
(5)系统采用安全保障技术,包括用户认证、授权、数据加密等,保障了系统的安全性和用户的隐私。
这些技术特色使得基于微信小程序的个性化电影推荐具有高效、稳定、可靠、安全等优点,能够满足用户的需求和提高用户的体验。
本论文基于NodeJS和微信小程序开发个性化电影推荐系统。以下是对开发技术的详细说明:
(1)后端开发工具:使用NodeJS作为后端开发语言和框架。NodeJS是一个基于Chrome V8引擎的JavaScript运行环境,具有高效、轻量级的特点,适合用于构建快速、可扩展的网络应用程序。通过NodeJS,可以实现系统的数据存储、用户管理和推荐算法等核心功能。
(2)前端界面:采用微信小程序作为前端界面平台。微信小程序是一种轻量级的应用程序形态,在微信内部运行,用户无需下载安装即可使用。通过微信小程序,用户可以方便地进行电影浏览、搜索、评分和收藏等操作,同时享受良好的用户体验和交互效果。
(3)数据库:采用MySQL数据库作为数据存储工具。MySQL是一种常用的关系型数据库管理系统,具有稳定性和高性能的特点。通过MySQL,可以存储用户的个人信息、观影历史和评分记录等数据,以支持系统的个性化推荐功能。
(4)个性化推荐算法:采用协同过滤算法技术实现个性化推荐。协同过滤算法是一种基于用户行为和兴趣的推荐算法,通过分析用户的观影历史和评分记录,找到与其兴趣相似的其他用户或电影,并进行推荐。该算法可以有效地解决数据稀疏性和冷启动问题,提供精准的个性化推荐结果。
2 基于微信小程序的个性化电影推荐分析
系统需求分析是系统开发的一个关键环节,它在系统的设计和实现上起到了一个承上启下的位置。系统需求分析是对所需要做的系统进行一个需求的挖掘,如果分析的准确可以精准的解决现实中碰到的问题。如果分析不到位会影响后期系统的实现。一个系统的优秀程度需求分析也是占据了非常大的比例,如果需求分析不到位,后面的系统设计要实现就是一个偏离导航的设计。
2.1 可行性分析
系统可行行分析是对系统对系统可行性进行一个探讨。在探讨系统的可行性上我们主要从技术上的可行性和经济上的可行性以及法律层面的可行性上进行分析,如果三个层面度通过,我们则认为系统是比较可行的。
2.1.1 技术可行性分析
基于微信小程序的个性化电影推荐设计与实现是一个基于Web的电影推荐平台,我们在实现这个系统所采用的技术方案是基于nodejs语言,MYSQL数据库,在大学的学习中这两门课程都已经学过,而且自己也用这些技术开发过小的项目,在平时的课程设计以及作业也经常用到nodejs和MYSQL,在技术上实现自己的自主开发是可行的。
2.1.2 经济可行性分析
开发本基于微信小程序的个性化电影推荐的技术都是可以从网上直接免费下载,不用花一分钱,而且系统的源代码都是自己进行设计开发的,不需要成本,如果后期想要进行运营,只要把配置到服务器上,花费服务器的租赁费用,在使用中可以进行增加广告收益,因此在经济方面是可性的。
2.1.3 操作可行性分析
当下网络新时代,计算机已经得到了普及,多数人对计算机都比较的熟悉,知道如何使用它,当然也存在对计算机比较陌生的这一群体,也需要对其进行考虑。在进行基于微信小程序的个性化电影推荐页面的设计的时候,考虑到使用人群,可能也存在对计算机比较陌生的人,所以,在页面的设计方面,设计的很是简单、简洁,布局明了,色调明朗,让无论是对计算机陌生还是对计算机熟悉的使用者,都可以使用自如,这也说明了该程序的操作方面非常可行。
本基于微信小程序的个性化电影推荐开发完成后只需要一个管理人员进行后台电影信息的增删改查以及用户、电影评分的管理就可以,不需要进行特别的培训,所有的操作只要有一点电脑基础就可以进行管理,在管理方面是可行的。
2.2 系统功能分析
2.2.1 功能性分析
按照基于微信小程序的个性化电影推荐的角色,系统划分为了微信小程序注册用户模块、后台管理员模块这两大部分。在设计和实现基于微信小程序的个性化电影推荐时,我们需要充分考虑用户和管理员的不同需求,以确保系统能够满足各类用户的功能要求。以下是针对不同用户角色的功能分析:
1.小程序用户端:
首页:展示热门电影、推荐电影等信息,供用户快速浏览和选择。
电影信息推荐:根据用户的兴趣和历史行为,提供个性化的电影推荐,帮助用户发现符合口味的电影作品。
网站公告:显示重要通知和公告,包括系统更新、活动信息等。
电影信息:展示电影的详细信息,包括影片简介、演员表、评分等,并支持用户的评论和评分。
电影资讯:提供电影相关的新闻、攻略、影评等内容,让用户了解电影行业的最新动态。
电影交流:创建电影交流社区,用户可以发布帖子、参与讨论,分享自己的观影经验和意见。
我的:包括基本信息、收藏、电影评分、论坛管理等子模块,方便用户管理自己的个人信息和互动记录。
2.后台管理员端:
后台首页:展示系统概况和重要数据统计。
系统用户:管理系统用户的注册、登录、权限设置等操作。
电影分类管理:管理电影的分类信息,包括添加、修改和删除分类。
电影信息管理:对电影信息进行管理,包括添加、修改、删除、审核等操作。
电影评分管理:管理用户对电影的评分记录,进行统计和分析。
系统管理:管理轮播图等系统展示内容。
网站公告管理:发布和编辑网站公告内容。
资源管理:管理电影资讯和资讯分类,包括发布、修改、删除等。
交流管理:管理电影交流社区,包括帖子审核、分类管理等。
通过满足小程序端用户和管理员的不同功能需求,基于NodeJS和微信小程序的个性化电影推荐系统可以提供便捷的电影推荐服务,并实现对电影信息、评分、资讯和交流等方面的全面管理。同时,管理员可以对用户和系统进行管理和监控,保证系统的正常运行和用户体验。
2.2.2 非功能性分析
基于微信小程序的个性化电影推荐的非功能性需求比如系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2-1表格中:
表2-1基于微信小程序的个性化电影推荐非功能需求表
安全性 | 主要指基于微信小程序的个性化电影推荐数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指基于微信小程序的个性化电影推荐能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响基于微信小程序的个性化电影推荐占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着基于微信小程序的个性化电影推荐的页面展示内容进行操作,就可以了。 |
可维护性 | 基于微信小程序的个性化电影推荐开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
2.3 系统用例分析
通过2.3功能的分析,得出了系统的用例图:
注册用户角色用例如图2-1所示。
图2-1注册用户角色用例图
管理员是维护整个基于微信小程序的个性化电影推荐中所有数据信息的。管理员角色用例如图2-2所示。
本章主要讨论的内容包括基于微信小程序的个性化电影推荐的功能模块设计、数据库系统设计。
3.1系统功能模块设计
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本系统中的用例。那么接下来就要开始对本系统的架构、主要功能和数据库开始进行设计。基于微信小程序的个性化电影推荐根据前面章节的需求分析得出,其总体设计模块图如图3-2所示。
图3-1系统功能模块图
3.2 数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
3.2.1 数据库概念结构设计
下面是整个基于微信小程序的个性化电影推荐中主要的数据库表总E-R实体关系图。
图3-2 基于微信小程序的个性化电影推荐总E-R关系图
通过上一小节中基于微信小程序的个性化电影推荐中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | film_classification_id | int | 10 | 0 | N | Y | 电影分类ID | |
2 | film_category | 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 | forum_id | mediumint | 8 | 0 | N | Y | 论坛id | |
2 | display | smallint | 5 | 0 | N | N | 100 | 排序 |
3 | user_id | mediumint | 8 | 0 | N | N | 0 | 用户ID |
4 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
5 | praise_len | int | 10 | 0 | Y | N | 0 | 点赞数 |
6 | hits | int | 10 | 0 | N | N | 0 | 访问数 |
7 | title | varchar | 125 | 0 | N | N | 标题 | |
8 | keywords | varchar | 125 | 0 | Y | N | 关键词 | |
9 | description | varchar | 255 | 0 | Y | N | 描述 | |
10 | url | varchar | 255 | 0 | Y | N | 来源地址 | |
11 | tag | varchar | 255 | 0 | Y | N | 标签 | |
12 | img | text | 65535 | 0 | Y | N | 封面图 | |
13 | content | longtext | 2147483647 | 0 | Y | N | 正文 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
16 | avatar | varchar | 255 | 0 | Y | N | 发帖人头像: | |
17 | type | varchar | 64 | 0 | N | N | 0 | 论坛分类:[0,1000]用来搜索指定类型的论坛帖 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
3 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
4 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
5 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
6 | icon | varchar | 255 | 0 | Y | N | 分类图标: | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | label_information_id | int | 10 | 0 | N | Y | 标签信息ID | |
2 | label | 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 | movie_information_id | int | 10 | 0 | N | Y | 电影信息ID | |
2 | movie_title | varchar | 64 | 0 | Y | N | 电影名称 | |
3 | film_category | varchar | 64 | 0 | Y | N | 电影类别 | |
4 | movie_tags | varchar | 64 | 0 | Y | N | 电影标签 | |
5 | cover | varchar | 255 | 0 | Y | N | 封面 | |
6 | director | varchar | 64 | 0 | Y | N | 导演 | |
7 | leading_actor | varchar | 64 | 0 | Y | N | 主演 | |
8 | release_date | date | 10 | 0 | Y | N | 上映日期 | |
9 | film | varchar | 255 | 0 | Y | N | 电影 | |
10 | fraction | varchar | 64 | 0 | Y | N | 分数 | |
11 | reason_for_recommendation | text | 65535 | 0 | Y | N | 推荐理由 | |
12 | film_introduction | text | 65535 | 0 | Y | N | 电影介绍 | |
13 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
14 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
15 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
16 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
17 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | movie_ratings_id | int | 10 | 0 | N | Y | 电影评分ID | |
2 | movie_title | varchar | 64 | 0 | Y | N | 电影名称 | |
3 | film_category | varchar | 64 | 0 | Y | N | 电影类别 | |
4 | director | varchar | 64 | 0 | Y | N | 导演 | |
5 | leading_actor | varchar | 64 | 0 | Y | N | 主演 | |
6 | cover | varchar | 255 | 0 | Y | N | 封面 | |
7 | evaluate_users | int | 10 | 0 | Y | N | 0 | 评价用户 |
8 | score | varchar | 64 | 0 | Y | N | 评分 | |
9 | evaluate | text | 65535 | 0 | Y | N | 评价 | |
10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | registered_users_id | int | 10 | 0 | N | Y | 注册用户ID | |
2 | name | varchar | 64 | 0 | Y | N | 姓名 | |
3 | gender | varchar | 64 | 0 | Y | N | 性别 | |
4 | telephone | varchar | 64 | 0 | Y | N | 电话 | |
5 | label | varchar | 64 | 0 | Y | N | 标签 | |
6 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
4 基于微信小程序的个性化电影推荐关键模块实现
基于微信小程序的个性化电影推荐的详细设计与实现主要是根据前面的基于微信小程序的个性化电影推荐的需求分析和基于微信小程序的个性化电影推荐的总体设计来设计页面并实现业务逻辑。主要从基于微信小程序的个性化电影推荐界面实现、业务逻辑实现这两部分进行介绍。
4.1小程序注册用户功能模块
4.1.1 用户注册界面
不是基于微信小程序的个性化电影推荐的用户可以通过微信小程序在线进行注册,填写上自己的账号、密码、重复密码、昵称、邮箱登信息后点击“提交”按钮后将会验证是否有非空数据,再验证密码和重复密码是否一样,最后验证是否账号重复,都验证没问题后即可注册成功。注册实现了用户注册和发布者注册两部分,其用户注册界面展示如下图4-1所示。
图4-1用户注册界面图
4.1.2 用户登录界面
微信小程序上注册后的用户可以通过自己的用户名和密码进行登录,在用户填写好自己的用户名和密码信息并点击“登录”按钮后,将会先验证是否有非空数据,再验证填写的用户信息和数据库中保存的是否一致,一致后将会登录成功,登录成功后将会在左上角上显示用户信息;否则将会提示相应错误信息,用户登录界面如下图4-2所示。
图4-2用户登录界面图
输入有效的用户名和密码信息,点击“登录”按钮,自动跳转到“首页”页面,首页界面如下图4-3所示。
图4-3首页界面图
4.1.3 电影资讯界面
用户点击电影资讯按钮,可以进入电影资讯列表,点击感兴趣的电影资讯,进入电影资讯详情页面,用户可以进行查看、点赞、收藏、评论等操作,界面如下图4-4所示。
图4-4电影资讯详情界面图
4.1.4 电影信息详情界面
用户点击电影信息可以进入电影信息列表,点击任意一个电影信息后将可以进入到该电影信息的详情界面中,用户可以查看电影信息的详细介绍,还可以进行评分、点赞、收藏、评价等,电影信息详情界面如下图4-5所示。
图4-5电影信息详情界面图
4.1.5 电影评分界面
在电影信息详情页面左下角点击“评分”后进入到“评分”界面,输入相关信息后,点击“提交”按钮后将会生成自己的电影评分信息,评分界面如下图4-6所示。
图4-6电影评分界面图
4.1.6我的界面
点击基于微信小程序的个性化电影推荐端底部的“我的”菜单进入“我的”页面,用户可以管理基本信息、收藏、电影评分、论坛管理等子模块,方便用户管理自己的个人信息和互动记录,界面如下图4-7所示。
图4-7我的界面图
4.2.1 系统用户管理界面
基于微信小程序的个性化电影推荐中的管理人员是可以对注册用户进行管理的,也可以对管理员进行管控。界面如下图4-8所示。
![](https://i-blog.csdnimg.cn/direct/a6f247ec67a94ec7b065d917c53e5257.png)
图4-8用户管理界面图
4.2.2 系统管理界面
管理员点击“系统管理”这一菜单会显示轮播图这一个子菜单,管理员可以对前台展示的轮播图进行设置,界面如下图4-9所示。
![](https://i-blog.csdnimg.cn/direct/82963613a61940f6b4358010c7bbf286.png)
图4-9系统管理界面图
4.2.3 网站公告管理界面
管理员点击“网站公告管理”菜单,可以发布重要通知和公告,提醒用户关注的重要信息。管理员还可以编辑、删除或关闭网站公告,对网站公告进行统一管理。界面如下图所示。
![](https://i-blog.csdnimg.cn/direct/aa7ceea8a8634ca690b1d84e0b2700b7.png)
图4-10网站公告管理界面图
4.2.4 资源管理界面
管理员点击“资源管理”菜单,管理员可以上传、编辑或删除系统的资源,如文章、图片、视频等。这些资源可用于电影资讯模块的展示。管理员还可以对资讯进行分类和标签化,方便用户查找和使用,界面如下图所示。
![](https://i-blog.csdnimg.cn/direct/c2d4905b86764a6db66896d0508fdffb.png)
图4-11资源管理界面图
4.2.5 电影分类管理界面
管理员点击“电影分类管理”菜单管理电影的分类信息,包括添加、修改和删除分类,界面如下图4-12所示。
![](https://i-blog.csdnimg.cn/direct/381add7b68f24d2894498aa89b3ef3a1.png)
图4-12电影分类列表界面图
管理员点击“电影信息管理”菜单,可以对电影信息进行管理,包括添加、修改、删除、查看评论等操作,界面如下图4-13所示。
![](https://i-blog.csdnimg.cn/direct/c69cd31f1a5e4342939afa0cf3670527.png)
图4-13电影信息列表界面图
5系统测试
到此,系统的开发基本完成,接下来我们对系统的实验与结果进行分析,确保系统能够正常运行,进而投入使用,对系统的实验与结果分析的检测方法就是对系统的测试,测试是系统完成的最后一步,没有测试过的系统是不能进行投入使用的,否则一旦发生bug就会造成损失,下面我们从测试的方法以及测试的用例两部分进行分析,最后给出系统的测试结果。
系统的测试方面有两种,一种是黑盒测试,另一种则为白盒测试,黑盒测试通俗来说就是功能方面的测试,我们也称之为需求测试,在黑盒测试的过程中,我们是不知道其开发原理的,只是作为一名使用者对系统进行测试,我们主要是凭借之前的测试经验,取一些临界值,然后通过测试用例来对其进行测试,这种测试方法是最快的查找问题方法,其次我们可以找一些具有代表性的数据,对系统进行用例测试,在黑盒测试的过程中常用的测试工具是winrunner和AutoRunner;白盒测试我们称之为结果测试,也就是逻辑驱动测试,在白盒测试的过程中,我们主要是根据系统开发的原理进行测试的,主要是以开发者的身份去测试这个代码是不是完成了其具体的功能,实现的具体路径对不对,当然这种测试方法是费时费力的,因为每个功能,他的运行路径不止一条,通过对程序当中运行的路径进行测试,检测开发的代码是不是存在bug,有没有实现预期,在白盒测试的过程中常用的测试工具为Jcontract、C++ Test以及CodeWizard等。
5.2 系统测试用例
系统测试包括:用户登录功能测试、电影资讯查看功能测试、电影信息添加、电影信息搜索、密码修改功能测试,如表5-1、5-2、5-3、5-4、5-5所示:
表5-1 用户登录功能测试表
用例名称 | 用户登录系统 |
目的 | 测试用户通过正确的用户名和密码可否登录功能 |
前提 | 未登录的情况下 |
测试流程 | 1) 进入登录页面 2) 输入正确的用户名和密码 |
预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
实际结果 | 实际结果与预期结果一致 |
电影资讯查看功能测试:
表5-2电影资讯查看功能测试表
用例名称 | 电影资讯查看 |
目的 | 测试电影资讯查看功能 |
前提 | 用户登录 |
测试流程 | 点击电影资讯列表 |
预期结果 | 可以查看到所有电影资讯信息 |
实际结果 | 实际结果与预期结果一致 |
管理员添加电影信息界面测试:
表5-3 管理员添加电影信息界面测试表
用例名称 | 电影信息添加测试用例 |
目的 | 测试电影信息添加功能 |
前提 | 管理员正常登录情况下 |
测试流程 | 1)管理员点击电影信息添加,填写信息。 2)点击进行提交。 |
预期结果 | 提交以后,电影信息列表会显示新的电影信息 |
实际结果 | 实际结果与预期结果一致 |
电影信息搜索功能测试:
表5-4电影信息搜索功能测试表
用例名称 | 电影信息搜索测试 |
目的 | 测试电影信息搜索功能 |
前提 | 无 |
测试流程 | 1)在搜索框填入搜索关键字。 2)点击搜索按钮。 |
预期结果 | 页面显示包含有搜索关键字的电影信息 |
实际结果 | 实际结果与预期结果一致 |
密码修改功能测试:
表5-5 密码修改功能测试表
用例名称 | 密码修改测试用例 |
目的 | 测试管理员密码修改功能 |
前提 | 管理员用户正常登录情况下 |
测试流程 | 1)管理员密码修改并完成填写。 2)点击进行提交。 |
预期结果 | 使用新的密码可以登录 |
实际结果 | 实际结果与预期结果一致 |
5.3 系统测试结果
在本章节对基于微信小程序的个性化电影推荐进行了黑白盒测试,并对系统中的部分功能进行了用例分析,能够发现系统还是比较稳定的,系统的所有功能基本可以实现,能够满足管理员和用户对电影信息的推荐、评分的需求。通过测试可以看出在系统的运行过程中,其功能完整,对于输入的错误信息,能够把错误信息提示出来,方便用户操作的时候发现自己输入的信息哪里有错误,进而进行改正,而且系统界面都设有导航栏,操作非常便捷,不需要对使用者进行任何培训,对于用户以及商家来说都是一个很有价值的系统。
经过数月的努力,我成功完成了基于微信小程序的个性化电影推荐系统。尽管在校期间开发过一些小型系统,但都是在老师的指导和辅助下完成的,没有经历过需求分析和系统设计等前期阶段。因此,这次开发的个性化电影推荐系统对我来说具有重要意义。
在系统开发初期,我首先进行了个性化电影管理方面需求调研,了解了对系统功能的具体要求,进行了需求分析。接着,我选择使用我熟悉的Node.js语言和MYSQL数据库进行开发,并通过查阅知网库、学校图书馆等资料学习相关技术,掌握编程思想和方法。然后,我对系统进行全方位的分析,包括系统的可行性、功能实现、性能要求以及操作流程等,确定了系统的最终功能,并进行了功能和数据库设计。最后,我实现了系统并进行了功能测试,确保系统能够稳定运行。
在开发过程中,我遇到了许多问题,例如前期准备不充分,无法完全掌握操作流程;对Node.js编程的掌握不够熟练,系统环境配置方面存在问题,导致项目在运行时出现错误。然而,通过查阅资料并向导师请教,我逐渐解决了这些问题。我意识到学习永无止境,在今后的学习和工作中,我将更加严谨。通过本项目的开发,我将终生受益。
[1]Wang Q ,Esquivel A J .Personalized Movie Recommendation System Based on DDPG: Application and Analysis of Reinforcement Learning in User Preferences[J].The Frontiers of Society, Science and Technology,2023,5(18):
[2]Zhang Q ,Abisado M.A Novel Context-Aware Deep Learning Algorithm for Enhanced Movie Recommendation Systems[J].Mathematical Modelling of Engineering Problems,2023,10(6):
[3]黄奕宸.基于用户画像的电影推荐系统的设计与实现[J].铜仁学院学报,2023,25(06):75-83+108.
[4]韩文杰.基于混合算法的电影推荐系统研究[D].南京邮电大学,2023.DOI:10.27251/d.cnki.gnjdc.2023.001037.
[5]张佳伟.基于深度学习与多目标优化的电影推荐系统研究[D].南京邮电大学,2023.DOI:10.27251/d.cnki.gnjdc.2023.001994.
[6]Chen Y C ,Huang J J .Temporal-Guided Knowledge Graph-Enhanced Graph Convolutional Network for Personalized Movie Recommendation Systems[J].Future Internet,2023,15(10):
[7]王玉奎,郭秀娟.融入知识图谱的电影推荐算法[J].福建电脑,2023,39(09):28-30.DOI:10.16707/j.cnki.fjpc.2023.09.006.
[8]李希.基于深度学习的电影推荐系统的设计与实现[D].电子科技大学,2023.
[9]任富军.基于混合推荐算法的电影推荐系统设计与实现[D].阜阳师范大学,2023.DOI:10.27846/d.cnki.gfysf.2023.000232.
[10]刘念,蔡春花.基于Spark的电影推荐系统的设计与实现[J].软件工程,2023,26(06):59-62+45.DOI:10.19644/j.cnki.issn2096-1472.2023.006.013.
[11]司品印,齐亚莉,王晶.基于协同过滤算法的个性化电影推荐系统的实现[J].北京印刷学院学报,2023,31(06):45-52.DOI:10.19461/j.cnki.1004-8626.2023.06.011.
[12]金鑫.基于深度学习的电影推荐系统研究[D].西安工业大学,2023.DOI:10.27391/d.cnki.gxagu.2023.000893.
[13]刘英东.基于知识图谱的电影推荐系统研究[D].山西大学,2023.DOI:10.27284/d.cnki.gsxiu.2023.000669.
[14]牛妍辉.基于知识图谱的个性化电影推荐系统的研究与实现[D].石河子大学,2023.DOI:10.27332/d.cnki.gshzu.2023.001275.
[15]阿荣.基于混合推荐的电影推荐系统的设计与实现[D].北京邮电大学,2023.DOI:10.26969/d.cnki.gbydu.2023.001034.
[16]肖鹏.基于知识图谱的电影推荐算法研究与应用[D].南昌大学,2023.DOI:10.27232/d.cnki.gnchu.2023.001714.
[17]潘悦.基于内容与协同过滤算法的电影推荐系统研究[D].黑龙江大学,2023.DOI:10.27123/d.cnki.ghlju.2023.002017.
[18]杨攀攀.基于Flink的电影推荐系统研究与设计[D].陕西科技大学,2023.DOI:10.27290/d.cnki.gxbqc.2023.000074.
[19]武玲梅,李秋萍,黄秀芳等.基于Django框架的电影推荐系统的设计与实现[J].电脑知识与技术,2023,19(04):56-61.DOI:10.14004/j.cnki.ckt.2023.0204.
[20]许张贤.基于深度学习与对象感知的个性化电影推荐系统[D].南京邮电大学,2022.DOI:10.27251/d.cnki.gnjdc.2022.001246.
致 谢
"致谢"标志着论文的结束,也意味着我的毕业设计顺利完成。同时,它也代表了我即将离开敬爱的老师和亲爱的同学们,我的大学生涯即将结束。在这里,我首先要感谢所有的老师。他们无论在我的学业还是生活上都给予了我无私的付出和谆谆教诲。正如诗中所说:“春满江山绿满园,桃李争春露笑颜,东西南北春常在,唯有师恩留心间”。
其次,我要感谢我的指导老师。他在整个毕业设计过程中起到了引导作用。每当我遇到困难时,他总会第一时间帮助我,引导我解决问题,而不是直接给出答案。他的做法让我受益终生。“授人以鱼不如授人以渔”。我从指导老师身上学到了许多开发技巧和检验方法,对我今后的发展起着重要的作用。
再次,我要感谢我的同学和室友。他们不仅在毕业设计上给予了我许多帮助和意见,而且在整个大学四年中都给予了我很多帮助。我对他们的贡献无法用言语来表达,感到非常不舍。我相信,只要想到他们,在以后的人生道路上我就会感到温暖。这种友谊是任何其他情感都无法替代的。
最后,我要感谢我的家人和自己。感谢家人对我的支持,感谢自己在学业上的坚持。我相信,未来的道路会越来越好。
总之,我深深地感激所有为我付出的人。没有你们的支持和帮助,我无法完成这个毕业设计。对于这段宝贵的大学时光,我将永远怀有感激之情。
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~