开发在线教育项目-在线课程视频网站开发

用了哪些技术

后端技术

  • springboot3+ security权限框架(后台)
  • mybatisPlus框架
  • jwt生成token
  • easyexcel导入导出
  • 递归查询
  • 拦截器校验token
  • redis的zset做排行榜功能
  • redis的list做最新课程的功能
  • redis做为缓存技术
  • redis作为计数器,实时记录浏览量,评论数,购买数等(hash的自增)
  • 定时任务(Quartz)
  • elasticsearch做了全文检索-中文分词-高亮显示等复杂的查询(ElasticsearchRepository )
  • 阿里云视频点播技术
  • 阿里云oss对象存储技术
  • 支付宝当面付对接(沙箱环境+natapp内网穿透技术)
  • 图形验证码功能
  • 短信验证码接口对接

前端技术

  • 前台采用nuxt框架(为了良好的seo搜索引擎优化,因为传统的vue项目生成的页面是空的,只有在渲染页面以后才会拿到数据,这样各大搜索引擎平台的蜘蛛不喜欢)
  • 后台用的是vue-admin-template模板,核心还是vue2+elementui
  • axios请求封装(请求拦截器和响应拦截器)
  • 异步请求(async+await)

思维导图

后台功能介绍

登录

(1)登录页面
image.png
(2)用户名需要是正确的,做了非空验证,并且输入用户名的时候,需要在数据库比对,没有的话会输出“用户名不存在”
(3)密码有验证:输入6位数密码,密码不对会有说明。

后台主页

image.png

课程管理

有课程列表和添加课程
(1)课程列表:用户进来可以看到以列表显示的课程信息,可以按课程名称,课程状态进行搜索,可以编辑课程基本信息,可以编辑课程大纲信息,删除课程信息。
image.png
①编辑基本信息
image.png
②编辑课程大纲
image.png
③删除课程,点击删除按钮,会弹出对话框确认是否删除
image.png
④如果该课程下有章节信息,则不可以删除该章节
image.png
⑤添加课程:进来之后可以添加课程,填写课程信息,上传课程图片,填写课程价格(如果输入的是0就是免费课程)。保存进入下一步,进入课程界面,点击立即生效(添加了章节小节后想让前端立即看到最新的修改的话),就可以在前端看到发布的新课程了。
image.pngimage.png
image.png

课程分类

包括课程分类列表和导入课程分类
①课程分类列表:用户进来可以看到全部的课程分类,可以在搜索框内输入关键字,就会自动查到含有关键字的课程分类。
image.png
②导入课程分类:用户进来之后可以按表的格式进行上传,添加课程分类。再上传到服务器。
image.pngimage.png

轮播图

进入轮播图列表,如下可以看到轮播图的详细信息,可以对轮播图进行添加、修改和删除。点击添加可以添加新的轮播图,点击修改可以修改该轮播图信息,点击删除,可以对不需要的轮播图进行删除,有确认删除的提示框,确认删除后就会删除该条记录。
image.pngimage.png

讲师管理

有讲师列表和添加讲师
image.png
①讲师列表:可以按讲师的名称,头衔,时间进行搜索。可以修改讲师和删除讲师。修改讲师,点进去之后可以修改讲师的所有信息。讲师的图像鼠标放上后会旋转移开,如下图。
image.png
删除讲师,点击删除按钮提示不允许访问,业务上是不能对讲师进行删除,因为讲师下面都有课程。。
②添加讲师:点击进入之后可以添加讲师信息,和修改讲师的页面是一样的

image.png

前台功能介绍

注册

注册的时候是要发手机短信验证码的,以确保用户的手机号填写的是正确的手机号(能收到手机短信那说明是他本人的手机)。为了防止黑客攻击这个短信接口(随便输入手机号都要给该手机号发短信浪费钱),这里在发送短信验证码之前先得要求用户输入正确的图形验证码才给发短信,这样就能有效防止恶意攻击。
image.png

登录

image.png
第三方登录的功能暂时没写。

首页

核心部分主要是轮播图的展示,最新课程展示(用的是redis的list特性,无论后台添加了多少门课程,首页这里最多展示8个),讲师排行榜(redis的zset实现的),导航栏的话主要是全文检索的搜索框,个人中心等。
image.png

讲师详情

查询出该讲师的基本信息以及该老师主讲的课程
image.png

课程分页展示

这块的功能是用elasticsearch写的,因为这个属于复杂条件查询(比如分类查询,销量升序降序等),而且实际项目中课程是海量的。
image.png

全文检索

这里用了es的全文检索,并且是高亮显示,还用了ik分词器(用户输入一段话可以拆分成几个关键词),极大得增加了猜到用户想要的课程是啥,大大提高了用户体验。

课程详情

这块的难点主要有,浏览量、购买数这些数据都是实时的,采用的是redis的计数器功能。课程大纲那块也是难点,要判断当前登录者是否购买了课程,如果购买了的话可以直接播放,如果没购买的话就是显示立即购买的按钮,如果是免费试听课,就直接显示免费试听,如果是免费课程但当前登录者没有报名的话,显示立即报名。
还有就是报名或购买过的客户不用重复报名或购买同一个课。
视频播放用的是阿里云播放器(我们平台的视频都是采用的阿里云视频点播技术的)
最后这里涉及到经常查询的地方放到redis缓存(比如课程大纲章节和小节,课程基本信息等)
image.png
image.png
image.png

立即购买

这个功能比较简单,当进入到这个页面的时候就已经产生了一个待支付的订单,注意刷新页面的时候不要产生新的订单(登陆者已经下过该课程的订单的话就不会产生新的订单了)
image.png

去支付

这个功能比较复杂,这是用的支付宝的沙箱支付,生成付款二维码。进入这个页面会不断询问后端,后端给支付宝官方发请求询问用户是否已经扫码支付成功,直到倒计时结束还没支付成功的话就因为用户展示放弃支付,跳到用户的订单中心去支付。特别注意2小时还没支付的话,支付宝那边会将订单超时关闭,所以这个时候我们应该逻辑删除该订单,相当于订单作废,因为订单超时关闭后必须用新的订单号才能生成新的付款二维码。
image.png

个人中心

修改密码,我的订单,修改头像,查看评论等功能
image.png
image.png

评论课程

只有购买或者报名过该课程的人才可以评论课程,自己可以删除自己的评论,但不能删除别人的评论。
image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/773804.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

极狐GitLab 将亮相2024空天信息大会暨数字地球生态峰会,携手中科星图赋能空天行业开发者

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab :https://gitlab.cn/install?channelcontent&utm_sourcecsdn 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署…

【Proteus】按键的实现『⒉种』

🚩 WRITE IN FRONT 🚩 🔎 介绍:"謓泽"正在路上朝着"攻城狮"方向"前进四" 🔎🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…

微信小程序毕业设计-走失人员的报备平台系统项目开发实战(附源码+论文)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:微信小程序毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计…

【Python学习】流程控制、函数与类详解

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引言 Python作为一门强大而又简洁的编程语言,提供了丰富的工具和结构来帮助开发者编写清晰、高效的代码。在本文中…

企业搭建知识库:解锁无限潜力的钥匙

在当今这个信息爆炸的时代,企业如何高效地管理、传播与利用知识,已成为衡量其竞争力的重要标尺。知识库,作为这一背景下的产物,正逐步成为企业不可或缺的数字资产。它不仅是一个自助式的数字门户,更是连接员工、客户与…

加入AIGC的小艺还有这些大用处 快来看

说到毕业,有不舍、有迷茫也有期待,在这种复杂的情绪里,手机里的小艺,简直是贴心小棉袄,给了我很多依靠,让我能勇敢的往前走。 在离别时候有太多的不舍,想要写段寄语记录下来,这时候小…

记录AllWinner H700芯片 LCD屏幕显示不正常,有色块问题

现象: 修改后: 文档: 测试命令(需要kernel打开 CONFIG_DEVMEMy): 读取: devmem2 $((0x6511000 0x0088)) w 写入: devmem2 $((0x6511000 0x0088)) w 0x7000000 代码&#xff1…

程序员自由创业周记#37:程序员创业的几个方向

程序员自由创业周记#37:程序员创业的几个方向 报志愿 这几天亲戚一外甥报志愿,让我推荐,我基于自己的认知觉得还是计算机相关是第一优选,即便现在各大互联网公司都过得不怎么好,裁员的消息此起彼伏,很多计…

从零到一:eBay自养号测评全流程解析与实操建议

eBay自养号测评是一种通过模拟真实买家行为,为卖家提供市场反馈并提升店铺权重和排名的技术手段。以下是进行eBay自养号测评的具体步骤和注意事项: 一、准备阶段 1. 技术配置:搭建境外服务器:选择稳定的境外服务器,模…

内网学习第6天 liunx定时任务 环境变量和权限配置,以及数据库提权

内网学习的第5天呢??我就没有写,那个主要就是利用内核漏洞以及suid,来进行提权的。 我在虚拟机上面进行提权,我没有成功,我本地的虚拟机呢,扫出来的漏洞poc也没有让我提权成功。所以我就没有写…

知识图谱构建助手安装配置使用!Sapphire Ventures最全Sales AI图谱:AI如何重塑销售行业?

知识图谱构建助手安装配置使用!Sapphire Ventures最全Sales AI图谱:AI如何重塑销售行业? 项目简介 llmgraph 使您能够从给定的源实体维基百科页面创建 GraphML、GEXF 和 HTML 格式(通过 pyvis 生成)的知识图。知识图谱是通过从 ChatGPT 或 LiteLLM 支持的其他大型语言模型…

从零开始开发跑腿配送系统:技术选型与架构设计

开发一个跑腿配送系统涉及多个技术栈和模块,从前端到后端,再到数据库和实时通信,每一个环节都至关重要。本文将详细介绍从零开始开发跑腿配送系统的技术选型与架构设计,并提供部分代码示例以帮助理解。 一、技术选型 前端技术&am…

视频号矩阵源码:构建短视频生态的基石

在数字化时代,视频内容已成为连接品牌与消费者的重要桥梁。视频号矩阵源码,作为短视频营销自动化的创新引擎,正在帮助内容创作者和营销团队以前所未有的效率和智能,管理和扩展他们的视频内容。本文将深入探讨视频号矩阵源码的核心…

13-错误-ERROR: duplicate key value violates unique constraint “ux_xxx“

13-错误-ERROR: duplicate key value violates unique constraint “ux_xxx” 更多内容欢迎关注我(持续更新中,欢迎Star✨) Github:CodeZeng1998/Java-Developer-Work-Note 技术公众号:CodeZeng1998(纯纯…

代谢组数据分析(十二):岭回归、Lasso回归、弹性网络回归构建预测模型

欢迎大家关注全网生信学习者系列: WX公zhong号:生信学习者Xiao hong书:生信学习者知hu:生信学习者CDSN:生信学习者2介绍 在代谢物预测模型的构建中,我们采用了三种主流的回归分析方法:岭回归、Lasso回归以及弹性网络回归。这三种方法各有其独特的原理和适用场景,因此在…

从0构建一款appium-inspector工具

上一篇博客从源码层面解释了appium-inspector工具实现原理,这篇博客将介绍如何从0构建一款简单的类似appium-inspector的工具。如果要实现一款类似appium-inspector的demo工具,大致需要完成如下六个模块内容 启动 Appium 服务器连接到移动设备或模拟器启…

HTML+CSS笔记

标签 HTML标签 网页的大包围 整体网页内容的外衣 所有的网页文档内容都要写在 html标签内 lang属性,是指内容语言的,目的是让浏览器知晓这个页面的主要展示语言 是什么 只跟浏览器的翻译有关 主要展示的语言如果是英语 en,主要展示的语言如果…

移动硬盘传输中断后无法识别:深度解析与数据救援指南

在日常的数据存储与传输过程中,移动硬盘凭借其大容量、便携性成为众多用户的首选。然而,当我们在复制或移动大量数据时遭遇传输中断,随后发现移动硬盘无法被电脑识别,这无疑是一场数据安全的紧急警报。此情此景,不仅影…

Docker学习笔记(三)Dockerfile

一、什么是Dockerfile Dockerfile 是一个用于自动化构建 Docker 镜像的文本文件,其中包含了从一个基础镜像开始,到最终形成所需定制镜像的所有指令集。这个文件中的每一条指令都对应着构建镜像过程中的一个步骤或一层,指导 Docker 如何安装软…

红蓝对抗下的内网横向移动渗透技术详解

一、利用Windows计划任务横向移动 Windows计划任务是一个非常实用的功能,可以帮助我们自动完成一些重复性的任务。比如,我们可以设定一个计划任务来自动备份文件、更新软件、执行脚本等,本文主要介绍了如何利用Windows计划任务进行横向渗透。 &#xf…