Skip to content

CodeBreaker77-hf/Shuaa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

刷一刷 Shuaa

一天一刷,考前不慌。

轻量级的刷题 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文本

两种方式导入:

  1. 前端页面:登录后点"选择题库 → 导入新题库",上传 .md / .txt

  2. 命令行

    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.jsonCHANGELOG.md

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors