# Smart Office（智能办公管理系统）

本仓库已根据需求文档完成 v1.0（MVP）完整实现，包含 **后端 Spring Boot** 与 **前端 React**。MVP 聚焦“可运行、可演示、流程闭环”的核心能力。

## 已实现范围（v1.0）
- 认证与权限：JWT + 角色分级（管理员/经理/员工）
- 用户管理：用户新增、查询、状态管理
- 考勤管理：上班/下班打卡、个人考勤记录
- 请假审批：请假申请、审批通过/拒绝
- 通知服务：站内通知（审批结果）

## 目录结构
```
backend/   # Spring Boot 3.2 后端
frontend/  # React 18 + Vite 前端
plans/     # 需求/架构/数据库文档
scripts/   # 数据库初始化脚本（MySQL）
```

## 启动方式

### 后端
```bash
cd backend
mvn spring-boot:run
```
- 默认使用 H2 内存数据库，访问控制台：`http://localhost:8080/h2`
- Swagger: `http://localhost:8080/swagger`

可切换 MySQL：
```bash
mvn spring-boot:run -Dspring-boot.run.profiles=mysql
```

### 前端
```bash
cd frontend
npm install
npm run dev
```
访问：`http://localhost:5173`

如后端运行在非 8080 端口（例如 8081），可在前端设置代理目标：
```bash
# macOS/Linux
VITE_PROXY_TARGET=http://localhost:8081 npm run dev

# Windows PowerShell
$env:VITE_PROXY_TARGET="http://localhost:8081"; npm run dev
```

也可以直接配置 API Base（绕过代理）：
```bash
# macOS/Linux
VITE_API_BASE=http://localhost:8081/api/v1 npm run dev

# Windows PowerShell
$env:VITE_API_BASE="http://localhost:8081/api/v1"; npm run dev
```

## 默认账号
- 管理员：admin / admin123
- 经理：manager / manager123
- 员工：employee / employee123

## 前端外观
- 登录页背景图文件：`frontend/public/login-bg.jpg`（可替换为自定义图片）

## 需求文档
见 `plans/project_requirements_document.md`，已在 v1.0 标注了 MVP 交付边界与后续迭代项。
