# devops-self-examp-test **Repository Path**: chaoyuew/devops-examp-self-test ## Basic Information - **Project Name**: devops-self-examp-test - **Description**: A python flask website for devops exam self-test, like AWS SAA/ALI ACP ... - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-17 - **Last Updated**: 2026-05-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AWS SAA-C03 & Alibaba Cloud ACA 考试刷题系统 一个基于 Flask 的 AWS Solutions Architect Associate (SAA-C03)、阿里云 ACA/ACP 和基金从业资格考试练习系统,提供题目练习、笔记记录、答题统计、AI解析、分类标签管理等功能。 ## 功能特性 - **题目练习**:支持单选题、多选题和判断题 - **多题库支持**:同时支持 AWS SAA-C03、Alibaba Cloud ACA、Alibaba Cloud ACP 和基金从业资格考试题库 - **题目搜索**:支持搜索题目内容、选项和解析,显示内容来源标识(题干、选项、解析) - **答题进度保存与恢复**:自动记录上次答题序号,再次登录自动恢复 - **笔记功能**:支持 Markdown 格式的笔记编辑和预览 - **代码高亮**:支持多种编程语言的语法高亮 - **答题统计**:实时统计答题情况(已答、正确、错误) - **答题卡**:可视化显示所有题目的答题状态 - **用户管理**:支持多用户登录,每个用户独立答题记录 - **数据持久化**:答题状态和笔记内容本地保存 - **AI解析**:支持通过AI智能解析题目,提供详细分析 - **AI聊天**:支持与AI进行交互式聊天,深入探讨题目 - **模型管理**:支持添加、删除AI模型,显示模型过期时间和剩余token数 - **解析区域笔记优先**:答题后优先显示用户笔记,无笔记时显示默认解析内容 - **主页面悬浮球**:包含笔记、AI解析、答题卡、重新刷题、上一题、提交答案、下一题,支持拖拽移动 - **笔记页面悬浮球**:包含编辑、预览、保存、关闭,支持拖拽移动 - **模型选择弹窗**:支持模型列表展示、添加新模型、删除模型 - **进度条**:可视化显示答题进度,位于考试信息区域内 - **精美UI**:现代化的界面设计,流畅的动画效果 - **响应式设计**:支持移动端、平板端和桌面端 - **Session管理**:30天过期时间,过期前10分钟提醒,支持自动刷新 - **分类标签管理**:支持为题目添加分类和标签,便于组织和筛选 - **侧边栏**:左侧边栏显示分类选择器、标签管理和AI推荐功能 - **快速筛选**:支持按分类和标签快速筛选题目 - **悬浮球交互优化**:修复悬浮球遮罩尺寸过大问题,确保不会覆盖页面其他可交互元素 - **AI解析自动跟随暂停**:自动跟随功能默认处于暂停状态,用户可自由滚动查看内容,流式输出期间不强制滚动到底部 - **分类标签更新无刷新**:修改分类或标签时仅更新侧边栏局部内容,提升用户体验流畅性 ## 技术栈 - **后端**:Flask (Python 3.14.5+) - **前端**:HTML, CSS, JavaScript - **Markdown 解析**:自定义 Markdown 解析器 - **代码高亮**:highlight.js - **数据存储**:JSON 文件 - **AI集成**:OpenAI API (支持阿里云通义千问等兼容接口) ## 系统要求 - **Python**:3.14.5 或更高版本 - **操作系统**:Windows / Linux / macOS - **浏览器**:Chrome / Firefox / Safari / Edge(现代浏览器) ## 项目结构 ``` devops-examp-self-test/ ├── data/ # 题目数据 │ ├── Devops-AWS SAA-C03.json # Devops AWS SAA-C03题目库 │ ├── Devops-Alibaba Cloud ACA.json # Devops阿里云ACA题目库(已优化场景化题干) │ ├── Devops-Alibaba Cloud ACP.json # Devops阿里云ACP题目库(250题完整题库) │ ├── AMAC FPD - Part 1.json # 基金从业资格科目一题库 │ └── AMAC FPD - Part 2.json # 基金从业资格科目二题库 ├── static/ # 静态资源 │ ├── css/ │ │ └── style.css # 样式文件(包含搜索功能、分类标签管理样式) │ └── js/ │ ├── marked.min.js # Markdown 解析库 │ ├── script.js # 前端脚本(包含搜索功能、悬浮球逻辑) │ └── category_tag_manager.js # 分类和标签管理器 ├── templates/ # 模板文件 │ ├── index.html # 主页面(包含搜索框、侧边栏、结果展示) │ ├── login.html # 登录页面 │ ├── notes.html # 笔记页面 │ └── quiz-select.html # 题库选择页面 ├── docs/ # 文档和工具脚本 │ ├── README.md # 文档目录说明 │ ├── MIGRATION_COMPLETE.md # uv 迁移完成报告 │ ├── UV_MIGRATION_GUIDE.md # uv 使用指南 │ ├── QUICK_START_UV.md # uv 快速开始 │ ├── verify_setup.py # 环境验证脚本 │ ├── README_CATEGORIES_TAGS.md # 分类标签系统说明 │ ├── TASK_SUMMARY_CATEGORIES_TAGS.md # 分类标签任务总结 │ ├── generate_categories_tags.py # 分类标签生成脚本 │ ├── test_data_loading.py # 数据加载测试脚本 │ ├── validate_categories_tags.py # 分类标签验证脚本 │ ├── 阿里云ACP介绍.md # 阿里云ACP考试介绍 │ ├── AMAC Fund Practitioner's License详解.md # 基金从业资格详解 │ └── 标签推荐AI解析模型使用逻辑.md # AI标签推荐逻辑说明 ├── .trae/documents/ # AI辅助文档生成计划 │ ├── 生成阿里云ACP题库计划.md │ ├── 科目二题库生成计划.md │ └── 阿里云ACP题库生成计划.md ├── user_notes/ # 用户笔记存储(运行时生成) ├── user_status/ # 用户答题状态(运行时生成) ├── app.py # Flask 应用主文件(包含搜索API、分类标签API) ├── config.json # 整合配置文件(包含用户、API、模型配置) ├── pyproject.toml # 项目配置(uv 管理) ├── requirements.txt # Python 依赖 ├── setup.py # 安装配置 ├── uv.lock # 依赖锁定文件 ├── .python-version # Python 版本要求 ├── start_uv.bat/ps1/sh # uv 启动脚本(推荐使用) ├── CHANGELOG.md # 更新日志 ├── CONTRIBUTING.md # 贡献指南 └── LICENSE # 许可证 ``` ## 安装与运行 ### 0. 环境要求 确保您的系统已安装 Python 3.14.5 或更高版本: ```bash python --version # 或 python3 --version ``` 如果版本低于 3.14.5,请先升级 Python。 **快速开始**: 查看 [QUICK_START_UV.md](QUICK_START_UV.md) 获取 uv 管理的快速指南。 ### 1. 克隆项目 ```bash git clone cd aws-exam-webapp ``` ### 2. 安装依赖 **方法一:使用 pip(传统方式)** ```bash pip install -r requirements.txt ``` **方法二:使用 uv(推荐)** ```bash # 安装 uv(如果尚未安装) pip install uv # 同步依赖 uv sync ``` ### 3. 配置用户 编辑 `config.json` 文件,添加或修改用户信息: ```json { "users": [ { "username": "admin", "password": "admin123" }, { "username": "user1", "password": "password123" } ] } ``` ### 4. 配置AI解析(可选) 如果需要使用AI解析功能,测试阶段可以请编辑 `config.json` 文件,添加API配置和模型列表:正式环境,请创建同名环境变量 `ALi_API_KEY` 和 `ALi_API_URL`,并将 `ALi_API_KEY` 和 `ALi_API_URL` 替换为您的API密钥和URL。 ```json { "users": [ { "username": "admin", "password": "admin123" } ], "api": { "ALi_API_KEY": "your_api_key_here", "ALi_API_URL": "your_api_url_here" }, "models": [ { "name": "qwen3-max-2026-01-23", "expiry": "2026/04/27", "tokens": 10000 }, { "name": "qwen3.5-397b-a17b", "expiry": "2026/05/18", "tokens": 15000 } ] } ``` - **api**: 包含AI API的配置信息 - **models**: 包含AI模型列表,每个模型包含名称、过期时间和剩余token数 ### 5. 运行应用 **方法一:直接运行** ```bash python app.py ``` **方法二:使用 uv(推荐)** ```bash # Linux/Mac ./start_uv.sh # Windows (CMD) start_uv.bat # Windows (PowerShell) .\start_uv.ps1 ``` 应用将在 `http://127.0.0.1:5000` 启动。 ### 6. 访问应用 在浏览器中打开 `http://127.0.0.1:5000`,使用配置的用户名和密码登录。 ## 使用说明 ### 登录 使用 `config.json` 中配置的用户名和密码登录系统。 ### 题库选择 登录后,您可以选择想要练习的题库: - AWS SAA-C03:AWS Solutions Architect Associate 认证考试 - Alibaba Cloud ACA:阿里云助理级架构师认证考试(200题,已优化场景化题干) - Devops-AWS SAA-C03:Devops方向AWS SAA-C03考试 - Devops-Alibaba Cloud ACA:Devops方向阿里云ACA考试(200题,已优化场景化题干) - Devops-Alibaba Cloud ACP:Devops方向阿里云ACP考试(250题完整题库) - AMAC FPD - Part 1:基金从业资格考试科目一《基金基础知识与法律法规》 - AMAC FPD - Part 2:基金从业资格考试科目二《证券投资基金基础知识》 #### 答题进度恢复 如果您之前在某个题库有未完成的答题记录: - 题库卡片会显示绿色边框和"继续"标签 - 点击题库后会显示对话框,提供两个选项: - **继续答题**:从上次答题的位置继续 - **重新开始**:清空答题进度,从头开始 ### 答题 1. 选择题目选项(单选或多选) 2. 点击"提交答案"按钮 3. 查看答案解析和正确答案 4. 使用"上一题"/"下一题"按钮切换题目 5. 查看进度条了解答题进度 ### 题目搜索功能 1. 在顶部搜索框中输入关键词(支持搜索题目内容、选项和解析) 2. 可选:通过下拉菜单筛选题目类型(全部/单选/多选) 3. 搜索结果会显示匹配的题目,标注内容来源(题干、选项、解析) 4. 关键词会高亮显示在匹配内容中 5. 点击搜索结果自动跳转到对应题目 6. 点击搜索区域外任意位置自动清除搜索 ### 主页面悬浮球使用 1. **笔记**:点击进入笔记页面(默认进入预览模式) 2. **AI解析**:点击打开模型选择弹窗 3. **答题卡**:点击查看所有题目状态 4. **重新刷题**:点击清空所有答题状态(笔记内容保留) 5. **上一题**:点击跳转到上一题 6. **提交答案**:点击提交当前题目的答案 7. **下一题**:点击跳转到下一题 8. **拖拽移动**:按住悬浮球并拖动,可以将其移动到屏幕任意位置(支持桌面端和移动端) ### 模型管理 1. 点击悬浮球的"AI解析"图标打开模型选择弹窗 2. 模型列表直接显示模型名称、过期时间和剩余token数 3. 在底部输入框添加自定义模型 4. 点击模型右侧的×按钮删除模型 ### 笔记功能 1. 点击悬浮球的"笔记"图标进入笔记页面(默认进入预览模式) 2. 点击笔记页面悬浮球的"编辑"按钮切换到编辑模式 3. 使用格式化工具栏快速插入Markdown格式 4. 支持 Markdown 格式编辑 5. 点击笔记页面悬浮球的"预览"按钮查看 Markdown 渲染效果 6. 点击笔记页面悬浮球的"保存"按钮保存笔记内容 7. 点击笔记页面悬浮球的"关闭"按钮返回答题页面 8. **拖拽移动**:按住悬浮球并拖动,可以将其移动到屏幕任意位置(支持桌面端和移动端) ### AI解析 1. 点击悬浮球的"AI解析"图标 2. 在模型选择弹窗中选择模型(或添加自定义模型) 3. AI会自动解析当前题目 4. 支持与AI继续交互聊天 5. 可以将AI解析内容保存到笔记(覆盖或追加) ### 答题卡 1. 点击悬浮球的"答题卡"图标查看所有题目状态 2. 绿色:回答正确 3. 红色:回答错误 4. 灰色:未作答 5. 点击题号跳转到对应题目 ### 重新刷题 点击悬浮球的"重新刷题"图标清空所有答题状态(笔记内容保留)。 ### Session管理 1. **过期时间**:默认Session过期时间为30天 2. **过期提醒**:Session即将过期前10分钟会显示倒计时弹窗 3. **操作选项**: - **继续登录**:点击后刷新Session,延长30天 - **立即登录**:点击后跳转到登录页面 4. **自动跳转**:如果不操作,倒计时结束后会自动跳转到登录页面 5. **跨设备支持**:在桌面端、手机端,平板端都适用 ### 分类标签管理 1. **侧边栏**:点击左上角的 📑 按钮打开/关闭左侧边栏 2. **分类选择**:在侧边栏中选择题目分类,快速筛选题目 3. **标签管理**: - 查看当前题目的所有标签 - 添加新标签(输入后按回车或点击"添加标签") - 删除已有标签(点击标签右侧的 × 按钮) 4. **AI推荐标签**:点击"AI推荐标签"按钮,让AI自动分析题目并推荐合适的标签 5. **快速筛选**: - 选择分类后,只显示该分类的题目 - 选择一个或多个标签后,只显示包含这些标签的题目 - 点击"清除"按钮重置所有筛选条件 6. **分类和标签保存**:修改会自动保存到题库JSON文件中 ## Markdown 支持 笔记功能支持以下 Markdown 语法: - 标题:`#` 到 `####` - 无序列表:`-` 或 `*` - 有序列表:`1. 2. 3.` - 表格:使用Markdown表格语法 - 代码块:``language - 行内代码:`` `code` `` - 粗体:`**bold**` - 斜体:`*italic*` - 链接:`[文本](URL)` - 图片:`![替代文本](图片URL)` ### 代码高亮示例 ``` - name: clone-mysql image: your-registry/xtrabackup-with-pv:latest command: - bash - "-c" ``` ``` def hello_world(): print("Hello, World!") ``` ## 数据存储 - **答题状态**:存储在 `user_status//status.json` - **笔记内容**:存储在 `user_notes//notes_.md` - **题目数据**: - Devops-AWS SAA-C03:`data/Devops-AWS SAA-C03.json` - Devops-Alibaba Cloud ACA:`data/Devops-Alibaba Cloud ACA.json`(已优化场景化题干) - Devops-Alibaba Cloud ACP:`data/Devops-Alibaba Cloud ACP.json`(250题完整题库) - 基金从业资格科目一:`data/AMAC FPD - Part 1.json` - 基金从业资格科目二:`data/AMAC FPD - Part 2.json` - **配置信息**:存储在 `config.json`(包含用户账户、API配置、模型列表) - **分类标签数据**:直接存储在各题库JSON文件的 `category` 和 `tags` 字段中 ## 注意事项 1. 默认用户名:`admin`,密码:`admin123`(请在生产环境中修改) 2. 应用默认运行在开发模式,不建议在生产环境中使用 3. 数据存储在本地文件中,请定期备份重要数据 4. AI解析功能需要配置API密钥和API URL 5. 分类和标签修改会直接更新题库JSON文件,建议修改前备份 ## 开发计划 - [x] 添加AI解析功能 - [x] 支持AI聊天交互 - [x] 添加选项编辑功能 - [x] 优化界面美化 - [x] 添加悬浮菜单 - [x] 响应式设计优化 - [x] 添加多题库支持(AWS SAA-C03 和 Alibaba Cloud ACA) - [x] 添加答题进度保存与恢复功能 - [x] 添加解析区域笔记优先显示功能 - [x] 添加基金从业资格题库(科目一和科目二) - [x] 添加题目搜索功能(支持题干、选项、解析搜索,内容来源标识) - [x] 添加阿里云ACP题库(250题完整题库) - [x] 优化ACA题库题干(场景化描述,提升测试价值) - [x] 进度条移至考试信息区域内 - [x] 添加分类和标签管理功能 - [x] AI解析自动跟随暂停优化(默认暂停,流式输出不强制滚动) - [x] 分类标签更新无刷新优化(局部更新) - [x] 重新刷题模态框优化(居中显示,支持ESC关闭) - [ ] 添加错题本功能 - [ ] 支持题目收藏功能 - [ ] 添加学习进度统计 - [ ] 支持导出笔记功能 ## 许可证 Apache License 2.0 ## 贡献 欢迎提交 Issue 和 Pull Request!