一个现代化的求职管理系统,使用 Flask + React 技术栈构建。
.
├── app/ # Flask 后端应用
│ ├── routes/ # API 路由
│ ├── services/ # 业务逻辑服务
│ └── models.py # 数据库模型
├── frontend/ # 前端应用
│ └── job-admin/ # React 管理后台
├── migrations/ # 数据库迁移文件
├── tests/ # 测试用例
├── .env # 环境变量配置
└── requirements.txt # Python 依赖
- Python 3.x
- Flask 3.0.0
- SQLAlchemy
- Flask-Migrate
- Flask-CORS
- JWT 认证
- React 18
- TypeScript
- Ant Design
- Vite
- React Router
- Axios
- 创建并激活虚拟环境:
python -m venv venv
source venv/bin/activate # Unix
# 或
.\venv\Scripts\activate # Windows
- 安装依赖:
pip install -r requirements.txt
- 设置环境变量:
# 创建 .env 文件并配置以下变量
FLASK_APP=run.py
FLASK_ENV=development
DATABASE_URL=sqlite:///instance/app.db
SECRET_KEY=your-secret-key
- 初始化数据库:
flask db upgrade
- 创建管理员账户:
python create_admin.py
- 运行后端服务:
python run.py
服务将在 http://localhost:5001 运行
- 进入前端目录:
cd frontend/job-admin
- 安装依赖:
npm install
- 运行开发服务器:
npm run dev
前端将在 http://localhost:5173 运行
- 初始化数据库:
flask db upgrade
- 创建管理员用户:
python3 create_admin.py
这将创建以下用户:
- 管理员账号:admin@example.com (密码: admin123)
- 测试用户账号:test@example.com (密码: test123)
- 安装依赖:
python3 -m pip install -r requirements.txt
- 运行后端服务器:
python3 run.py
服务器将在 http://localhost:5002 上运行。
- 进入前端目录:
cd frontend/job-admin
- 安装依赖:
npm install
- 运行开发服务器:
npm run dev
前端应用将在 http://localhost:5173 上运行。
运行测试套件:
pytest
生成测试覆盖率报告:
pytest --cov=app tests/
- POST /api/auth/login - 用户登录
- POST /api/auth/register - 用户注册
- GET /api/jobs - 获取职位列表
- POST /api/jobs - 创建新职位
- GET /api/jobs/{id} - 获取职位详情
- PUT /api/jobs/{id} - 更新职位信息
- DELETE /api/jobs/{id} - 删除职位
- GET /api/users/profile - 获取用户信息
- PUT /api/users/profile - 更新用户信息
- 构建前端:
cd frontend/job-admin
npm run build
- 配置生产环境变量:
FLASK_ENV=production
DATABASE_URL=your-production-db-url
SECRET_KEY=your-production-secret-key
- 运行数据库迁移:
flask db upgrade
- 使用生产服务器(如 Gunicorn)运行应用:
gunicorn run:app
- Fork 本仓库
- 创建你的特性分支 (
git checkout -b feature/AmazingFeature
) - 提交你的改动 (
git commit -m 'Add some AmazingFeature'
) - 推送到分支 (
git push origin feature/AmazingFeature
) - 开启一个 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情