一个专业的技术面试题库管理平台,支持题目管理、AI生成、随机选题和面试模式。
- ✅ 题目管理 - 完整的CRUD操作
- ✅ 智能搜索 - 支持关键词、类别、难度筛选
- ✅ AI生成 - 基于OpenAI的题目自动生成
- ✅ 随机选题 - 灵活的随机选题功能
- ✅ 面试模式 - 专业的全屏面试体验
- ✅ 响应式设计 - 完美支持移动端
- 现代技术栈 - Vue3 + FastAPI + TypeScript
- 高性能 - 虚拟DOM + 异步处理
- 可扩展 - 模块化架构设计
- 易部署 - Docker容器化支持
- FastAPI - 现代、快速的Python Web框架
- SQLAlchemy - Python SQL工具包和ORM
- SQLite - 轻量级数据库
- OpenAI API - AI题目生成功能
- Vue 3 - 渐进式JavaScript框架
- TypeScript - JavaScript的超集,添加了类型系统
- TailwindCSS - 实用优先的CSS框架
- Pinia - Vue状态管理
- Vue Router - Vue.js官方路由
- Python 3.9+
- Node.js 16+
- SQLite 3.x
- 克隆项目
git clone https://github.com/yourusername/interview-question-bank.git
cd interview-question-bank- 配置环境变量
cd backend
cp .env.example .env
# 编辑 .env 文件,添加OpenAI API密钥(可选)
cd ..- 一键启动(前后端同时启动)
./start-local.sh- 访问应用
- 前端:http://localhost:5173
- 后端API:http://localhost:8000
- API文档:http://localhost:8000/docs
- 停止服务
./stop-local.sh脚本功能说明:
- ✅ 自动检查 Python 和 Node.js 环境
- ✅ 自动创建 Python 虚拟环境
- ✅ 自动安装前后端依赖
- ✅ 自动初始化数据库
- ✅ 同时启动前后端服务
- ✅ 进程管理和优雅停止
- ✅ 彩色日志输出
- 克隆项目
git clone https://github.com/yourusername/interview-question-bank.git
cd interview-question-bank- 配置环境变量
cp .env.example .env
# 编辑 .env 文件,添加OpenAI API密钥(可选)- 启动服务
./start.sh
# 或者手动执行
docker-compose up -d- 访问应用
- 前端:http://localhost
- 后端API:http://localhost:8000
- API文档:http://localhost:8000/docs
cd backend
# 创建虚拟环境(推荐)
python3 -m venv venv
source venv/bin/activate
# 安装依赖
pip install -r requirements.txt
# 初始化数据
python init_data.py
# 启动服务
python main.py
# 或使用 uvicorn
uvicorn main:app --reload --host 0.0.0.0 --port 8000cd frontend
# 安装依赖
npm install
# 启动开发服务器
npm run dev
# 或构建生产版本
npm run buildinterview-question-bank/
├── backend/ # FastAPI后端
│ ├── app/
│ │ ├── api/ # API路由
│ │ ├── models.py # 数据库模型
│ │ ├── schemas.py # Pydantic模型
│ │ ├── crud.py # 数据库操作
│ │ ├── services/ # 业务服务
│ │ └── main.py # FastAPI应用
│ ├── init_data.py # 数据初始化脚本
│ ├── requirements.txt # Python依赖
│ ├── Dockerfile # 后端Docker配置
│ └── .env.example # 环境变量示例
│
├── frontend/ # Vue3前端
│ ├── src/
│ │ ├── components/ # Vue组件
│ │ ├── views/ # 页面组件
│ │ ├── stores/ # Pinia状态管理
│ │ ├── api/ # API服务
│ │ ├── types/ # TypeScript类型
│ │ └── router/ # Vue路由
│ ├── package.json # Node.js依赖
│ ├── Dockerfile # 前端Docker配置
│ ├── nginx.conf # Nginx配置
│ └── vite.config.ts # Vite配置
│
├── docker-compose.yml # Docker Compose配置
├── .env.example # 环境变量示例
└── README.md # 项目说明
创建 .env 文件:
# OpenAI API Key (可选,用于AI题目生成功能)
OPENAI_API_KEY=your_openai_api_key_here
# 数据库配置
DATABASE_URL=sqlite:///./interview_questions.db
# 其他配置
API_V1_STR=/api/v1
PROJECT_NAME=Interview Question Bank
CORS_ORIGINS=http://localhost:3000,http://localhost:5173- AI功能:需要配置OpenAI API密钥
- 数据库:默认使用SQLite,可配置其他数据库
- 跨域:可配置允许的前端地址
- 访问首页点击"题目管理"
- 创建新题目或编辑现有题目
- 支持Markdown格式编辑
- 可设置类别、难度和标签
- 选择"AI生成"功能
- 设置题目类别、难度和数量
- 点击生成,等待AI创建题目
- 预览并保存满意的题目
- 设置选题参数(数量、类别、难度)
- 生成随机题目集
- 可以导出题目或直接开始面试
- 选择预设面试或自定义配置
- 进入全屏面试界面
- 按顺序回答题目
- 可随时查看解析和进度
# 构建生产镜像
docker-compose build
# 启动生产服务
docker-compose up -d
# 查看日志
docker-compose logs -f- 查看容器状态:
docker-compose ps - 重启服务:
docker-compose restart - 更新服务:
docker-compose pull && docker-compose up -d
欢迎提交Issue和Pull Request!
- Fork项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建Pull Request
- 后端:遵循PEP 8规范
- 前端:使用ESLint和Prettier
- 提交前运行代码检查
- ✅ 初始版本发布
- ✅ 完整的题目管理功能
- ✅ AI题目生成
- ✅ 随机选题和面试模式
- ✅ 响应式设计
- ✅ Docker部署支持
本项目采用 MIT 许可证 - 详见 LICENSE 文件
享受使用面试题库管理系统! 🎉



