本项目是一个在线数字媒体教学平台,旨在为教师和学生提供便捷的教学和学习环境,支持多种数字媒体形式的教学内容展示和互动。
在数字化教育时代,开发此平台以满足教师和学生在教学与学习过程中的需求,促进教育资源的数字化和共享。
- 课程管理:教师能够创建课程,并上传课程大纲、教学视频、音频、PPT等教学资源;学生可以浏览课程列表并选择感兴趣的课程进行学习。
- 教学互动:提供在线讨论区供师生交流,支持作业提交与批改,以及在线测试功能,增强师生之间的互动和交流。
- 多媒体播放:支持高清视频、音频的流畅播放,具备播放控制功能,如暂停、快进、快退等。
- 学习进度跟踪:记录学生的学习进度,包括已完成的课程、观看的视频时长、作业完成情况等。
- 用户管理:实现教师和学生的注册、登录功能,并进行权限管理,确保不同用户角色拥有相应的操作权限。
- 运行时:
- Bun:版本
1.2.16
,作为 JavaScript 和 TypeScript 的快速运行时,用于启动开发服务器和打包项目。
- Bun:版本
- 框架:
- Vue:版本
^3.5.13
,用于构建用户界面,提供响应式和组件化的开发体验。 - Vue Router:版本
^4.5.0
,实现前端路由管理,支持单页面应用的导航。
- Vue:版本
- UI 组件库:
- PrimeVue:版本
^4.3.5
,提供丰富的 UI 组件,方便快速搭建界面。 - PrimeIcons:版本
^7.0.0
,用于图标展示。
- PrimeVue:版本
- 模板引擎:
- Pug:版本
^3.0.3
,简化 HTML 模板的编写。
- Pug:版本
- 多媒体播放器:
- Vidstack:版本
^1.12.13
,结合 HTML5 多媒体播放功能,实现视频和音频的流畅播放。
- Vidstack:版本
- 表单处理:
- @primevue/forms:版本
^4.3.5
,用于表单验证和提交。
- @primevue/forms:版本
- 其他依赖:
- Quill:版本
^2.0.3
,富文本编辑器,用于在线讨论和作业提交中的文本输入。 - vue-timer-hook:版本
^1.0.84
,提供定时器功能。
- Quill:版本
- 打包工具:
- Vite:版本
^6.2.4
,快速的构建工具,支持热更新和快速打包。
- Vite:版本
- 类型检查:
- TypeScript:版本
~5.8.0
,为 JavaScript 代码添加静态类型检查,提高代码的可维护性。 - vue - tsc:版本
^2.2.8
,用于 Vue 项目的 TypeScript 类型检查。
- TypeScript:版本
- 插件:
- @vitejs/plugin - vue:版本
^5.2.3
,Vite 对 Vue 项目的支持插件。 - @vue/language - plugin - pug:版本
^2.2.10
,为 Pug 模板提供语言支持。 - vite - plugin - vue - devtools:版本
^7.7.2
,增强 Vue 开发工具的功能。
- @vitejs/plugin - vue:版本
- 包管理工具:
- uv:版本
0.7.13
,用于运行 Python 项目。
- uv:版本
- 框架:
- Flask:版本
>=3.1.1
,轻量级 Web 框架,用于快速搭建后端服务。 - Flask - CORS:版本
>=6.0.1
,解决跨域请求问题。
- Flask:版本
- 数据库:项目中使用 SQLite 作为数据库,通过自定义的数据库连接函数
get_db_connection
进行数据库操作。 - 加密库:
- Bcrypt:版本
>=4.3.0
,用于用户密码的加密和验证。
- Bcrypt:版本
- 克隆项目到本地:
git clone git@gitee.com:amagicpear/wooc.git
cd wooc/frontend
- 安装依赖:
bun install
- 启动开发服务器:
bun dev
- 打包项目:
bun run build
- 进入后端项目目录:
cd wooc/backend
- 同步依赖:
uv sync
- 数据库初始化:
uv run main.py
- 启动后端服务:
uv run app.py
如果使用 VS Code 作为开发工具,则可以打开项目根目录下的wooc.code-workspace
工作区,来同时进行前后端的编辑工作。
另外,在此工作区也配置了快速运行的任务,可以直接运行任务来启动全栈项目。
- 数据库操作相关的代码位于
wooc/backend/util
目录下,sqlite
数据库文件本身也在此目录下生成。 - 要按照上述流程操作需要确保运行环境中提前配置好了
bun
以及uv
。否则,也可以使用node
npm
以及pip
来安装依赖和运行项目。