2026-06-30 16:22:55 +08:00
2026-06-29 23:56:38 +08:00
2026-06-29 23:56:38 +08:00
2026-06-29 23:56:38 +08:00
2026-06-29 23:57:09 +08:00
2026-06-29 23:56:38 +08:00
2026-06-29 23:56:38 +08:00
2026-06-29 23:56:38 +08:00
2026-06-29 23:56:38 +08:00
2026-06-29 23:56:38 +08:00
2026-06-29 23:56:38 +08:00
2026-06-29 23:56:38 +08:00
2026-06-29 23:56:38 +08:00
2026-06-29 23:56:38 +08:00
2026-06-29 23:56:38 +08:00
2026-06-29 23:56:38 +08:00
2026-06-29 23:56:38 +08:00
2026-06-29 23:56:38 +08:00
2026-06-29 23:56:38 +08:00

English PK

English PK 是一个用于课堂单词 PK 的 Next.js 应用,包含课堂 PK 页面和后台管理页面。

功能

  • PK 页面:选择年级和班级类型后开始比赛。
  • 后台管理:维护词库、中文释义、图标/图片、启用状态和班级类型。
  • SQLite 数据库:词库、班级类型、课堂规则和语音设置持久化存储。
  • Edge TTS:支持单词语音生成、试听和批量生成。
  • 课堂规则:可设置答对加分、答错扣分、每轮单词数量、选项数量、自动朗读和单词显示格式。
  • Docker 部署:支持一条命令启动,并持久化数据库与生成语音。

技术栈

  • Next.js App Router
  • React
  • TypeScript
  • Tailwind CSS
  • shadcn 风格 UI 组件
  • SQLite (node:sqlite)
  • edge-tts-universal

本地开发

安装依赖:

npm install

启动开发服务:

npm run dev

访问:

http://localhost:3000

常用页面:

  • PK 页面:/pk
  • 后台管理:/admin

生产构建

npm run build
npm run start

Docker 部署

默认使用 Docker Hub 加速镜像和 npm 镜像源:

  • Node 镜像:m.daocloud.io/docker.io/library/node:22
  • npm 源:https://registry.npmmirror.com

启动:

docker compose up -d --build

访问:

http://localhost:3000

如需切换镜像源:

NODE_IMAGE=node:22 docker compose up -d --build

如需切换 npm 源:

NPM_REGISTRY=https://registry.npmjs.org docker compose up -d --build

数据持久化

Docker Compose 会挂载以下目录:

  • ./data:/app/dataSQLite 数据库
  • ./public/audio:/app/public/audio:生成的语音文件

请备份这两个目录,避免迁移或重建服务器时丢失数据。

配置说明

后台管理中的「设置」包含:

  • 语音设置:Edge TTS 声音、语速、试听
  • 课堂规则:得分规则、显示单词数量、选项数量、自动朗读、单词大小写显示
  • 班级类型:新增、编辑、启停、删除
  • 页面预览:打开 PK 页面检查课堂展示效果

注意事项

  • 项目依赖 node:sqlite,需要 Node.js 22 或更高版本。
  • 生成语音依赖网络访问 Edge TTS 服务。
  • 如果每轮题目数量为奇数,PK 页面会自动向下调整为偶数,保证两队轮流答题公平。
S
Description
No description provided
Readme 545 KiB
Languages
Python 55.2%
TypeScript 29.9%
HTML 12.7%
CSS 1.9%
Dockerfile 0.3%