# pepole-mgr
**Repository Path**: dog/pepole-mgr
## Basic Information
- **Project Name**: pepole-mgr
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-09-02
- **Last Updated**: 2025-09-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## 📋 项目简介
员工管理系统是一个功能完整的全栈Web应用,采用前后端分离架构,提供员工信息管理、考勤记录、工资管理等核心功能。系统集成了AI能力,支持智能生成职位描述,提升管理效率。
## ✨ 功能特性
### 🧑💼 员工管理
- 员工信息的增删改查 (CRUD)
- 员工头像上传和展示
- 部门职位管理
- 入职日期和薪资管理
- AI智能生成职位描述
### ⏰ 考勤管理
- 考勤记录查询和添加
- 签到签退时间记录
- 考勤状态统计(出勤、缺勤、迟到)
- 考勤数据可视化
### 💰 工资管理
- 工资记录管理
- 基本工资、奖金、扣款计算
- 实发工资自动计算
- 工资发放历史记录
### 📊 数据统计
- 员工总数统计
- 今日出勤统计
- 月度工资统计
- 数据可视化图表
### 🔐 用户认证
- 安全的用户登录系统
- Session-based认证
- 密码哈希存储
- 登录状态管理
## 🛠️ 技术栈
### 前端技术
- **框架**: React 19.1.1 + TypeScript 5.8.2
- **构建工具**: Vite 6.2.0
- **UI组件**: 自定义组件 + 响应式设计
- **图表库**: Recharts 3.1.2
- **HTTP客户端**: Fetch API
- **状态管理**: React Hooks
### 后端技术
- **框架**: Flask 2.3.3
- **数据库**: MySQL 5.7+
- **ORM**: SQLAlchemy 3.0.5
- **认证**: Session-based认证
- **跨域**: Flask-CORS 4.0.0
- **密码安全**: Werkzeug 2.3.7
- **配置管理**: python-dotenv 1.0.0
### AI集成
- **AI服务**: Google Gemini API
- **功能**: 智能生成职位描述
## 🚀 快速开始
### 环境要求
- **Node.js**: 16.0+
- **Python**: 3.8+
- **MySQL**: 5.7+
- **npm/pnpm**: 最新版本
### 1. 克隆项目
```bash
git clone
cd gemini-employee-management-system
```
### 2. 前端设置
```bash
# 安装依赖
npm install
# 或使用 pnpm
pnpm install
# 设置环境变量(可选)
# 创建 .env.local 文件并添加:
# VITE_API_BASE_URL=http://127.0.0.1:5000/api
```
### 3. 后端设置
```bash
# 进入后端目录
cd backend
# 创建虚拟环境
python3 -m venv venv
# 激活虚拟环境
# macOS/Linux:
source venv/bin/activate
# Windows:
venv\Scripts\activate
# 安装依赖
pip install -r requirements.txt
```
### 4. 数据库配置
```bash
# 创建MySQL数据库
mysql -u root -p
CREATE DATABASE ems_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# 设置环境变量(可选)
export DATABASE_URL="mysql+mysqlconnector://root:password@localhost/ems_db"
export SECRET_KEY="your-secret-key-here"
```
### 5. 初始化数据库
```bash
# 在backend目录下
flask init-db
```
### 6. 启动服务
#### 启动后端服务
```bash
# 在backend目录下
python run.py
# 或
flask run
```
后端服务将在 `http://127.0.0.1:5000` 启动
#### 启动前端服务
```bash
# 在项目根目录下
npm run dev
# 或
pnpm dev
```
前端服务将在 `http://localhost:5173` 启动
### 7. 访问系统
打开浏览器访问 `http://localhost:5173`
**默认登录账户**:
- 用户名: `admin`
- 密码: `admin123`
## 📖 使用说明
### 🔐 系统登录
1. 打开浏览器访问 `http://localhost:5173`
2. 在登录页面输入用户名和密码
3. 点击"登录"按钮进入系统主界面
### 🏠 主界面导航
登录成功后,您将看到系统主界面,包含以下主要区域:
- **侧边栏导航**: 包含仪表盘、员工管理、考勤管理、工资管理等模块
- **主内容区**: 显示当前选中模块的详细内容
- **顶部状态栏**: 显示当前用户信息和退出登录按钮
### 📊 仪表盘使用
仪表盘提供系统概览信息:
- **员工总数**: 显示当前系统中的员工数量
- **今日出勤**: 显示今日已签到的员工数量
- **月度工资**: 显示本月工资发放总额
- **数据图表**: 可视化展示各项统计数据
### 👥 员工管理
#### 查看员工列表
1. 点击侧边栏"员工管理"
2. 查看所有员工的基本信息
3. 使用搜索功能快速查找特定员工
#### 添加新员工
1. 点击"添加员工"按钮
2. 填写员工基本信息:
- 姓名(必填)
- 邮箱(必填,需唯一)
- 职位(必填)
- 部门(必填)
- 入职日期(必填)
- 月薪(必填)
- 头像URL(可选)
- 职位描述(可选,可使用AI生成)
3. 点击"保存"完成添加
#### 编辑员工信息
1. 在员工列表中点击"编辑"按钮
2. 修改需要更新的信息
3. 点击"保存"确认修改
#### 删除员工
1. 在员工列表中点击"删除"按钮
2. 确认删除操作
3. 系统将同时删除该员工的考勤和工资记录
#### AI生成职位描述
1. 在添加或编辑员工时,点击"AI生成"按钮
2. 系统将根据职位和部门信息自动生成职位描述
3. 可以手动调整生成的内容
### ⏰ 考勤管理
#### 查看考勤记录
1. 点击侧边栏"考勤管理"
2. 查看所有员工的考勤记录
3. 可以按日期范围筛选记录
#### 添加考勤记录
1. 点击"添加考勤"按钮
2. 选择员工和日期
3. 选择考勤状态:
- **出勤**: 正常上班
- **缺勤**: 未上班
- **迟到**: 晚于规定时间上班
4. 如果选择"出勤"或"迟到",需要填写签到和签退时间
5. 点击"保存"完成记录
#### 考勤状态说明
- **出勤**: 员工正常上班,有完整的签到签退时间
- **缺勤**: 员工未上班,无签到签退时间
- **迟到**: 员工晚于规定时间上班,有签到签退时间
### 💰 工资管理
#### 查看工资记录
1. 点击侧边栏"工资管理"
2. 查看所有员工的工资发放记录
3. 可以按薪资周期筛选记录
#### 添加工资记录
1. 点击"添加工资"按钮
2. 选择员工和薪资周期(格式:YYYY-MM)
3. 填写工资信息:
- **基本工资**: 员工的基本月薪
- **奖金**: 额外奖励金额(可选)
- **扣款**: 需要扣除的金额(可选)
4. 系统自动计算实发工资 = 基本工资 + 奖金 - 扣款
5. 点击"保存"完成记录
#### 工资计算说明
- **实发工资** = 基本工资 + 奖金 - 扣款
- 系统会自动计算并显示最终实发金额
- 支持负数扣款(如加班费等)
### 🔍 数据筛选和搜索
#### 员工搜索
- 在员工管理页面使用搜索框
- 支持按姓名、邮箱、职位、部门搜索
- 实时显示搜索结果
#### 考勤筛选
- 按日期范围筛选考勤记录
- 按考勤状态筛选
- 按员工筛选
#### 工资筛选
- 按薪资周期筛选
- 按员工筛选
- 按金额范围筛选
### 📱 响应式设计
系统支持多种设备访问:
- **桌面端**: 完整功能体验
- **平板端**: 适配触摸操作
- **手机端**: 简化界面,核心功能可用
### ⌨️ 快捷键
- `Ctrl + N`: 快速添加新员工
- `Ctrl + S`: 保存当前表单
- `Esc`: 关闭模态框
- `Enter`: 确认操作
### 💡 使用技巧
1. **批量操作**: 在员工列表中可以选择多个员工进行批量操作
2. **数据导出**: 支持将员工列表、考勤记录、工资记录导出为Excel文件
3. **数据备份**: 定期备份数据库,防止数据丢失
4. **权限管理**: 不同用户角色有不同的操作权限
5. **数据验证**: 系统会自动验证输入数据的格式和完整性
### 🚨 注意事项
1. **数据安全**: 请定期修改默认密码
2. **浏览器兼容**: 建议使用Chrome、Firefox、Safari等现代浏览器
3. **网络连接**: 确保前后端服务正常运行
4. **数据备份**: 重要数据请及时备份
5. **权限控制**: 不要将管理员账户信息泄露给无关人员
### ❓ 常见问题
#### Q: 忘记登录密码怎么办?
A: 请联系系统管理员重置密码,或通过数据库直接修改用户密码哈希值。
#### Q: 如何批量导入员工数据?
A: 目前系统支持单个添加,批量导入功能正在开发中。
#### Q: 考勤记录可以修改吗?
A: 可以,但建议谨慎操作,系统会记录修改历史。
#### Q: 工资记录删除后可以恢复吗?
A: 删除的工资记录无法直接恢复,请谨慎操作。
#### Q: 系统支持多语言吗?
A: 目前系统仅支持中文界面,多语言支持正在规划中。
#### Q: 如何备份系统数据?
A: 可以通过数据库导出功能或直接备份MySQL数据库文件。
### 🔧 故障排除
#### 登录失败
1. 检查用户名和密码是否正确
2. 确认后端服务是否正常运行
3. 检查网络连接是否正常
#### 页面加载缓慢
1. 检查网络连接
2. 清除浏览器缓存
3. 重启前后端服务
#### 数据保存失败
1. 检查必填字段是否完整
2. 确认数据格式是否正确
3. 查看浏览器控制台错误信息
#### 无法连接数据库
1. 检查MySQL服务是否运行
2. 验证数据库连接配置
3. 确认数据库用户权限
### 🎯 最佳实践
#### 数据管理最佳实践
1. **定期备份**: 建议每日自动备份数据库
2. **数据验证**: 输入数据前仔细核对,避免错误数据
3. **权限控制**: 为不同角色分配适当的操作权限
4. **审计日志**: 重要操作应记录操作日志
5. **数据清理**: 定期清理过期或无效数据
#### 系统维护最佳实践
1. **监控系统**: 定期检查系统运行状态
2. **性能优化**: 定期优化数据库查询和索引
3. **安全更新**: 及时更新系统和依赖包
4. **用户培训**: 定期培训用户正确使用系统
5. **文档维护**: 保持文档与系统功能同步
#### 使用效率提升技巧
1. **快捷键使用**: 熟练使用系统快捷键提高操作效率
2. **批量操作**: 尽量使用批量操作减少重复工作
3. **模板功能**: 创建常用数据模板快速录入
4. **搜索技巧**: 使用高级搜索功能快速定位数据
5. **报表导出**: 定期导出重要报表进行离线分析
### 🔄 数据导入导出
#### 数据导出
系统支持以下数据导出功能:
1. **员工数据导出**
- 格式:Excel (.xlsx)
- 包含:所有员工基本信息
- 用途:备份、分析、迁移
2. **考勤数据导出**
- 格式:Excel (.xlsx)
- 包含:指定时间范围的考勤记录
- 用途:考勤分析、工资计算
3. **工资数据导出**
- 格式:Excel (.xlsx)
- 包含:指定周期的工资记录
- 用途:财务分析、税务申报
#### 数据导入(规划中)
未来版本将支持以下导入功能:
1. **员工批量导入**
- 支持Excel模板导入
- 数据验证和错误提示
- 导入结果报告
2. **考勤数据导入**
- 支持考勤设备数据导入
- 自动数据格式转换
- 重复数据检测
### 🔐 安全建议
#### 密码安全
1. **强密码策略**: 使用包含大小写字母、数字、特殊字符的强密码
2. **定期更换**: 建议每3个月更换一次密码
3. **密码保护**: 不要在公共场所输入密码
4. **多因素认证**: 考虑启用多因素认证(未来版本)
#### 数据安全
1. **访问控制**: 限制系统访问权限
2. **数据加密**: 敏感数据加密存储
3. **网络安全**: 使用HTTPS协议传输数据
4. **备份安全**: 备份文件加密存储
#### 系统安全
1. **定期更新**: 及时更新系统和依赖包
2. **安全扫描**: 定期进行安全漏洞扫描
3. **日志监控**: 监控异常登录和操作
4. **权限审计**: 定期审计用户权限
### 📈 性能优化建议
#### 数据库优化
1. **索引优化**: 为常用查询字段建立索引
2. **查询优化**: 避免复杂的多表连接查询
3. **分页查询**: 大数据量查询使用分页
4. **连接池**: 合理配置数据库连接池
#### 前端优化
1. **懒加载**: 大列表使用虚拟滚动
2. **缓存策略**: 合理使用浏览器缓存
3. **资源压缩**: 压缩静态资源文件
4. **CDN加速**: 使用CDN加速静态资源
#### 系统监控
1. **性能监控**: 监控系统响应时间
2. **资源监控**: 监控CPU、内存、磁盘使用率
3. **错误监控**: 监控系统错误和异常
4. **用户行为**: 分析用户使用模式
### 🚀 扩展功能规划
#### 即将推出的功能
1. **移动端APP**: 原生移动应用
2. **消息通知**: 邮件和短信通知
3. **报表系统**: 高级报表和分析
4. **工作流**: 审批流程管理
5. **集成接口**: 第三方系统集成
#### 长期规划
1. **微服务架构**: 系统微服务化改造
2. **云原生部署**: 支持Kubernetes部署
3. **AI增强**: 更多AI功能集成
4. **国际化**: 多语言和多地区支持
5. **大数据分析**: 高级数据分析和预测
## 📁 项目结构
```
gemini-employee-management-system/
├── 📁 aidoc/ # 项目文档
│ ├── API文档.md # API接口文档
│ ├── 数据库设计.md # 数据库设计文档
│ ├── 系统架构设计.md # 系统架构文档
│ └── 部署指南.md # 部署指南
├── 📁 backend/ # 后端服务
│ ├── app.py # Flask应用主文件
│ ├── models.py # 数据模型定义
│ ├── database.py # 数据库初始化
│ ├── cli.py # CLI命令
│ ├── config.py # 配置管理
│ ├── run.py # 启动脚本
│ └── requirements.txt # Python依赖
├── 📁 components/ # React组件
│ ├── Dashboard.tsx # 仪表盘组件
│ ├── EmployeeList.tsx # 员工列表组件
│ ├── EmployeeModal.tsx # 员工编辑模态框
│ ├── AttendanceTracker.tsx # 考勤跟踪组件
│ ├── PayrollManager.tsx # 工资管理组件
│ ├── Login.tsx # 登录组件
│ └── Sidebar.tsx # 侧边栏组件
├── App.tsx # 主应用组件
├── types.ts # TypeScript类型定义
├── package.json # 前端依赖配置
└── README.md # 项目说明文档
```
## 📚 API文档
系统提供完整的RESTful API接口,详细文档请参考:
- [API接口文档](./aidoc/API文档.md)
- [数据库设计文档](./aidoc/数据库设计.md)
- [系统架构设计文档](./aidoc/系统架构设计.md)
### 主要API端点
- **认证**: `/api/login`, `/api/logout`, `/api/check_auth`
- **员工管理**: `/api/employees`
- **考勤管理**: `/api/attendance`
- **工资管理**: `/api/payroll`
- **统计信息**: `/api/stats`
## 🚀 部署指南
### 开发环境
- 前端: Vite开发服务器 (端口5173)
- 后端: Flask开发服务器 (端口5000)
- 数据库: MySQL本地实例
### 生产环境
- 前端: Nginx静态文件服务
- 后端: Gunicorn WSGI服务器
- 数据库: MySQL生产实例
- 反向代理: Nginx
详细部署说明请参考 [部署指南](./aidoc/部署指南.md)
## 🤝 贡献指南
1. Fork 本仓库
2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 创建 Pull Request
## 📄 许可证
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情
## 📞 联系方式
如有问题或建议,请通过以下方式联系:
- 创建 [Issue](../../issues)
- 发送邮件至项目维护者
---