imeeting/init.md

2.7 KiB
Raw Permalink Blame 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
  • 状态字段:status1 启用 / 0 禁用)

7. 目录结构(后端)

  • backend/ Spring Boot 主服务
  • backend/src/main/java/...

8. 目录结构(前端)

  • frontend/ 单体应用(管理端与业务端共存,按路由与权限区分)

9. 迭代范围

  • 仅实现用户、权限、设备基础 CRUD
  • 租户仅预留模型与扩展点,不提供管理功能
  • AI 转录接口仅预留调用层,不包含实现
  • 知识库模块后续再接入