# chuji-exam **Repository Path**: attacker/chuji-exam ## Basic Information - **Project Name**: chuji-exam - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-25 - **Last Updated**: 2026-04-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 云计算考试题库系统 初级云计算工程师认证 - 全真模拟考试 ## 项目简介 这是一个基于 React + TypeScript + Vite 构建的云计算考试题库系统,提供分类练习和模拟考试两种模式,帮助考生高效备考初级云计算工程师认证。 ### 题库规模 - **总题数**: 1000 道 - **单选题**: 500 道 - **多选题**: 250 道 - **判断题**: 250 道 ### 知识点覆盖 - 云计算基础概念 - Linux系统运维 - 虚拟化与容器 - 存储技术 - 网络技术 - 数据库技术 - 云平台运维 - 监控与DevOps - Kubernetes - OpenStack - 云安全 - 计算服务 - 职业规范 - 法律法规 ## 功能特性 ### 1. 分类练习模式 - 按知识点分类顺序做题 - 答错即时显示正确答案和详细解析 - 帮助巩固知识点,反复练习 ### 2. 模拟考试模式 - 随机抽取 40 道单选 + 20 道多选 + 20 道判断,共 80 题 - 总分 100 分,限时 120 分钟 - 全真模拟考场环境 - 答题卡快速导航 - 倒计时提醒 - 自动评分和成绩分析 ### 3. 智能题库管理 - 支持难度分级(简单/中等/困难) - 知识点标签化管理 - 题目关联推荐 - 详细解析和举一反三 ## 技术栈 - **前端框架**: React 18 + TypeScript - **构建工具**: Vite 7 - **UI 组件**: shadcn/ui (基于 Radix UI) - **样式方案**: Tailwind CSS 3.4 - **路由管理**: React Router - **状态管理**: React Hooks - **后端工具**: Python 3 (题库生成器) - **数据存储**: JSON + SQLite ## 快速开始 ### 环境要求 - Node.js >= 20 - npm 或 yarn - Python 3 (可选,用于题库生成) ### 安装依赖 ```bash npm install ``` ### 开发模式 ```bash npm run dev ``` 访问 http://localhost:3000 ### 生产构建 ```bash npm run build ``` 构建产物在 `dist` 目录 ### 预览构建 ```bash npm run preview ``` ## 部署说明 本项目为纯前端应用,**无需后端服务器**,只需要 nginx + 静态资源即可部署。 ### 方式一:Docker 部署(推荐) #### 使用 Docker Compose ```bash # 构建并启动 docker-compose up -d # 访问 http://localhost:8080 ``` #### 使用 Docker ```bash # 构建镜像 docker build -t chuji-exam . # 运行容器 docker run -d -p 8080:80 --name chuji-exam chuji-exam # 访问 http://localhost:8080 ``` ### 方式二:传统 Nginx 部署 #### Nginx 配置示例 项目已包含 `nginx.conf` 配置文件,包含以下优化: - SPA 路由支持 - Gzip 压缩 - 静态资源缓存 - 安全头设置 ```nginx server { listen 80; server_name your-domain.com; root /path/to/dist; index index.html; location / { try_files $uri $uri/ /index.html; } # 开启 gzip 压缩 gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; } ``` #### 部署步骤 1. 构建生产版本:`npm run build` 2. 将 `dist` 目录内容上传到服务器 3. 配置 nginx 指向该目录 4. 重启 nginx 服务 ## 题库管理 ### 使用 Python 生成器 项目包含 `exam_generator.py` 命令行工具,支持从题库生成试卷。 ```bash # 从 JSON 文件生成试卷 python3 exam_generator.py --source json --single 40 --multiple 20 --judgment 20 # 从 SQLite 数据库生成试卷 python3 exam_generator.py --source sqlite --db exam_database.db # 使用随机种子生成可重复试卷 python3 exam_generator.py --seed 12345 --output exam_001.json ``` ### 题库文件说明 - `single.json` - 单选题题库 - `multiple.json` - 多选题题库 - `judgment.json` - 判断题题库 - `knowledge_map.json` - 知识点关系图 - `exam_database.db` - SQLite 数据库(可选) ## 项目结构 ``` chuji-exam/ ├── src/ │ ├── components/ui/ # UI 组件库 (40+ shadcn 组件) │ ├── data/ # 题库数据 │ │ ├── single.ts # 单选题 │ │ ├── multiple.ts # 多选题 │ │ ├── judgment.ts # 判断题 │ │ ├── types.ts # 类型定义 │ │ └── index.ts # 数据导出 │ ├── pages/ # 页面组件 │ │ ├── HomePage.tsx # 首页 │ │ ├── PracticePage.tsx # 练习页 │ │ ├── ExamPage.tsx # 考试页 │ │ └── ResultPage.tsx # 成绩页 │ ├── hooks/ # 自定义 Hooks │ ├── lib/ # 工具函数 │ ├── App.tsx # 根组件 │ ├── main.tsx # 入口文件 │ └── index.css # 全局样式 ├── exam_generator.py # 题库生成器 ├── *.json # 题库数据文件 ├── exam_database.db # SQLite 数据库 ├── package.json # 项目配置 ├── vite.config.ts # Vite 配置 ├── tailwind.config.js # Tailwind 配置 └── tsconfig.json # TypeScript 配置 ``` ## 开发指南 ### 添加新题目 1. 编辑对应的 JSON 文件(single.json / multiple.json / judgment.json) 2. 按照现有格式添加题目 3. 重新构建前端即可 ### 自定义主题 编辑 `tailwind.config.js` 和 `src/index.css` 修改主题配置。 ### 添加新功能 1. 在 `src/pages/` 添加新页面组件 2. 在 `src/App.tsx` 配置路由 3. 使用 `src/components/ui/` 中的组件构建界面 ## 浏览器支持 - Chrome >= 90 - Firefox >= 88 - Safari >= 14 - Edge >= 90 ## 许可证 MIT License ## 联系方式 如有问题或建议,请提交 Issue 或 Pull Request。