用韩语学日语的每日 10 分钟多模态学习台 —— 日·韩·中三语对照,SRS 间隔复习,零依赖、开源自部署。
在线演示 · 后端零 npm 依赖 · 前端单文件零外部 CDN
- 每日 10 分钟碎片化学习:自动追踪真实学习数据(连续天数、学习分钟、掌握词数、正确率),不靠手动勾选。
- 多模态内容
- 单词卡:例句 + 浏览器语音 + SRS 间隔复习
- 对话 / 故事:日韩听读,重点词高亮
- 日语歌曲跟唱:分段歌词 + 罗马音 + 重点词卡
- 中日韩三语对照:中文默认隐藏,一键显隐。
- 极简登录:名字即账号(无密码,全局唯一),首次输入即创建。
- 学习排行:跨用户聚合的连续天数 / 学习分钟 / 掌握词数 / 正确率。
- 浏览器语音:Web Speech API 朗读日语(ja-JP)与韩语(ko-KR)。
| 层 | 技术 |
|---|---|
| 后端 | Node.js(v22+,使用内置 node:sqlite),单文件 server.js,零 npm 依赖 |
| 前端 | 单文件 index.html,CSS/JS 全内联,图表与图标用内联 SVG |
| 数据 | SQLite 单文件 |
| 语音 | 浏览器 Web Speech API(ja-JP / ko-KR) |
要求 Node.js 22+(node:sqlite 需要)。
git clone https://github.com/FireworksRainFromAbove/nihongo.git
cd nihongo
node server.js
# 后端 API 默认监听 http://localhost:8090前端是纯静态单文件 public/index.html:
- 本地预览:用任意静态服务器托管
public/(如npx serve public),或将index.html放到你的 web 根目录。 - 前端通过同域
/api/路径调用后端(见下方部署)。
- 运行后端:
node server.js(默认端口 8090,建议用 systemd 等常驻)。 - 用 nginx 等反向代理,将前端静态文件与
/api/反向代理到同一域名:
server {
listen 80;
server_name your-domain.example;
root /path/to/nihongo/public;
location /api/ {
proxy_pass http://127.0.0.1:8090;
proxy_set_header Host $host;
}
}HTTPS 可用 Let's Encrypt(certbot)自动签发。仓库内含 deploy/krjp.service 作为 systemd unit 示例。
单词、对话、故事、歌曲等内容通过内置 API 管理,无需改代码即可扩充词库。 接口规范、字段 schema 与示例见 AGENT_GUIDE.md。
nihongo/
├── server.js # 后端(Node http + node:sqlite,零依赖)
├── public/
│ └── index.html # 前端(单文件,零外部依赖)
├── AGENT_GUIDE.md # 内容管理 API 指南(给教研 agent)
├── deploy/
│ └── krjp.service # systemd unit 示例
├── LICENSE
└── README.md
- 语音依赖浏览器:Web Speech API 由浏览器提供,离线环境下可能不朗读。
- 无密码登录:名字即身份,公网可访问;内容为公开学习资料,请勿写入隐私数据。