一天一刷,考前不慌。
轻量级的刷题 Web 应用。支持 Markdown 题库导入、单选/多选、错题集、重点集、顺序/随机/未做/错题/重点/浏览答案等多种练习模式。
H5 移动端友好:响应式布局 + viewport 适配,手机浏览器直接打开即可当 App 用,底部 Tab 栏 + 单手操作体验,无需安装。
| 登录 / 注册 | 首页 |
|---|---|
![]() |
![]() |
| 做题 | 结算 / 错题集 |
|---|---|
![]() |
![]() |
截图文件放在
docs/screenshots/下,文件名对应上表(auth.png/home.png/quiz.png/summary.png)。
npm install
node server.js
# 默认监听 http://localhost:3000首次访问在登录页注册账号即可。用户数据、登录 token、操作日志都存在仓库根目录的 data/ 下(默认不入库,见 .gitignore)。
public/index.html 前端(单文件 SPA)
server.js Express 后端
lib/
markdownQuestions.js Markdown 题库解析器(被 server 和导入脚本共用)
scripts/
import-markdown-set.js 命令行导入题库
data/
questions/ 题库 JSON(随仓库发布的默认题库 default.json)
users/ 用户数据(本地生成,不入库)
tokens.json 登录 token(本地生成,不入库)
logs/ 操作日志(本地生成,不入库)
import/ 导入的 Markdown 源文件(本地生成,不入库)
docs/superpowers/specs/ 设计文档
题库 Markdown 格式示例:
1. (单选题)题目内容
A. 选项A
B. 选项B
C. 选项C
D. 选项D
正确答案:A :选项A文本
2. (多选题)题目内容
A. 选项A
B. 选项B
C. 选项C
D. 选项D
正确答案:AB :选项A文本;选项B文本
两种方式导入:
-
前端页面:登录后点"选择题库 → 导入新题库",上传
.md/.txt -
命令行:
node scripts/import-markdown-set.js <源.md路径> <setId> "显示名称" # 例: node scripts/import-markdown-set.js ./data/import/网络安全.md network-security "网络安全"
简单部署方式(Linux 服务器):
# 1. 把代码同步到服务器(排除 node_modules / data / .git)
rsync -avz --exclude node_modules --exclude data --exclude .git \
./ user@your-server:/path/to/app/
# 2. 登录服务器
ssh user@your-server
cd /path/to/app
# 3. 安装依赖并启动(推荐使用 pm2 做进程守护)
npm install --production
pm2 start server.js --name quiz-app
# 或直接 nohup node server.js &生产环境需要把 data/ 目录持久化到仓库外的位置,避免每次部署时覆盖:可在启动时通过环境变量或软链接指向外部目录。
当前版本见 package.json 及 CHANGELOG.md。



