nonvioce c0be3a857f fix: export numbering format 1. 2. 3. + backup confirmation dialog hai 3 meses
..
android 9d1760e3f6 feat: export download uses system file picker to choose save location hai 3 meses
lib c0be3a857f fix: export numbering format 1. 2. 3. + backup confirmation dialog hai 3 meses
test f21733d0ab Initial commit: 题库PLUS C/S架构数学题库管理系统 hai 3 meses
web f21733d0ab Initial commit: 题库PLUS C/S架构数学题库管理系统 hai 3 meses
.gitignore f21733d0ab Initial commit: 题库PLUS C/S架构数学题库管理系统 hai 3 meses
.metadata f21733d0ab Initial commit: 题库PLUS C/S架构数学题库管理系统 hai 3 meses
README.md 790c6bcb3e fix: export download buttons + clear cart with confirm + collapse knowledge tree hai 3 meses
analysis_options.yaml f21733d0ab Initial commit: 题库PLUS C/S架构数学题库管理系统 hai 3 meses
pubspec.lock ab274e8cd4 feat: git auto-update + client request signing hai 3 meses
pubspec.yaml ab274e8cd4 feat: git auto-update + client request signing hai 3 meses

README.md

某人的题库 - 客户端

高中数学题库管理系统 Flutter 客户端(Android)。

构建

flutter pub get

# 调试版
flutter build apk --debug

# 发布版(需签名文件)
cp key.jks android/app/key.jks
cp keystore.properties android/app/keystore.properties
flutter build apk --release
# 输出:build/app/outputs/flutter-apk/app-release.apk

首次使用

  1. 打开应用 → 设置页
  2. 输入服务器地址和 Token → 连接
  3. 跳转题库首页
环境 服务器地址
模拟器 http://10.0.2.2:8765
真机 http://服务器IP:8765

页面导航

标签 功能
题库 知识点筛选(🔍按钮)→ 题型筛选 → 题目列表(显示正文摘要)→ 点开预览(公式+图片)→ +/- 管理试题篮
搜索 关键词全文搜索
试题篮 查看/移除题目,导出 docx
设置 服务器配置、WebDAV 远程备份配置

知识点筛选

  1. 右上角 🔍 按钮 → 弹出知识点树
  2. 展开章节浏览,点击 🔍 图标筛选该节点
  3. 点击叶子节点精确筛选
  4. 「全部题目」清除筛选
  5. 筛选后 AppBar 显示当前筛选名称,✕ 清除

题目显示

  • 列表卡片显示题目前 80 字符摘要(body_preview)
  • 不显示 ID
  • 难度标签(易/中/难)+ 题型图标
  • 已加入试题篮的题目显示红色移除按钮

试题篮

  • 单一默认篮子,自动创建
  • 显示题目摘要而非 ID
  • 支持导出学生版/教师版 docx
  • 下拉刷新

API 认证

Dio 拦截器自动给所有请求添加签名头:

X-Timestamp: <unix_timestamp>
X-Signature: HMAC-SHA256(token, METHOD+PATH+timestamp) → hex

依赖

包 用途
flutter_riverpod 状态管理
dio HTTP 客户端
webview_flutter WebView 题目渲染(公式+图片)
shared_preferences 服务器配置本地持久化
crypto HMAC-SHA256 签名