You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

5.3 KiB

项目技术栈架构文档

更新时间:2026-01-21
部署方式:Docker Compose


📋 目录


🎨 前端技术栈

核心框架

  • React 19.2.0 - UI 框架
  • TypeScript 5.9.3 - 类型系统
  • Vite 7.2.4 - 构建工具

路由与状态管理

  • React Router DOM 7.6.1 - 客户端路由
  • Zustand 5.0.5 - 轻量级状态管理
  • TanStack Query 5.80.7 - 服务端状态管理与数据缓存

UI 组件库

  • Radix UI - 无样式可访问组件库
    • Dialog, Dropdown, Popover, Tooltip 等 20+ 组件
  • Lucide React 0.562.0 - 图标库
  • Tailwind CSS 4.1.18 - 原子化 CSS 框架
  • Tailwind Animate - 动画工具

表单与验证

  • React Hook Form 7.57.0 - 表单管理
  • Zod 3.25.64 - Schema 验证
  • @hookform/resolvers 5.1.0 - 表单验证集成

拖拽与交互

  • @dnd-kit - 拖拽排序
    • core 6.3.1
    • sortable 10.0.0
    • utilities 3.2.2

文档处理

  • Fountain.js 1.2.4 - 剧本格式解析
  • Mammoth 1.11.0 - Word 文档解析
  • PDF.js 5.4.530 - PDF 渲染
  • Turndown 7.2.2 - HTML 转 Markdown
  • React Markdown 10.1.0 - Markdown 渲染

国际化

  • i18next 25.2.1 - 国际化框架
  • react-i18next 15.5.2 - React 集成
  • i18next-browser-languagedetector - 语言检测
  • i18next-http-backend - 远程翻译加载

工具库

  • Axios 1.10.0 - HTTP 客户端
  • date-fns 4.1.0 - 日期处理
  • clsx + tailwind-merge - 类名合并
  • class-variance-authority - 组件变体管理

虚拟化

  • react-window 2.2.5 - 列表虚拟化
  • react-virtualized-auto-sizer - 自动尺寸计算

⚙️ 后端技术栈

核心框架

  • FastAPI 0.109.0 - 现代异步 Web 框架
  • Uvicorn 0.27.0 - ASGI 服务器(支持 HTTP/2)
  • Python 3.11+ - 编程语言

ORM 与数据库

  • SQLModel 0.0.14 - SQL ORM(基于 Pydantic + SQLAlchemy)
  • Alembic 1.13.1 - 数据库迁移工具
  • asyncpg 0.29.0 - PostgreSQL 异步驱动

缓存

  • Redis 5.0.1 - 内存数据库
  • hiredis 2.3.2 - Redis 高性能 C 解析器

认证与安全

  • python-jose[cryptography] 3.3.0 - JWT 令牌
  • passlib[bcrypt] 1.7.4 - 密码哈希

配置管理

  • pydantic-settings 2.1.0 - 配置管理
  • python-dotenv 1.0.0 - 环境变量加载

工具库

  • loguru 0.7.2 - 日志系统
  • python-dateutil 2.8.2 - 日期处理
  • pytz 2023.3 - 时区处理
  • uuid-utils 0.9.0 - UUID 工具
  • pypinyin 0.51.0 - 中文转拼音

开发工具

  • pytest 7.4.4 - 测试框架
  • pytest-asyncio 0.23.3 - 异步测试支持
  • httpx 0.26.0 - 异步 HTTP 客户端
  • black 24.1.1 - 代码格式化
  • ruff 0.1.14 - 快速 Linter

🐳 基础设施

容器化

  • Docker - 容器运行时
  • Docker Compose - 多容器编排

数据库

  • PostgreSQL 17 Alpine - 主数据库
    • 端口:6181
    • 支持 UUID v7

缓存

  • Redis 7 Alpine - 缓存与会话存储
    • 端口:6183

对象存储

  • S3 兼容存储 - 使用 boto3 SDK
    • 生产环境:阿里云 OSS
    • 开发环境:可选 AWS S3、MinIO 等
    • 支持所有 S3 兼容存储服务

网络

  • jointo-network - Docker Bridge 网络
  • CORS 配置 - 支持跨域请求

🛠️ 开发工具

前端开发

  • ESLint 9.39.2 - 代码检查
  • Prettier 3.7.4 - 代码格式化
  • Husky 9.1.7 - Git Hooks
  • lint-staged 16.2.7 - 暂存文件检查

后端开发

  • Black - Python 代码格式化
  • Ruff - Python Linter
  • pytest - 单元测试

构建与部署

  • Vite - 前端构建(开发端口:6160)
  • Uvicorn - 后端服务(端口:6170)
  • Docker Multi-stage Build - 生产环境构建

📊 端口分配

服务 端口 说明
前端开发服务 6160 Vite Dev Server
后端 API 6170 FastAPI Application
PostgreSQL 6181 数据库
Redis 6183 缓存
Adminer 6184 数据库管理工具

🔄 数据流架构

┌─────────────┐
│   Browser   │
│  (React)    │
└──────┬──────┘
       │ HTTP/REST
       ↓
┌─────────────┐      ┌──────────┐
│  FastAPI    │─────→│  Redis   │
│  (Uvicorn)  │      │  (Cache) │
└──────┬──────┘      └──────────┘
       │
       ↓
┌─────────────┐      ┌──────────────┐
│ PostgreSQL  │      │ S3 Storage   │
│  (Primary)  │      │ (OSS/S3/etc) │
└─────────────┘      └──────────────┘

📝 备注

  • 所有服务通过 Docker Compose 统一管理
  • 前端使用 Vite 进行开发和构建
  • 后端采用异步架构(asyncpg + FastAPI)
  • 数据库使用 PostgreSQL 17 最新特性
  • 对象存储使用 boto3 SDK,支持所有 S3 兼容存储(阿里云 OSS、AWS S3 等)