- 修复DashboardLayout中的退出登录函数,确保清除所有认证信息 - 恢复_app.tsx中的认证逻辑,确保仪表盘页面需要登录访问 - 完善退出登录流程:清除本地存储 -> 调用登出API -> 重定向到登录页面 - 添加错误边界组件提升用户体验 - 优化React水合错误处理 - 添加JWT令牌验证API - 完善各个仪表盘页面的功能和样式
口译服务管理后台
一个基于 Next.js 和 TypeScript 构建的现代化口译服务管理后台系统,集成 Supabase 数据库和完整的身份验证功能。
功能特性
🏢 企业服务管理
- 企业合同管理:管理企业合同信息和服务费率配置
- 企业员工管理:管理企业员工信息和通话记录
- 企业账单管理:企业结算记录和账单管理
- 个性化费率配置:为不同企业设置专属服务费率
📋 订单管理
- 多种服务类型:
- AI语音翻译
- AI视频翻译
- 手语翻译
- 人工口译
- 文档翻译
- 订单状态跟踪:待处理、处理中、已完成、已取消、失败
- 优先级管理:紧急、高、普通、低
- 详细信息展示:包括译员信息、时间安排、费用等
- 实时数据同步:基于 Supabase 实时订阅
📄 文档管理
- 文档上传管理:支持多种文档格式
- 翻译进度跟踪:实时显示翻译状态和进度
- 文档下载功能:支持原文档和翻译结果下载
🧾 发票管理
- 发票生成:支持个人和企业发票
- 发票下载:PDF格式发票下载
- 发票打印:直接打印功能
- 发票状态管理:草稿、已开具、已付款、已取消
👥 用户管理
- 多角色用户系统:个人用户、企业用户、管理员
- 用户认证:基于 Supabase Auth 的安全认证
- 权限控制:行级安全策略保护数据
- 用户状态跟踪:活跃状态、登录记录
🎯 译员管理
- 译员信息管理:译员资料、专业领域
- 译员状态监控:在线、离线、忙碌状态
- 语言能力管理:支持的语言对
- 评价系统:译员评分和反馈
📞 通话管理
- 实时通话监控:当前活跃通话
- 通话记录管理:历史通话记录
- 通话质量统计:通话时长、费用统计
- 质量评估:通话质量评分
⚙️ 系统设置
- 服务费率配置:为每种服务设置独立费率
- 系统参数配置:通话设置、通知设置
- 安全设置:双因素认证、会话超时
- API配置:第三方服务集成
技术栈
前端技术
- 前端框架:Next.js 14
- 类型系统:TypeScript
- 样式框架:Tailwind CSS
- 图标库:Heroicons
- 状态管理:React Hooks
后端技术
- 数据库:Supabase (PostgreSQL)
- 身份验证:Supabase Auth
- API:Next.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 中执行数据库脚本:
- 登录 Supabase Dashboard
- 进入 SQL Editor
- 复制
database/schema.sql
内容并执行 - 创建管理员账户(可选)
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 令牌的会话管理
- 权限控制:细粒度的权限管理
- 会话管理:自动刷新和过期处理
费率优先级机制
系统采用三级费率优先级:
- 企业合同费率:优先级最高,适用于企业员工
- 系统通用费率:适用于个人用户和无合同企业
- 默认费率:系统兜底费率
实时功能
- 订单状态更新:实时同步订单状态变化
- 通话监控:实时监控活跃通话
- 消息通知:即时消息推送
演示模式
项目支持演示模式,无需配置数据库即可体验完整功能:
- 自动检测 Supabase 配置
- 使用内置演示数据
- 支持所有功能的模拟操作
响应式设计
- 完全响应式界面设计
- 支持移动端和桌面端
- 优化的用户体验
部署
Vercel 部署(推荐)
- 将项目推送到 GitHub
- 在 Vercel 中导入项目
- 配置环境变量
- 部署完成
详细部署指南请参考 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-...
贡献指南
- Fork 项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature
) - 提交更改 (
git commit -m 'Add some AmazingFeature'
) - 推送到分支 (
git push origin feature/AmazingFeature
) - 创建 Pull Request
开发规范
- 使用 TypeScript 进行类型安全开发
- 遵循 ESLint 和 Prettier 代码规范
- 编写单元测试
- 更新相关文档
许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
文档和支持
相关文档
联系方式
- 项目地址:http://git.wanzhongtech.com/mars/Twilioapp-admin
- 问题反馈:请在 GitLab Issues 中提交
更新日志
v1.1.0 (2024-01-30)
- ✅ 集成 Supabase 数据库和身份验证
- ✅ 实现完整的 API 接口
- ✅ 添加用户认证和权限控制
- ✅ 优化数据库结构和安全策略
- ✅ 完善部署文档和指南
v1.0.0 (2024-01-30)
- ✅ 完成企业服务管理功能
- ✅ 完成订单管理功能
- ✅ 完成发票管理功能
- ✅ 完成文档管理功能
- ✅ 完成用户和译员管理功能
- ✅ 完成系统设置功能
- ✅ 完成演示模式
- ✅ 完成响应式设计
Description
Languages
TypeScript
92.9%
CSS
2.8%
PLpgSQL
2.4%
JavaScript
1.9%