54 lines
2.7 KiB
Markdown
54 lines
2.7 KiB
Markdown
# 项目初始化说明(init.md)
|
||
|
||
## 1. 项目背景
|
||
智能语音识别并总结系统。AI 转录能力通过外部接口调用,不在本项目内实现。
|
||
|
||
## 2. 技术栈
|
||
- 后端:Java 17 / Spring Boot 3 / Spring Security / MyBatis-Plus
|
||
- 认证与登录框架:Spring Security + JWT(无状态,适配前后端分离与 RBAC 权限模型)
|
||
- 登录要求:图形验证码
|
||
- Token 规则:按用户与设备区分 Token;建议以设备码换取 Token(设备码与用户绑定)
|
||
- 验证码策略:登录接口必须先校验图形验证码;验证码有效期 2 分钟;同一会话最多尝试 5 次,超限需重新获取;验证码与会话或设备码绑定;验证码错误返回统一提示且不暴露是否命中用户。
|
||
- Token 失效与刷新策略:Access Token 与 Refresh Token 有效期通过系统参数配置;Refresh Token 与用户+设备码绑定且可单设备吊销;每次刷新旋转 Refresh Token,旧 Token 立即失效;登出或设备解绑时立即吊销该设备所有 Token。
|
||
- OAuth2.0 预留:认证与授权模块接口保持可扩展,预留 OAuth2.0 升级路径(Token 结构、授权端点与客户端管理兼容扩展)。
|
||
- 数据库:PostgreSQL 15+(支持向量扩展,建议 `pgvector`)
|
||
- 缓存:Redis(必须)
|
||
- 前端:React 18 / Vite / React Router / Zustand / Ant Design
|
||
- 构建:Maven
|
||
|
||
## 3. 系统模块(一期)
|
||
- 用户管理(User)
|
||
- 权限管理(Role / Permission)
|
||
- 设备管理(Device)
|
||
- 租户管理:当前不启用,保留扩展能力(数据模型与接口预留 `tenant_id`)
|
||
|
||
## 4. 系统架构
|
||
- 后端:管理端与业务端共用同一服务与 API 命名空间(单体),预留后续多租户与服务拆分扩展点
|
||
- 前端:管理端与业务端共用同一应用(单体),预留后续拆分
|
||
- AI 转录:统一抽象为外部 HTTP API(仅调用,不实现)
|
||
|
||
## 5. 数据库说明
|
||
- 以 `design/db_schema.md` 为核心参考
|
||
- 原文档为 MySQL 设计,需映射为 PostgreSQL 类型
|
||
- 多租户采用 `tenant_id` 逻辑隔离,当前仅预留字段与索引
|
||
- 预留向量字段与索引策略,用于后续知识库模块
|
||
|
||
## 6. 基础约定
|
||
- 统一时区:UTC+8
|
||
- 统一时间字段:`created_at`, `updated_at`
|
||
- 软删除:`is_deleted`
|
||
- 状态字段:`status`(1 启用 / 0 禁用)
|
||
|
||
## 7. 目录结构(后端)
|
||
- `backend/` Spring Boot 主服务
|
||
- `backend/src/main/java/...`
|
||
|
||
## 8. 目录结构(前端)
|
||
- `frontend/` 单体应用(管理端与业务端共存,按路由与权限区分)
|
||
|
||
## 9. 迭代范围
|
||
- 仅实现用户、权限、设备基础 CRUD
|
||
- 租户仅预留模型与扩展点,不提供管理功能
|
||
- AI 转录接口仅预留调用层,不包含实现
|
||
- 知识库模块后续再接入
|