Twilioapp-admin/README.md

334 lines
9.0 KiB
Markdown
Raw Permalink Normal View History

2025-06-29 16:13:34 +08:00
# 口译服务管理后台
一个基于 Next.js 和 TypeScript 构建的现代化口译服务管理后台系统,集成 Supabase 数据库和完整的身份验证功能。
2025-06-29 16:13:34 +08:00
## 功能特性
### 🏢 企业服务管理
- **企业合同管理**:管理企业合同信息和服务费率配置
- **企业员工管理**:管理企业员工信息和通话记录
- **企业账单管理**:企业结算记录和账单管理
- **个性化费率配置**:为不同企业设置专属服务费率
### 📋 订单管理
- **多种服务类型**
- AI语音翻译
- AI视频翻译
- 手语翻译
- 人工口译
- 文档翻译
- **订单状态跟踪**:待处理、处理中、已完成、已取消、失败
- **优先级管理**:紧急、高、普通、低
- **详细信息展示**:包括译员信息、时间安排、费用等
- **实时数据同步**:基于 Supabase 实时订阅
2025-06-29 16:13:34 +08:00
### 📄 文档管理
- **文档上传管理**:支持多种文档格式
- **翻译进度跟踪**:实时显示翻译状态和进度
- **文档下载功能**:支持原文档和翻译结果下载
### 🧾 发票管理
- **发票生成**:支持个人和企业发票
- **发票下载**PDF格式发票下载
- **发票打印**:直接打印功能
- **发票状态管理**:草稿、已开具、已付款、已取消
### 👥 用户管理
- **多角色用户系统**:个人用户、企业用户、管理员
- **用户认证**:基于 Supabase Auth 的安全认证
- **权限控制**:行级安全策略保护数据
2025-06-29 16:13:34 +08:00
- **用户状态跟踪**:活跃状态、登录记录
### 🎯 译员管理
- **译员信息管理**:译员资料、专业领域
- **译员状态监控**:在线、离线、忙碌状态
- **语言能力管理**:支持的语言对
- **评价系统**:译员评分和反馈
2025-06-29 16:13:34 +08:00
### 📞 通话管理
- **实时通话监控**:当前活跃通话
- **通话记录管理**:历史通话记录
- **通话质量统计**:通话时长、费用统计
- **质量评估**:通话质量评分
2025-06-29 16:13:34 +08:00
### ⚙️ 系统设置
- **服务费率配置**:为每种服务设置独立费率
- **系统参数配置**:通话设置、通知设置
- **安全设置**:双因素认证、会话超时
- **API配置**:第三方服务集成
## 技术栈
### 前端技术
2025-06-29 16:13:34 +08:00
- **前端框架**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
2025-06-29 16:13:34 +08:00
## 安装和运行
### 环境要求
- Node.js 18.0 或更高版本
- npm 或 yarn
- Supabase 项目(用于数据库和认证)
2025-06-29 16:13:34 +08:00
### 1. 安装依赖
2025-06-29 16:13:34 +08:00
```bash
npm install
# 或
yarn install
```
### 2. 环境配置
2025-06-29 16:13:34 +08:00
复制 `.env.example``.env.local` 并配置必要的环境变量:
```bash
cp .env.example .env.local
```
配置 Supabase 和其他服务:
```env
# 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](https://supabase.com/dashboard)
2. 进入 SQL Editor
3. 复制 `database/schema.sql` 内容并执行
4. 创建管理员账户(可选)
### 4. 开发模式运行
2025-06-29 16:13:34 +08:00
```bash
npm run dev
# 或
yarn dev
```
访问 [http://localhost:3000](http://localhost:3000) 查看应用。
### 5. 构建生产版本
2025-06-29 16:13:34 +08:00
```bash
npm run build
# 或
yarn build
```
### 6. 启动生产服务器
2025-06-29 16:13:34 +08:00
```bash
npm start
# 或
yarn start
```
## 项目结构
```
├── components/ # 可复用组件
├── lib/ # 工具库和配置
│ ├── demo-data.ts # 演示数据
│ ├── supabase.ts # Supabase 配置和操作
2025-06-29 16:13:34 +08:00
│ └── utils.ts # 工具函数
├── pages/ # 页面组件
│ ├── api/ # API 路由
│ │ ├── auth/ # 认证 API
│ │ ├── orders/ # 订单 API
│ │ ├── users/ # 用户 API
│ │ └── ... # 其他 API
2025-06-29 16:13:34 +08:00
│ ├── auth/ # 认证页面
│ └── dashboard/ # 管理后台页面
├── database/ # 数据库相关文件
│ ├── schema.sql # 数据库结构
│ └── README.md # 数据库说明
├── types/ # TypeScript 类型定义
│ ├── database.ts # 数据库类型
│ └── auth.ts # 认证类型
2025-06-29 16:13:34 +08:00
├── 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](./database/README.md)
2025-06-29 16:13:34 +08:00
## 核心功能说明
### 身份验证系统
- **多角色支持**:个人用户、企业用户、管理员
- **安全认证**:基于 JWT 令牌的会话管理
- **权限控制**:细粒度的权限管理
- **会话管理**:自动刷新和过期处理
2025-06-29 16:13:34 +08:00
### 费率优先级机制
系统采用三级费率优先级:
1. **企业合同费率**:优先级最高,适用于企业员工
2. **系统通用费率**:适用于个人用户和无合同企业
3. **默认费率**:系统兜底费率
### 实时功能
- **订单状态更新**:实时同步订单状态变化
- **通话监控**:实时监控活跃通话
- **消息通知**:即时消息推送
2025-06-29 16:13:34 +08:00
### 演示模式
项目支持演示模式,无需配置数据库即可体验完整功能:
- 自动检测 Supabase 配置
- 使用内置演示数据
- 支持所有功能的模拟操作
### 响应式设计
- 完全响应式界面设计
- 支持移动端和桌面端
- 优化的用户体验
## 部署
### Vercel 部署(推荐)
1. 将项目推送到 GitHub
2. 在 Vercel 中导入项目
3. 配置环境变量
4. 部署完成
详细部署指南请参考 [DEPLOYMENT.md](./DEPLOYMENT.md)
2025-06-29 16:13:34 +08:00
### 其他平台部署
项目支持部署到任何支持 Next.js 的平台,如:
- Netlify
- Railway
- Heroku
- 自托管服务器
## 环境变量
### 必需配置
```bash
# 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
```
### 可选配置
2025-06-29 16:13:34 +08:00
```bash
# 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-...
2025-06-29 16:13:34 +08:00
```
## 贡献指南
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 代码规范
- 编写单元测试
- 更新相关文档
2025-06-29 16:13:34 +08:00
## 许可证
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。
## 文档和支持
### 相关文档
- [部署指南](./DEPLOYMENT.md)
- [数据库说明](./database/README.md)
- [API 参考](./docs/api-reference.md)
2025-06-29 16:13:34 +08:00
### 联系方式
2025-06-29 16:13:34 +08:00
- 项目地址:[http://git.wanzhongtech.com/mars/Twilioapp-admin](http://git.wanzhongtech.com/mars/Twilioapp-admin)
- 问题反馈:请在 GitLab Issues 中提交
## 更新日志
### v1.1.0 (2024-01-30)
- ✅ 集成 Supabase 数据库和身份验证
- ✅ 实现完整的 API 接口
- ✅ 添加用户认证和权限控制
- ✅ 优化数据库结构和安全策略
- ✅ 完善部署文档和指南
2025-06-29 16:13:34 +08:00
### v1.0.0 (2024-01-30)
- ✅ 完成企业服务管理功能
- ✅ 完成订单管理功能
- ✅ 完成发票管理功能
- ✅ 完成文档管理功能
- ✅ 完成用户和译员管理功能
- ✅ 完成系统设置功能
- ✅ 完成演示模式
- ✅ 完成响应式设计