完善文档与前端迁移,补充开源协议

This commit is contained in:
2026-04-17 19:48:13 +08:00
parent 466fa50aa8
commit 31916e68a6
94 changed files with 7019 additions and 480 deletions

86
docs/PLAN.md Normal file
View File

@@ -0,0 +1,86 @@
# QQuiz Execution Plan
更新时间2026-04-17
## 目标
把当前项目推进到可以持续开发和稳定验收的状态,重点落实:
1. 默认 SQLite兼容 MySQL
2. 前端界面简洁、可直接操作、少说明文字
3. 用户管理达到可上市产品的基础要求
4. push 后 GitHub 自动构建镜像
5. 逐步完成旧 Vite 前端到新 Next 前端的替换
## 已完成的代码级工作
- 默认 Docker 拓扑已切到 SQLite
- MySQL 兼容拓扑已拆到 `docker-compose.mysql.yml`
- 新前端容器已接入并替换 Docker 默认前端
- 管理员用户管理已经接入真实接口
- 管理员设置页已经接入真实配置接口
- 侧边栏选中态 bug 已修复
- 新前端色彩已收敛为更简洁的产品风格
## 当前代码扫描后的主要问题
### 后端
1. 数据库迁移体系仍然不完整
2. `LLMService` 仍存在启动期副作用
3. 文档解析任务仍依赖进程内后台任务
4. 题库导入并发与去重约束还没彻底补完
5. 管理模块还缺用户状态、审计、批量能力
### 前端
1. Exam detail / Question / Mistake / Quiz 仍是占位或半占位页面
2. 部分页面仍有旧迁移骨架内容,需要继续清理
3. 确认类交互还没统一替换为更正式的对话框方案
4. 视觉层还需要统一列表、表单、状态、分页组件
### 部署与文档
1. Compose 仍缺 dev/prod 分离
2. 文档体系仍需把运行方式统一到 SQLite 默认 + MySQL 兼容
3. CI 只有主干镜像构建,还缺 PR 验证与 smoke test
## 后续执行顺序
### 第一阶段:后端稳定性
1. Alembic 基线迁移
2. 去掉 `create_all` 正式职责
3. 去掉 LLM import side effect
4. 统一事务边界
5. 补用户状态字段与审计日志模型
### 第二阶段:前端业务页
1. 接通 `exams/[examId]`
2. 接通 `questions`
3. 接通 `mistakes`
4. 接通 `quiz/[examId]`
5. 接通 `mistake-quiz`
### 第三阶段:用户管理产品化
1. 用户状态管理
2. 审计日志
3. 批量操作
4. 更完整的密码与安全策略
### 第四阶段:工程化
1. Compose dev/prod 分离
2. PR workflow
3. SQLite/MySQL 双栈 smoke
4. 文档统一
## 前端视觉要求
1. 主色:深蓝,作为动作与选中态
2. 背景:浅灰蓝,不用大面积高饱和装饰
3. 卡片:白底、细边框、轻阴影
4. 状态色:成功绿、警告橙、错误红
5. 页面信息结构:标题、数据、动作优先,减少解释文字