某人的题库 - 客户端
高中数学题库管理系统 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
首次使用
- 打开应用 → 设置页
- 输入服务器地址和 Token → 连接
- 跳转题库首页
| 环境 |
服务器地址 |
| 模拟器 |
http://10.0.2.2:8765 |
| 真机 |
http://服务器IP:8765 |
页面导航
| 标签 |
功能 |
| 题库 |
知识点筛选(🔍按钮)→ 题型筛选 → 题目列表(显示正文摘要)→ 点开预览(公式+图片)→ +/- 管理试题篮 |
| 搜索 |
关键词全文搜索 |
| 试题篮 |
查看/移除题目,导出 docx |
| 设置 |
服务器配置、WebDAV 远程备份配置 |
知识点筛选
- 右上角 🔍 按钮 → 弹出知识点树
- 展开章节浏览,点击 🔍 图标筛选该节点
- 点击叶子节点精确筛选
- 「全部题目」清除筛选
- 筛选后 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 签名 |