项目结构 & API 设计

单仓库 Monorepo:Spring Boot 3.x 后端 + Vue 3 前端,一个 jar 部署

目录结构

okr-performance/ ├── backend/ # Spring Boot 3.x + MyBatis-Plus │ ├── pom.xml │ └── src/main/java/com/yimeng/okr/ │ ├── OkrApplication.java │ ├── config/ # Security, CORS, MyBatis-Plus 配置 │ ├── security/ # JWT Filter, Token Provider │ ├── controller/ # REST API 层 │ ├── service/ # 业务逻辑 │ ├── mapper/ # MyBatis-Plus Mapper │ ├── entity/ # 数据库实体 │ ├── dto/ # 请求/响应 DTO │ ├── enums/ # 枚举(周期状态、KR状态、评级等) │ ├── exception/ # 全局异常处理 │ └── schedule/ # 定时任务(周期自动切换、数据库备份) ├── frontend/ # Vue 3 + Vite + Element Plus │ ├── package.json │ └── src/ │ ├── main.js │ ├── App.vue │ ├── router/ # Vue Router 路由 │ ├── stores/ # Pinia 状态管理 │ ├── api/ # Axios 封装 + API 模块 │ ├── views/ # 页面组件 │ │ ├── dashboard/ # 工作台首页 │ │ ├── period/ # 考核周期管理 │ │ ├── okr/ # OKR 制定 & 进度 │ │ ├── scoring/ # 绩效打分(同屏页) │ │ ├── feedback/ # 绩效反馈(同屏页) │ │ ├── org/ # 组织架构 │ │ ├── system/ # 系统管理(日志等) │ │ └── auth/ # 登录/注册 │ ├── components/ # 通用组件 │ ├── composables/ # 组合函数 │ └── assets/ # 静态资源(含 logo) ├── data/ # SQLite 数据库文件存放目录 │ └── .gitkeep ├── scripts/ │ └── start.sh # 一键启动脚本:mvn clean package && java -jar └── README.md

REST API 模块划分(共约 45 个端点)

Auth | /api/auth
POST /login, /register, /logout
GET /me, PUT /password
组织架构 | /api/org
GET/POST/PUT/DELETE /departments
PUT /departments/{id}/members
PUT /users/{id}/superior
考核周期 | /api/periods
CRUD /periods
PUT /periods/{id}/status (状态推进)
GET /periods/{id}/progress
OKR | /api/okr
CRUD objectives & key results
POST /objectives/{id}/submit (提交审核)
PUT /objectives/{id}/review (上级审核)
PUT /krs/{id}/progress (进度更新)
KPI | /api/kpi
GET/POST/PUT /templates
GET/POST/PUT /configs (个人KPI配置)
绩效打分 | /api/scores
POST /scores/self (员工自评)
POST /scores/superior (上级终审)
GET /scores/my (查看结果 + OKR联动)
绩效反馈 | /api/feedback
POST /feedback/interview (面谈记录)
POST /feedback/reply (员工反馈)
GET /feedback/{id}
系统 | /api/system
GET /logs (操作日志)
POST /backup, POST /restore
GET /corrections

关键技术栈确认

层级选型版本
运行时JDK17 LTS
框架Spring Boot + MyBatis-Plus3.2.x
数据库SQLite (WAL 模式)-
认证Spring Security + JWT6.x
前端框架Vue 3 + Composition API3.4+
UI 库Element Plus2.6+
构建工具Vite + Maven-
状态管理Pinia2.x

一键启动流程

git clone <repo> && cd okr-performance && ./start.sh

start.sh 内部执行:
1. cd frontend && npm install && npm run build → 输出到 backend/src/main/resources/static/
2. cd backend && mvn clean package -DskipTests → 生成 app.jar
3. java -jar backend/target/app.jar → 前端 + 后端 + SQLite 全部就绪
4. 浏览器打开 http://localhost:8080 即用

部署物

开发模式