一个帮助学习和记忆汉字的 Web 应用程序。通过随机展示汉字,让用户标记认识或不认识,累计标记三次认识即视为掌握。
- 汉字库管理:添加、删除、查看汉字
- 验证模式:超大字体展示汉字,支持键盘快捷键标记
- 学习统计:查看学习进度、今日学习记录、历史统计
- 智能学习:已掌握的汉字自动退出学习队列
- 进度追踪:记录每次学习的时间和结果
- 累计标记"认识"3次,汉字标记为已掌握
- 已掌握的汉字不再出现在验证队列中
- 标记"不认识"会重置该汉字的计数
- 可以手动重置任何汉字的学习进度
在验证模式下:
←或A:标记为不认识→或D:标记为认识
- Python 3.x
- Flask:Web 框架
- SQLite:数据库
- React 18
- Vite:构建工具
- Tailwind CSS:样式框架
- React Router:路由管理
- Axios:HTTP 客户端
- Python 3.7+
- Node.js 16+
- npm 或 yarn
- 克隆项目(或使用现有目录)
cd word- 安装后端依赖
cd backend
pip install -r requirements.txt- 安装前端依赖
cd ../frontend
npm installmacOS/Linux:
chmod +x start.sh
./start.shWindows:
start.bat启动后端(在 backend 目录):
cd backend
python app.py后端将运行在 http://localhost:5000
启动前端(在 frontend 目录,新终端窗口):
cd frontend
npm run dev前端将运行在 http://localhost:3000
打开浏览器访问:http://localhost:3000
word/
├── backend/ # 后端代码
│ ├── app.py # Flask 应用主文件
│ ├── requirements.txt # Python 依赖
│ └── characters.db # SQLite 数据库(运行后自动生成)
├── frontend/ # 前端代码
│ ├── src/
│ │ ├── pages/ # 页面组件
│ │ │ ├── Home.jsx # 首页
│ │ │ ├── CharacterManagement.jsx # 汉字库管理
│ │ │ ├── VerificationMode.jsx # 验证模式
│ │ │ └── Statistics.jsx # 统计页面
│ │ ├── App.jsx # 主应用组件
│ │ ├── main.jsx # 入口文件
│ │ └── index.css # 全局样式
│ ├── index.html
│ ├── package.json
│ ├── vite.config.js
│ └── tailwind.config.js
├── start.sh # macOS/Linux 启动脚本
├── start.bat # Windows 启动脚本
└── README.md # 项目文档
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INTEGER | 主键 |
| character | TEXT | 汉字 |
| recognition_count | INTEGER | 认识次数(0-3) |
| is_mastered | BOOLEAN | 是否已掌握 |
| created_at | TIMESTAMP | 创建时间 |
| updated_at | TIMESTAMP | 更新时间 |
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INTEGER | 主键 |
| character_id | INTEGER | 汉字ID(外键) |
| recognized | BOOLEAN | 是否认识 |
| recorded_at | TIMESTAMP | 记录时间 |
GET /api/characters- 获取所有汉字POST /api/characters- 添加新汉字DELETE /api/characters/:id- 删除汉字POST /api/characters/:id/reset- 重置学习进度
GET /api/characters/random- 获取随机待学习汉字POST /api/characters/:id/mark- 标记认识/不认识
GET /api/stats- 获取学习统计GET /api/records/recent- 获取最近学习记录
- 在"汉字库管理"页面可以添加新汉字
- 查看所有汉字的学习状态
- 删除不需要的汉字
- 重置已掌握或学习中的汉字进度
- 点击"开始验证"进入验证模式
- 系统会随机展示一个未掌握的汉字
- 使用鼠标点击或键盘快捷键标记
- 连续标记"认识"3次后,该字标记为已掌握
- 在"学习统计"页面查看整体进度
- 查看今日学习的汉字和次数
- 浏览最近的学习记录
系统预置了 100 个常用汉字供测试使用,包括: 的、一、是、在、不、了、有、和、人、这、中、大、为、上、个...等
- 数据持久化:数据保存在 SQLite 数据库中,位于
backend/characters.db - 备份建议:定期备份
characters.db文件 - 端口冲突:如果 5000 或 3000 端口被占用,需要修改配置
- 浏览器兼容:建议使用 Chrome、Firefox、Safari 等现代浏览器
- 使用 Gunicorn 运行 Flask 应用
pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:app- 配置 Nginx 反向代理
cd frontend
npm run build
# 将 dist 目录部署到 Web 服务器- 检查 Python 版本:
python --version - 确保安装了所有依赖:
pip install -r requirements.txt - 检查端口 5000 是否被占用
- 检查 Node.js 版本:
node --version - 删除 node_modules 重新安装:
rm -rf node_modules && npm install - 检查端口 3000 是否被占用
- 确保后端服务正在运行
- 检查浏览器控制台的错误信息
- 验证后端 URL 配置是否正确
- 添加用户登录系统
- 支持多用户学习进度
- 添加学习提醒功能
- 生成学习报告
- 支持汉字拼音显示
- 添加语音朗读功能
- 导入/导出汉字库
MIT License
如有问题或建议,欢迎反馈!