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