Skip to content

lmk1010/OpenExam

Repository files navigation

OpenExam App Icon

OpenExam

本地优先的 AI 备考与训练桌面应用

Electron React SQLite AI Platform

智能出卷 · AI 辅导 · 自定义练习 · 成长体系 · 本地持久化

产品概览

OpenExam 是一个基于 Electron + React + SQLite 的桌面端学习平台,面向考公、考证、刷题训练与 AI 辅导场景,提供从题库导入、智能组卷、答题分析到成长追踪的一体化学习链路。官方题库以压缩 SQLite 种子库内置到应用中,首启自动初始化到本地用户目录,兼顾离线可用与后续扩展。

界面预览

OpenExam Demo 1 OpenExam Demo 2

OpenExam Demo 3 OpenExam Demo 4

OpenExam Demo 5

学习中心 · 我的成长 · AI 智能导师 · 成就系统 · 深色模式

核心能力

  • AI 出卷:根据知识点、难度、题型快速生成试卷与练习。
  • AI 导师:支持讲题、追问、知识点梳理、举一反三。
  • 自定义试卷:用户可保存自定义试卷与自定义练习,并持久化到本地。
  • 题库导入:支持图片 OCR、PDF、Excel、CSV、JSON 等多种来源。
  • 错题闭环:记录答题结果、错因与练习历史,形成复习闭环。
  • 成长体系:等级、成就、学习日历、阶段目标统一沉淀。
  • 本地优先:学习数据默认保存在本地,更适合个人长期积累。

技术栈

层级 方案
桌面容器 Electron
前端界面 React + Vite
本地数据库 SQLite + better-sqlite3
状态与数据 本地 Store + Renderer 页面状态
AI 模型 OpenAI / Claude / DeepSeek / 豆包 / Kimi / 通义千问 / 智谱 GLM

题库架构

  • 官方题库:仓库内保存压缩种子库 data/openexam.seed.db.gz,不再维护超大总 JSON。
  • 首启初始化:应用首次启动时自动解压种子库到用户目录 openexam.db
  • 题图离线化:题图单独存放在 question-assets/,题目 HTML 中引用 openexam-asset://question-assets/...
  • 本地解析:Electron 主进程负责把资源协议映射到本地文件,开发环境与打包环境统一可用。
  • 更新链路:抓取流程为“爬题 → 本地化题图 → 生成种子库 → 同步本地 SQLite”,数据结构更稳定。

快速开始

npm install
npm run dev

常用命令

# 构建前端
npm run build

# 重建 Electron 原生依赖
npm run rebuild:electron

# 从本地官方库重建种子库
npm run build:saduck-seed

# 将种子库同步到本地用户数据库
npm run sync:saduck-seed

# 重新抓取官方题库并更新种子库/本地库
npm run crawl:saduck

# 本地打包 macOS
npm run dist:mac

# 本地打包 Windows
npm run dist:win

Release 流程

项目已接入 GitHub Actions 自动构建与 Release 打包:

  • 推送 v* 标签后自动触发构建。
  • 自动产出 macOS 安装包与 Windows 安装包。
  • 构建产物自动上传到 GitHub Release。
  • Release 页面自动附带 macOS 首次打开说明。
git tag v0.2.1
git push origin main
git push origin v0.2.1

更新日志

  • 最新版本说明见 CHANGELOG.md

macOS 首次打开说明

当前自动构建的 macOS 包未做 Apple notarization。若系统拦截,可按以下方式处理:

  • 在 Finder 中右键 OpenExam.app,选择“打开”。
  • 若仍被拦截,可执行:
xattr -dr com.apple.quarantine /Applications/OpenExam.app

适用场景

  • 公务员考试 / 行测刷题
  • 教师资格证 / 法考 / 考研
  • IT 认证 / 通用知识训练
  • 自定义题库与长期练习

License

GPL-3.0-or-later

  • 本仓库代码采用 GNU GPL v3 或更高版本授权。
  • 第三方题库数据、图片资源与外部抓取内容不默认归入 GPL 授权范围,需遵循其各自来源与许可说明。

About

AI学习考试助手 复习 试卷 题库 !考研 考公!

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages