Skip to content

Repository files navigation

速记卡 Study Flashcards

本地可运行的题库练习系统:多题库 · 错题本 · SQL 在线判题 · C++ 编译判题 · AI 学习助手

Top Language Last Commit Repo Size License: MIT


纯 HTML/CSS/JS 前端 + Python 标准库后端(零第三方依赖),打开浏览器就能刷题:选择题即时判定并给出逐选项解析,简答题展示答案后自评对错;内置 MySQL 练习(SQL 在线运行 + 自动判题)与 C++ 算法练习(在线编译运行 + 用例比对);还集成了聊天学习助手(后端代理调用大模型,API Key 不出本机,会话本地落盘)。

🖼️ 界面预览

速记卡主界面:题目卡片、选项判定与解析区
主界面:题目卡片、选项判定与逐选项解析

✨ 功能亮点

📚 多题库合并加载

基础题库 + 7 个可选题库包自动合并,缺失某个包不影响整体运行;题库下拉分组、目录概览、搜索跳转一应俱全。

✅ 即时判定与逐选项解析

选择题提交后高亮对错,每个选项都有独立解析;简答题展示答案后自评,支持公式推导、变量说明、例题等结构化区块。

🗄️ SQL 在线判题

MySQL 语法练习题,后端在内存 SQLite 中建库执行并比对结果集;仅放行 SELECT,内置 shop / hr / school 三套数据集。

⚙️ C++ 在线编译判题

算法题调用本机 g++/clang++ 在临时目录编译运行,按测试用例比对标准输出,编译错误与超时都有反馈。

🤖 AI 学习助手

后端代理调用 MiniMax API,Key 只存本机环境变量;支持「带入当前题目」提问,回答里的 LaTeX 公式直接渲染,会话落盘可回溯。

📖 小白模式 + 公式渲染

内置术语词典自动扫描题干/解析生成「名词解释」;MathJax 渲染 LaTeX 公式与推导,多 CDN 兜底、失败可降级。

🎯 错题本与进度统计

localStorage 持久化做题进度、错题列表、每题尝试/错误统计;「只看错题」模式 + 顺序/随机两种出题策略。

🏠 纯本地、零依赖部署

后端只用 Python 标准库 http.server,无需 pip install;同一 Wi-Fi 下平板也能访问,断网可刷题(聊天除外)。

🏗️ 架构与数据流

flowchart TD
    A["浏览器前端 site/<br>纯 HTML + CSS + JS"] -->|"GET 题库 *.json"| B["server.py<br>Python 标准库 http.server"]
    A -->|"POST /api/sql/run"| B
    A -->|"POST /api/cpp/run"| B
    A -->|"POST /api/minimax/chat"| B
    B -->|"建库执行 + 结果比对"| C["内存 SQLite<br>shop / hr / school 数据集"]
    B -->|"临时目录编译运行"| D["g++ / clang++<br>用例输出比对"]
    B -->|"代理转发(Key 不出本机)"| E["MiniMax API<br>聊天学习助手"]
    B -->|"会话落盘"| F[("data/chat_sessions/<br>+ chat_logs.jsonl")]
Loading

🚀 快速上手

只需要 Python 3,无需安装任何依赖:

git clone https://github.com/JingHao-Leon/study-flashcards.git
cd study-flashcards
python server.py
  • 电脑浏览器:http://127.0.0.1:5173/
  • 平板(同一 Wi-Fi):http://<你的电脑局域网IP>:5173/(需以 HOST=0.0.0.0 python server.py 启动)
  • 端口/监听地址可用环境变量覆盖:PORTHOST

⚠️ 不要双击 site/index.htmlfile:// 打开——题库 fetch 与 API 都需要经由本地 server 访问。 C++ 判题需要本机已安装 g++clang++(Windows 推荐 MinGW-w64)并加入 PATH;未安装时其余功能不受影响。

基础题库说明

site/questions.json(基础题库)未随仓库发布(见 .gitignore)。缺失时 7 个可选题库包仍可正常加载练习;如需从 PDF 抽题生成自己的基础题库:

python tools/extract_mcq.py \
  --pdf "你的题库1.pdf" \
  --pdf "你的题库2.pdf" \
  --out "site/questions.json"

📦 内置题库一览

题库文件 题数 内容
fintech_beginner_questions.json 150 金融科技入门
fintech_questions.json 120 金融科技进阶
deep_learning_questions.json 80 深度学习
xigua_ml_questions.json 52 西瓜书风格机器学习
fintech_math_formulas.json 25 金融数学公式推导卡(LaTeX)
mysql_practice_questions.json 24 MySQL 练习(在线运行判题)
cpp_algo_questions.json 16 C++ 算法题(在线编译判题)

新增题库很简单:放一个 site/<your_pack>.json(JSON 数组,每题至少含 id/source/seq/type/question),再到 site/app.jsextraPaths 里登记路径即可。

⚙️ 配置(聊天助手可选)

聊天功能需要配置环境变量,或复制 .env.example.env.local 填写(不要提交到 Git):

变量 必填 说明
MINIMAX_API_KEY MiniMax API Key
MINIMAX_MODEL 模型名,默认 MiniMax-M2.7-highspeed
MINIMAX_GROUP_ID MiniMax Group ID
MINIMAX_BASE_URL API 地址,默认 https://api.minimax.chat/v1
MINIMAX_SOUL_FILE 助手人格/输出规范文件,默认读根目录 soul.md

📁 目录结构

├── server.py                      # 后端:静态服务 + SQL/C++/聊天 API(纯标准库)
├── soul.md                        # 聊天助手人格与输出规范(系统提示词)
├── requirements.txt               # 空文件——零第三方依赖
├── .env.example                   # 聊天配置模板
├── site/
│   ├── index.html                 # 页面骨架(MathJax 多 CDN 兜底)
│   ├── app.js                     # 前端全部逻辑:题库加载/判定/目录/聊天 UI
│   ├── style.css                  # 样式
│   ├── sql_datasets.json          # SQL 判题数据集:shop / hr / school
│   └── *_questions.json           # 7 个内置题库包(见上表)
├── tools/
│   └── extract_mcq.py             # 从 PDF 抽题生成 questions.json
├── assets/
│   └── preview.png                # 界面预览(本 README 引用)
└── TECHNICAL_OVERVIEW.md          # 技术原理拆解(架构/状态机/扩展指南)

想深入了解实现机制(选择题状态机、术语扫描、MathJax 策略、会话落盘格式、如何扩题库),请读 TECHNICAL_OVERVIEW.md

⚠️ 说明与局限

  • 本地学习工具:进度与错题存在浏览器 localStorage,无账号体系、不同设备间不同步。
  • GitHub Pages 无法完整运行:纯静态托管可以用,但 SQL/C++ 判题与聊天必须运行 server.py
  • SQL 判题方言:题目按 MySQL 语法设计,实际由内存 SQLite 执行,个别 MySQL 专有函数行为可能有差异;仅放行 SELECT 查询。
  • C++ 判题依赖本机编译器,运行超时与输出比对的规则以 server.py 实现为准。
  • 基础题库 site/questions.json 未入库,需自行生成或从空数组起步。

本地运行 · 零依赖 · 数据不出本机 | License: MIT
Made with ☕ by JingHao-Leon

About

本地可运行的速记卡/题库练习系统:多题库、目录检索、错题与进度、SQL 在线判题、C++ 在线编译运行、聊天学习助手(本地后端)

Topics

Resources

Stars

81 stars

Watchers

6 watching

Forks

Releases

Packages

Contributors

Languages