写给儿子的听写助手:一个程序员爸爸的 Side Project

Written by

in

每次给儿子听写英语单词,我都要捧着书念中文,等他写完再逐个核对,整个过程费时费力。于是花了几个周末,写了这个小工具。

缘起

儿子上初中后,英语听写成了每周的必修课。作为一个程序员爸爸,我发现自己扮演了两个角色:复读机(一遍遍念中文单词)和批改老师(一个个核对拼写对错)。

“为什么不写个程序来自动完成这些?”——这个念头一冒出来就停不下来了。说干就干,听写助手就这么诞生了。

它长什么样?

登录页

纯手机号注册+登录,支持验证码和密码两种方式。给儿子用的,越简单越好。

听写助手登录页

听写练习

选书本 → 选单元 → 设数量 → 开始计时 → 提交批改 → 看成绩,一条龙搞定。

听写练习设置页

流程是这样的:

  1. 选书选单元:从下拉框选择对应的书本和单元(比如”八下 Unit5″),也可以选全部单元混合练习
  2. 设定数量:每次 30/50/70/100 个单词可选,默认 60 个
  3. 开始计时:页面上方显示计时器,可以暂停/继续/跳过
  4. 自己批改:写完所有单词后,进入批改页面,逐个对比自己写的和正确答案,点击标记答错的单词
  5. 提交看结果:正确率、用时、错题清单一目了然

为什么要自己批改而不是程序自动判?因为自己批改的过程本身也是一次复习——看着正确答案对比自己的拼写,印象更深刻。

单词管理

支持单个添加Excel 批量上传。从网上下载的单词表整理成 Excel,一键导入。也可以随时编辑、删除。筛选器支持按书本、单元、关键词搜索。

错题本

每次听写批改后,答错的单词自动进入错题本。每个错题记录错误次数,连续答对 3 次自动移除——这个设计来自一个朴素的想法:真正记住了才是自己的。可以按书本和单元筛选,专攻薄弱环节。

听写记录

所有听写记录永久保存:日期、书本、单元、模式、正确率、用时。点击可查看每次听写的详细对错清单——哪些单词是”钉子户”一目了然。

听写记录页面

技术栈

这个小工具跑在一台 2 核 2G 的腾讯云轻量应用服务器上,技术选型很简单:

技术用途
Node.js + Express后端 API
MariaDB数据存储
原生 JS + CSS前端(没用任何框架,保持轻量)
Caddy反向代理 + 自动 HTTPS
PM2进程守护
腾讯云 SMS短信验证码

没有用 React/Vue,没有 Webpack/Vite,就是最朴素的 HTML + CSS + JS + Express,一个周末就能跑起来的方案

写在最后

这个工具上线几个月了,目前存了 600+ 单词,儿子用它完成了 7 次完整的听写练习。

说实话,写这个工具花的时间可能比手动给儿子听写一年还多😅。但这就是写代码的乐趣——用自己造的轮子解决自己的问题。每次看到儿子打开网页开始听写,不用我再一遍遍念单词的时候,就觉得这时间花得值。

如果你也有类似的需求,或者想给自家孩子做一个,欢迎参考思路。代码就不开源了(写得比较随意😂),但技术方案都在上面了,照着搭一个很快。

P.S. 域名 dictation.sfumes.cloud 可以直接访问体验。

Comments

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

皖ICP备2026020134号-1