imeeting/init.md

54 lines
2.7 KiB
Markdown
Raw Permalink Normal View History

# 项目初始化说明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 转录接口仅预留调用层,不包含实现
- 知识库模块后续再接入