Coder Social home page Coder Social logo

nichijoux / onlineeducationsystem Goto Github PK

View Code? Open in Web Editor NEW
29.0 2.0 8.0 15.4 MB

OES在线教育系统是基于[谷粒学苑]进行学习开发的项目,采用B2C的商业模块,使用微服务项目采用前后端分离技术;项目分为前台用户系统和后台管理系统,后台管理系统包含权限管理;

License: Apache License 2.0

JavaScript 19.81% HTML 0.05% Vue 32.00% SCSS 0.63% CSS 10.14% Java 37.36%

onlineeducationsystem's Introduction

OnlineEducationSystem

OES在线教育系统是基于[谷粒学苑]进行学习开发的项目。

项目使用了Spring boot,Spring Security,Mybatis Plus,gateway,mysql等技术进行开发

完全完成谷粒学苑的所有功能,并添加了部分功能如

  • 课程收藏
  • 学习记录
  • 订单管理
  • 课程评论
  • ······

更新记录

2022/10/20

  • 添加了sidebarLogotagsView
  • 更新了首页仪表盘显示
  • 添加了用户数、课程数、订单数、评论数统计

注意点

本项目部份工具使用版本和所讲内容不同(如mybatis使用的是3.5.1版本),因此需要大家重新下载pom依赖。

项目添加了数据实体校验,课程评论模块以及优化了一些小的显示风格

OnlineEducationSystem为后端代码

OnlineEducationSystem-Admin为后台代码

OnlineEducationSystem-Student为前台代码

项目后端结构

项目功能预览

后台管理页面

后台管理页面基于最新的element-admin-template进行开发,在编写代码过程中,基本由本人自行编写,因此和老师代码可能出入较大;但整体效果仍一致

后端的``QueryWrapper查询基本都用的LambdaQueryWrapper`

后台的组件基本全是从element-ui上的实例代码改的

后台首页

后台首页加入了背景图片,以及滑动验证码

动态菜单

admin用户的菜单

sys用户的菜单

权限管理

vue权限管理为自己参考网上资料进行编写,因为本人并没有系统学习过vue,因此可能存在部分bug,项目部分内容将在以后学习后完善

用户管理

用户管理中修改了页面内容,将所有的逻辑操作包括(分配角色、编辑用户、删除角色、添加角色)都放在了该页面中

用户管理页面

用户管理中添加用户页面

用户管理中分配角色页面

用户管理中用户信息编辑

这部分中的密码为加密后的密码

用户管理删除用户

在删除用户时,可以看到被删除的用户的用户名

角色管理

角色管理首页

角色管理添加\编辑角色界面

角色管理分配权限

菜单管理

菜单管理中的[菜单排序]对应你左侧菜单的动态排序

菜单管理

菜单修改

菜单管理权限值修改

讲师管理

讲师管理页面进行了部分更改设计

讲师列表

讲师添加、修改

学科管理

这部分的添加和编辑也进行了显示优化

添加、编辑回显优化

课程管理

课程列表

课程信息编辑

课程大纲

课程发布

用户列表

后台管理人员可以在这里进行用户的禁启用

评论列表

管理人员可以在这里进行评论的浏览和删除

数据统计

banner管理

banner列表

管理人员可以在这里进行banner的启用和禁用以及修改,修改复用了添加banner的页面

banner添加

订单管理

已支付

未支付

学习记录

用户前台页面

前台界面使用的是提供的nuxt模板进行开发,只加入了评论功能和个人信息修改功能

首页

课程界面

课程列表页

课程详情页

名师界面

名师列表

名师详情

用户界面

登录

登录后的个人中心

课程播放

课程购买

项目环境搭建

  1. 建立自己的数据库oes,也可以取其他名字,需要在application.properties中进行相应更改
  2. 将阿里云ossvod修改为自己的ossvod账号,并且将service_sms模块中的腾讯云账号修改为自己的腾讯云keysecret
  3. 启动nacosredis服务
  4. 开启OnlineEducationSystem项目的所有微服务CanalApplication不用启动
  5. 后台启动则:到OnlineEducationSystem-Adminnpm install;npm run dev
  6. 同理前台启用也是一样

目前已知项目bug点

  1. 前后台的提示信息很多时候不显示

项目总结

通过这次项目,我学会到了许多东西,比如spring security。

但本项目还有需要不足或者说要优化的地方比如:

  1. 在添加章节和小节的时候没有和课时数相判断
  2. spring security没有做详细的鉴权
  3. 前后台的提示信息很多时候不显示
  4. 前台代码还有很多需要修改的地方

这些问题将在后期系统学习了vuespring框架之后再回来进行更改

onlineeducationsystem's People

Contributors

nichijoux avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

onlineeducationsystem's Issues

OrderApplication启动报错

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.zh.oes.order.OrderApplication]; nested exception is org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'courseClientHystrix' for bean class [com.zh.oes.common.base.client.CourseClientHystrix] conflicts with existing, non-compatible bean definition of same name and class [com.zh.oes.order.client.CourseClientHystrix]
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:184) ~[spring-context-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:325) ~[spring-context-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:242) ~[spring-context-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:275) ~[spring-context-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:95) ~[spring-context-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:706) ~[spring-context-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:532) ~[spring-context-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141) ~[spring-boot-2.2.1.RELEASE.jar:2.2.1.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) [spring-boot-2.2.1.RELEASE.jar:2.2.1.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) [spring-boot-2.2.1.RELEASE.jar:2.2.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) [spring-boot-2.2.1.RELEASE.jar:2.2.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) [spring-boot-2.2.1.RELEASE.jar:2.2.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) [spring-boot-2.2.1.RELEASE.jar:2.2.1.RELEASE]
at com.zh.oes.order.OrderApplication.main(OrderApplication.java:13) [classes/:na]
Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'courseClientHystrix' for bean class [com.zh.oes.common.base.client.CourseClientHystrix] conflicts with existing, non-compatible bean definition of same name and class [com.zh.oes.order.client.CourseClientHystrix]
at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.checkCandidate(ClassPathBeanDefinitionScanner.java:349) ~[spring-context-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:287) ~[spring-context-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.context.annotation.ComponentScanAnnotationParser.parse(ComponentScanAnnotationParser.java:132) ~[spring-context-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:290) ~[spring-context-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:245) ~[spring-context-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:194) ~[spring-context-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:298) ~[spring-context-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:245) ~[spring-context-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:202) ~[spring-context-5.2.1.RELEASE.jar:5.2.1.RELEASE]
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:170) ~[spring-context-5.2.1.RELEASE.jar:5.2.1.RELEASE]
... 13 common frames omitted

Process finished with exit code 1

页面赋值

auth/user/list.vue页面中的this.userInfo = { ...userInfoForm }格式,大概能够了解是赋值用的,不过搞不懂是怎么调用方法获取数据的,没看懂原理

权限管理

权限管理那块你完善了吗,比如不给user删除老师的权限,那么user尝试删除的时候,就会弹窗警告“你没有权限”

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.