基于SpringBoot的英语自主学习系统

项目简介

本系统基于SpringBoot 的英语自主学习平台,提供英语学习资源与自主学习环境。系统支持文章发布、教学视频学习、互动评论、个性化推荐等功能,管理员可对文章与用户进行统一管理,实现从内容创作到学习互动的完整闭环。


核心功能

用户端

  • 用户管理:注册、登录、个人资料、关注
  • 内容发布:文章发布(Markdown)、教学链接、封面、视频;分类、标签、摘要;编辑、删除
  • 互动:评论、点赞、分享
  • 推荐:基于浏览历史与兴趣的个性化推荐
  • 学习:首页直接点击学习链接跳转、视频弹窗播放

管理端

  • 数据概览:ECharts 可视化(饼图、柱状图、环形图)
  • 文章管理:审核、推荐、教学链接/视频/封面编辑
  • 用户管理:用户列表与状态管理

技术栈

层级 技术 说明
后端 Java 8 开发语言
后端 Spring Boot 2.1.6 Web 框架
后端 MyBatis 持久层
后端 MySQL 8.0 数据库
后端 JWT 认证
前端 Vue 2.5 框架
前端 Vue Router 路由
前端 Vuex 状态管理
前端 Element UI 组件库
前端 ECharts 5.4 图表
前端 Mavon Editor Markdown 编辑器
前端 Axios HTTP 请求

项目结构

复制代码
c87/
├── frontend/                 # 前端
│   ├── src/
│   │   ├── api/              # 接口封装
│   │   ├── router/           # 路由
│   │   ├── store/            # Vuex
│   │   ├── utils/            # 工具
│   │   └── views/            # 页面
│   │       ├── admin/        # 管理后台
│   │       ├── article/     # 文章
│   │       └── user/        # 用户
│   └──package.json
├── src/main/java/            # 后端
│   └── com/michaeljay/english/
│       ├── common/           # 通用类
│       ├── config/           # 配置
│       ├── controller/       # 控制器
│       ├── entity/           # 实体
│       ├── interceptor/      # 拦截器
│       ├── mapper/           # MyBatis
│       ├── service/          # 服务
│       └── util/             # 工具
├── src/main/resources/
│   ├── mapper/               # MyBatis XML
│   └── application.yml
├── database/
│   ├── schema.sql            # 建表脚本
│   └── upgrade_v1_teaching_video.sql
└── README.md

数据库设计

表结构

表名 说明 主要字段
user 用户表 user_id, username, password, nickname, role, status
article 文章表 article_id, user_id, title, content, cover_image, teaching_link, video_url, category, audit_status
comment 评论表 comment_id, article_id, user_id, content, parent_id
article_like 文章点赞表 like_id, article_id, user_id
comment_like 评论点赞表 like_id, comment_id, user_id
user_follow 用户关注表 follow_id, user_id, follow_user_id
browse_history 浏览历史表 history_id, user_id, article_id
user_interest 用户兴趣表 interest_id, user_id, category
notification 通知表 notification_id, user_id, type, content

数据库初始化

复制代码
mysql -u root -p < database/schema.sql

若已有数据库升级:

复制代码
mysql -u root -p < database/upgrade_v1_teaching_video.sql

配置 src/main/resources/application.yml 中的数据库连接信息。


安装与运行

环境要求

  • JDK 1.8+
  • Node.js 6+
  • MySQL 8.0+
  • Maven 3.6+

后端

复制代码
mvn clean install
mvn spring-boot:run

后端地址:http://localhost:8080,API 前缀 /api

前端

复制代码
cd frontend
npm install
npm run dev

前端地址:http://localhost:8081

生产构建:npm run build


默认账号

角色 账号 密码
管理员 admin 123
测试用户 user001 123

文件上传

  • 图片:jpg、png 等,单文件 ≤ 2MB
  • 视频:MP4、WebM、OGG、MOV 等,单文件 ≤ 100MB
  • 存储目录:upload

开发作者

  • 作者:Michael-Jay
  • 联系方式:定制联系 vx: Jay8059
  • 日期:2026年

相关推荐
焗猪扒饭22 分钟前
redis stream用作消息队列极速入门
redis·后端·go
树獭非懒1 小时前
AI大模型小白手册|Embedding 与向量数据库
后端·python·llm
NE_STOP2 小时前
MyBatis-配置文件解读及MyBatis为何不用编写Mapper接口的实现类
java
IT_陈寒3 小时前
SpringBoot实战:5个让你的API性能翻倍的隐藏技巧
前端·人工智能·后端
梦想很大很大4 小时前
拒绝“盲猜式”调优:在 Go Gin 项目中落地 OpenTelemetry 链路追踪
运维·后端·go
唐叔在学习4 小时前
就算没有服务器,我照样能够同步数据
后端·python·程序员
用户68545375977695 小时前
同步成本换并行度:多线程、协程、分片、MapReduce 怎么选才不踩坑
后端
javaTodo5 小时前
Claude Code 记忆机制详解:从 CLAUDE.md 到 Auto Memory,六层体系全拆解
后端
LSTM976 小时前
使用 C# 和 Spire.PDF 从 HTML 模板生成 PDF 的实用指南
后端