WuYongJie faff54449b feat: 完成 Phase 2 - 认证系统实现
- 系统初始化:创建默认超级管理员
- 密码管理:bcrypt 加密、强度验证
- JWT Token:生成、验证、解析
- 认证中间件:API 路由保护
- 注册 API:邮箱/姓名唯一性验证
- 登录 API:支持邮箱或姓名登录、智能提示
- 首次登录强制修改 API
- 登录页面:Apple HIG 2025 风格
- 首次登录修改页面:实时密码强度验证
- 环境变量:JWT 配置

默认超级管理员:
- 邮箱: admin@system.local
- 姓名: SuperAdmin
- 密码: Admin@123456
- 首次登录后强制修改
2025-12-12 21:51:56 +08:00
2025-12-11 16:42:59 +08:00
2025-12-11 16:42:59 +08:00

3D家具安装展示系统

现代化的3D家具装配过程展示系统,支持交互式动画和分享功能。

🚀 功能特性

  • 3D模型查看器: 支持旋转、缩放、平移的交互式3D家具模型
  • 装配动画: 分步骤展示装配过程,配备流畅的GSAP动画
  • 分享链接: 为客户生成可分享的装配说明链接
  • 移动端适配: 完美支持桌面端和移动端设备
  • 本地缓存优化: 优先使用本地资源,提升构建速度

🛠️ 技术栈

  • 前端: Next.js 14, React 18, TypeScript
  • 3D图形: Three.js, React Three Fiber
  • 动画: GSAP (GreenSock)
  • 数据库: PostgreSQL + Prisma ORM
  • 存储: MinIO (S3兼容)
  • 样式: Tailwind CSS
  • 部署: Docker & Docker Compose

⚡ 快速开始

开发环境

环境要求

  • Node.js 18+
  • Docker & Docker Compose
  • Git

一键启动

# 克隆项目
git clone http://git.1080p.hk/WuYongJie/furniture-3d-system-Wu.git
cd furniture-3d-system-Wu

# 启动系统(自动设置缓存)
.\quick-start.ps1

# 创建演示数据
npm run demo:setup

# 访问应用
# http://localhost:3000
# 演示分享页面: http://localhost:3000/share/demo123

手动启动

# 1. 安装依赖
npm install

# 2. 配置环境变量
cp .env.example .env

# 3. 启动服务
docker-compose up -d

# 4. 访问应用
# 主应用: http://localhost:3000
# MinIO控制台: http://localhost:9001 (minioadmin/minioadmin)

📁 项目结构

src/
├── app/                    # Next.js App Router
│   ├── (public)/          # 公开路由 (分享页面)
│   ├── api/               # API路由
│   └── globals.css        # 全局样式
├── components/            # React组件
│   ├── 3d/               # 3D相关组件
│   ├── assembly/         # 装配动画组件
│   └── ui/               # UI组件
├── lib/                  # 工具库
│   ├── 3d/              # 3D引擎和工具
│   └── utils.ts         # 通用工具
└── types/               # TypeScript类型定义

企业部署

硬件要求

最低配置 (轻量级模式):

  • CPU: Intel N100 或同等性能
  • 内存: 4GB
  • 磁盘: 50GB 可用空间

推荐配置 (标准模式):

  • CPU: Intel i3 或同等性能
  • 内存: 8GB+
  • 磁盘: 100GB+ 可用空间

本地部署

Linux / NAS (群晖/威联通):

# 运行自动部署脚本
chmod +x scripts/deploy.sh
./scripts/deploy.sh

Windows:

# 以管理员身份运行
PowerShell -ExecutionPolicy Bypass -File scripts\deploy.ps1

远程部署

从管理机远程部署到目标设备:

# 基本用法
./scripts/remote-deploy.sh 192.168.1.100 admin

# 使用 SSH 密钥
./scripts/remote-deploy.sh 192.168.1.100 admin -k ~/.ssh/id_rsa

# 指定部署模式
./scripts/remote-deploy.sh 192.168.1.100 admin --mode lightweight

批量部署

# 1. 创建配置文件
cp scripts/deploy.conf.example deploy.conf

# 2. 编辑配置,设置多个目标设备
nano deploy.conf

# 3. 运行批量部署
./scripts/remote-deploy.sh --config deploy.conf

📖 详细文档:

🔧 开发命令

# 开发服务器
npm run dev

# 数据库管理
npm run prisma:studio
npm run prisma:generate
npm run prisma:push

# 演示数据
npm run demo:create        # 创建演示数据
npm run demo:setup         # 推送数据库结构并创建演示数据

# 构建部署
npm run build
npm start

# Docker部署
.\quick-start.ps1 prod

📡 主要API

  • GET /api/health - 健康检查
  • GET /api/products - 获取产品列表
  • POST /api/products - 创建产品
  • POST /api/share - 创建分享链接
  • GET /api/share/[token] - 获取分享的产品

🎯 使用流程

  1. 上传3D模型: 支持glTF格式的家具模型
  2. 设置装配步骤: 定义每个装配步骤的动画和说明
  3. 生成分享链接: 为客户创建可访问的装配指导页面
  4. 客户查看: 通过分享链接查看3D装配过程

🔧 本地缓存系统

项目支持本地缓存,大幅提升构建速度:

# 设置缓存(从flnxi_sucai项目复制资源)
.\scripts\cache-manager.ps1 -Action setup

# 加载Docker镜像
.\scripts\cache-manager.ps1 -Action load-images

# 清理缓存
.\scripts\cache-manager.ps1 -Action clean

⚙️ 环境变量

# 数据库
DATABASE_URL="postgresql://furniture_user:furniture_pass_2024@localhost:5432/furniture_3d"

# MinIO存储
S3_ENDPOINT="http://localhost:9000"
S3_BUCKET="furniture-3d-models"
S3_ACCESS_KEY="minioadmin"
S3_SECRET_KEY="minioadmin"

# 应用配置
NEXTAUTH_SECRET="your-secret-key"
NEXTAUTH_URL="http://localhost:3000"

🛠️ 故障排除

# 查看服务状态
.\quick-start.ps1 status

# 查看日志
.\quick-start.ps1 logs

# 重启服务
.\quick-start.ps1 restart

# 停止服务
.\quick-start.ps1 stop

📝 许可证

本项目采用 MIT 许可证。

🤝 技术支持

如需技术支持,请在项目仓库中提交Issue或联系开发团队。

Description
3D家具展示系统
Readme 391 MiB
Languages
TypeScript 91.1%
JavaScript 5.1%
C# 1%
PowerShell 0.7%
CSS 0.6%
Other 1.4%