imeeting/init.md

54 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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