开发环境
环境要求
- Node.js >= 18
- pnpm >= 9
- Python >= 3.11(仅后端模式需要)
前端开发
安装依赖
bash
cd smart-table
pnpm install开发模式
bash
pnpm run dev访问 http://localhost:3000
Vite 开发服务器已在
vite.config.ts中配置代理:/api与/uploads请求会自动转发到http://localhost:5000,因此前端开发时需要同时启动后端服务(见下文)。
构建生产版本
bash
pnpm run build预览生产版本
bash
pnpm run preview运行测试
bash
# 运行所有测试
pnpm run test
# 监听模式运行测试(开发时使用)
pnpm run test:watch
# 生成测试覆盖率报告
pnpm run test:coverage后端服务
使用 Docker Compose
方式一:统一镜像(SQLite,推荐快速体验与前端开发)——在项目根目录执行,单个容器包含前端、后端与内嵌 Redis:
bash
# 在项目根目录(smart_table)
cp .env.example .env
# 构建并启动
docker compose up -d
# 访问 http://localhost方式二:后端独立编排(PostgreSQL + Redis)——在 smarttable-backend 目录执行:
bash
cd smarttable-backend
# 复制环境变量配置文件
cp .env.example .env
# 编辑 .env,配置 PostgreSQL 连接(DATABASE_URL)
# 启动 PostgreSQL + Redis + 后端
docker compose up -d
# 执行数据库迁移
docker compose exec backend python run.py migrate
# 查看日志
docker compose logs -f backend
# 访问 API 文档(Swagger UI)
# http://localhost:5000/apidocs本地开发
bash
cd smarttable-backend
# 创建虚拟环境
python -m venv venv
# 激活虚拟环境
# Windows:
venv\Scripts\activate
# Linux/macOS:
source venv/bin/activate
# 安装依赖
pip install -r requirements.txt
# 复制环境变量配置文件
# 也可复制为 config/.env(run.py 会优先加载 config/.env,其次加载 .env)
cp .env.example .env
# 默认使用 SQLite,无需修改 DATABASE_URL
# 初始化/迁移数据库
python run.py migrate
# 启动开发服务器(默认不启用实时协作,FLASK_DEBUG=True 时支持热重载)
python run.py
# 启用实时协作功能
python run.py --enable-realtime或者通过修改 .env 的
ENABLE_REALTIME=True来配置协同编辑功能
后端特性
✅ 默认数据库: SQLite(轻量级,无需额外安装)
✅ 可选数据库: PostgreSQL(通过环境变量 DATABASE_URL 配置)
✅ 认证系统: JWT Token 认证,支持刷新 Token、邮箱验证
✅ 权限管理: 基于角色的权限控制(RBAC)
✅ 数据迁移: Alembic 数据库迁移工具
✅ API 文档: 完整的 Swagger/OpenAPI 文档(Flasgger)
✅ 实时协作: 可选的 WebSocket 实时协作功能(通过 --enable-realtime 启用)
✅ 邮件系统: 可选的 SMTP 邮件发送功能(SMTP 配置在管理后台「系统设置」中维护)
✅ 对象存储: MinIO 文件存储(规划中,尚未实现,当前使用本地文件系统)
✅ 安全防护: XSS 防护、速率限制、安全响应头
