mars 1ba859196a 修复退出登录重定向问题和相关功能优化
- 修复DashboardLayout中的退出登录函数,确保清除所有认证信息
- 恢复_app.tsx中的认证逻辑,确保仪表盘页面需要登录访问
- 完善退出登录流程:清除本地存储 -> 调用登出API -> 重定向到登录页面
- 添加错误边界组件提升用户体验
- 优化React水合错误处理
- 添加JWT令牌验证API
- 完善各个仪表盘页面的功能和样式
2025-07-03 20:56:17 +08:00
2025-06-29 16:13:34 +08:00

口译服务管理后台

一个基于 Next.js 和 TypeScript 构建的现代化口译服务管理后台系统,集成 Supabase 数据库和完整的身份验证功能。

功能特性

🏢 企业服务管理

  • 企业合同管理:管理企业合同信息和服务费率配置
  • 企业员工管理:管理企业员工信息和通话记录
  • 企业账单管理:企业结算记录和账单管理
  • 个性化费率配置:为不同企业设置专属服务费率

📋 订单管理

  • 多种服务类型
    • AI语音翻译
    • AI视频翻译
    • 手语翻译
    • 人工口译
    • 文档翻译
  • 订单状态跟踪:待处理、处理中、已完成、已取消、失败
  • 优先级管理:紧急、高、普通、低
  • 详细信息展示:包括译员信息、时间安排、费用等
  • 实时数据同步:基于 Supabase 实时订阅

📄 文档管理

  • 文档上传管理:支持多种文档格式
  • 翻译进度跟踪:实时显示翻译状态和进度
  • 文档下载功能:支持原文档和翻译结果下载

🧾 发票管理

  • 发票生成:支持个人和企业发票
  • 发票下载PDF格式发票下载
  • 发票打印:直接打印功能
  • 发票状态管理:草稿、已开具、已付款、已取消

👥 用户管理

  • 多角色用户系统:个人用户、企业用户、管理员
  • 用户认证:基于 Supabase Auth 的安全认证
  • 权限控制:行级安全策略保护数据
  • 用户状态跟踪:活跃状态、登录记录

🎯 译员管理

  • 译员信息管理:译员资料、专业领域
  • 译员状态监控:在线、离线、忙碌状态
  • 语言能力管理:支持的语言对
  • 评价系统:译员评分和反馈

📞 通话管理

  • 实时通话监控:当前活跃通话
  • 通话记录管理:历史通话记录
  • 通话质量统计:通话时长、费用统计
  • 质量评估:通话质量评分

⚙️ 系统设置

  • 服务费率配置:为每种服务设置独立费率
  • 系统参数配置:通话设置、通知设置
  • 安全设置:双因素认证、会话超时
  • API配置:第三方服务集成

技术栈

前端技术

  • 前端框架Next.js 14
  • 类型系统TypeScript
  • 样式框架Tailwind CSS
  • 图标库Heroicons
  • 状态管理React Hooks

后端技术

  • 数据库Supabase (PostgreSQL)
  • 身份验证Supabase Auth
  • APINext.js API Routes
  • 实时功能Supabase Realtime

第三方集成

  • 支付处理Stripe
  • 通信服务Twilio
  • AI服务OpenAI
  • 部署平台Vercel

安装和运行

环境要求

  • Node.js 18.0 或更高版本
  • npm 或 yarn
  • Supabase 项目(用于数据库和认证)

1. 安装依赖

npm install
# 或
yarn install

2. 环境配置

复制 .env.example.env.local 并配置必要的环境变量:

cp .env.example .env.local

配置 Supabase 和其他服务:

# Supabase 配置
NEXT_PUBLIC_SUPABASE_URL=https://your-project-id.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key

# 其他服务配置
STRIPE_SECRET_KEY=sk_test_...
TWILIO_ACCOUNT_SID=AC...
OPENAI_API_KEY=sk-...

3. 数据库设置

在 Supabase Dashboard 中执行数据库脚本:

  1. 登录 Supabase Dashboard
  2. 进入 SQL Editor
  3. 复制 database/schema.sql 内容并执行
  4. 创建管理员账户(可选)

4. 开发模式运行

npm run dev
# 或
yarn dev

访问 http://localhost:3000 查看应用。

5. 构建生产版本

npm run build
# 或
yarn build

6. 启动生产服务器

npm start
# 或
yarn start

项目结构

├── components/          # 可复用组件
├── lib/                # 工具库和配置
│   ├── demo-data.ts    # 演示数据
│   ├── supabase.ts     # Supabase 配置和操作
│   └── utils.ts        # 工具函数
├── pages/              # 页面组件
│   ├── api/            # API 路由
│   │   ├── auth/       # 认证 API
│   │   ├── orders/     # 订单 API
│   │   ├── users/      # 用户 API
│   │   └── ...         # 其他 API
│   ├── auth/           # 认证页面
│   └── dashboard/      # 管理后台页面
├── database/           # 数据库相关文件
│   ├── schema.sql      # 数据库结构
│   └── README.md       # 数据库说明
├── types/              # TypeScript 类型定义
│   ├── database.ts     # 数据库类型
│   └── auth.ts         # 认证类型
├── public/             # 静态资源
├── styles/             # 样式文件
└── utils/              # 工具函数

API 接口

认证接口

  • POST /api/auth/register - 用户注册
  • POST /api/auth/login - 用户登录
  • POST /api/auth/logout - 用户登出
  • GET /api/auth/me - 获取当前用户信息

订单接口

  • GET /api/orders - 获取订单列表
  • POST /api/orders - 创建新订单
  • PUT /api/orders/:id - 更新订单
  • DELETE /api/orders/:id - 删除订单

用户接口

  • GET /api/users - 获取用户列表
  • POST /api/users - 创建用户
  • PUT /api/users/:id - 更新用户信息
  • DELETE /api/users/:id - 删除用户

数据库架构

核心表结构

  • users - 用户表(支持个人/企业/管理员)
  • enterprises - 企业表
  • orders - 订单表
  • invoices - 发票表
  • interpreters - 译员表
  • calls - 通话记录表
  • documents - 文档翻译表

安全策略

  • 启用行级安全 (RLS)
  • 基于用户角色的权限控制
  • 数据访问审计日志

详细说明请参考 database/README.md

核心功能说明

身份验证系统

  • 多角色支持:个人用户、企业用户、管理员
  • 安全认证:基于 JWT 令牌的会话管理
  • 权限控制:细粒度的权限管理
  • 会话管理:自动刷新和过期处理

费率优先级机制

系统采用三级费率优先级:

  1. 企业合同费率:优先级最高,适用于企业员工
  2. 系统通用费率:适用于个人用户和无合同企业
  3. 默认费率:系统兜底费率

实时功能

  • 订单状态更新:实时同步订单状态变化
  • 通话监控:实时监控活跃通话
  • 消息通知:即时消息推送

演示模式

项目支持演示模式,无需配置数据库即可体验完整功能:

  • 自动检测 Supabase 配置
  • 使用内置演示数据
  • 支持所有功能的模拟操作

响应式设计

  • 完全响应式界面设计
  • 支持移动端和桌面端
  • 优化的用户体验

部署

Vercel 部署(推荐)

  1. 将项目推送到 GitHub
  2. 在 Vercel 中导入项目
  3. 配置环境变量
  4. 部署完成

详细部署指南请参考 DEPLOYMENT.md

其他平台部署

项目支持部署到任何支持 Next.js 的平台,如:

  • Netlify
  • Railway
  • Heroku
  • 自托管服务器

环境变量

必需配置

# Supabase 配置
NEXT_PUBLIC_SUPABASE_URL=https://your-project-id.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key

# 应用配置
NEXTAUTH_SECRET=your-nextauth-secret
JWT_SECRET=your-jwt-secret

可选配置

# Stripe 支付
STRIPE_SECRET_KEY=sk_test_...
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_...

# Twilio 通信
TWILIO_ACCOUNT_SID=AC...
TWILIO_API_KEY_SID=SK...
TWILIO_API_KEY_SECRET=...

# OpenAI 服务
OPENAI_API_KEY=sk-...

贡献指南

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

开发规范

  • 使用 TypeScript 进行类型安全开发
  • 遵循 ESLint 和 Prettier 代码规范
  • 编写单元测试
  • 更新相关文档

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

文档和支持

相关文档

联系方式

更新日志

v1.1.0 (2024-01-30)

  • 集成 Supabase 数据库和身份验证
  • 实现完整的 API 接口
  • 添加用户认证和权限控制
  • 优化数据库结构和安全策略
  • 完善部署文档和指南

v1.0.0 (2024-01-30)

  • 完成企业服务管理功能
  • 完成订单管理功能
  • 完成发票管理功能
  • 完成文档管理功能
  • 完成用户和译员管理功能
  • 完成系统设置功能
  • 完成演示模式
  • 完成响应式设计
Description
Twilioapp-admin
Readme 415 KiB
Languages
TypeScript 92.9%
CSS 2.8%
PLpgSQL 2.4%
JavaScript 1.9%