Files
nofx/web
0xYYBB | ZYY | Bobo d353cc2125 improve(web): improve UX messages for empty states and error feedback (#918)
## Problem

User-facing messages were too generic and uninformative:

1. **Dashboard empty state**:
   - Title: "No Traders Configured" (cold, technical)
   - Description: Generic message with no action guidance
   - Button: "Go to Traders Page" (unclear what happens next)

2. **Login error messages**:
   - "Login failed" (too vague - why did it fail?)
   - "Registration failed" (no guidance on what to do)
   - "OTP verification failed" (users don't know how to fix)

**Impact**: Users felt confused and frustrated, no clear next steps.

## Solution

### 1. Improve Dashboard Empty State
**File**: `web/src/i18n/translations.ts`

**Before**:
```typescript
dashboardEmptyTitle: 'No Traders Configured'
dashboardEmptyDescription: "You haven't created any AI traders yet..."
goToTradersPage: 'Go to Traders Page'
```

**After**:
```typescript
dashboardEmptyTitle: "Let's Get Started!"  //  Welcoming, encouraging
dashboardEmptyDescription: 'Create your first AI trader to automate your trading strategy. Connect an exchange, choose an AI model, and start trading in minutes!'  //  Clear steps
goToTradersPage: 'Create Your First Trader'  //  Clear action
```

**Changes**:
-  More welcoming tone ("Let's Get Started!")
-  Specific action steps (connect → choose → trade)
-  Time expectation ("in minutes")
-  Clear call-to-action button

---

### 2. Improve Error Messages
**File**: `web/src/i18n/translations.ts`

**Before**:
```typescript
loginFailed: 'Login failed'  //  No guidance
registrationFailed: 'Registration failed'  //  No guidance
verificationFailed: 'OTP verification failed'  //  No guidance
```

**After**:
```typescript
loginFailed: 'Login failed. Please check your email and password.'  //  Clear hint
registrationFailed: 'Registration failed. Please try again.'  //  Clear action
verificationFailed: 'OTP verification failed. Please check the code and try again.'  //  Clear steps
```

**Changes**:
-  Specific error hints (check email/password)
-  Clear remediation steps (try again, check code)
-  User-friendly tone

---

### 3. Chinese Translations
All improvements mirrored in Chinese:

**Dashboard**:
- Title: "开始使用吧!" (Let's get started!)
- Description: Clear 3-step guidance
- Button: "创建您的第一个交易员" (Create your first trader)

**Errors**:
- "登录失败,请检查您的邮箱和密码。"
- "注册失败,请重试。"
- "OTP 验证失败,请检查验证码后重试。"

---

## Impact

### User Experience Improvements

| Message Type | Before | After | Benefit |
|--------------|--------|-------|---------|
| **Empty dashboard** | Cold, technical | Welcoming, actionable |  Reduces confusion |
| **Login errors** | Vague | Specific hints |  Faster problem resolution |
| **Registration errors** | No guidance | Clear next steps |  Lower support burden |
| **OTP errors** | Confusing | Actionable |  Higher success rate |

### Tone Shift

**Before**: Technical, system-centric
- "No Traders Configured"
- "Login failed"

**After**: User-centric, helpful
- "Let's Get Started!"
- "Login failed. Please check your email and password."

---

## Testing

**Manual Testing**:
- [x] Empty dashboard displays new messages correctly
- [x] Login error shows improved message
- [x] Registration error shows improved message
- [x] OTP error shows improved message
- [x] Chinese translations display correctly
- [x] Button text updated appropriately

**Language Coverage**:
- [x] English 
- [x] Chinese 

---

## Files Changed

**1 frontend file**:
- `web/src/i18n/translations.ts` (+12 lines, -6 lines)

**Lines affected**:
- English: Lines 149-152, 461-464
- Chinese: Lines 950-953, 1227-1229

---

**By submitting this PR, I confirm:**

- [x] I have read the Contributing Guidelines
- [x] I agree to the Code of Conduct
- [x] My contribution is licensed under AGPL-3.0

---

🌟 **Thank you for reviewing!**

This PR improves user experience with clearer, more helpful messages.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: the-dev-z <the-dev-z@users.noreply.github.com>
Co-authored-by: tinkle-community <tinklefund@gmail.com>
2025-11-11 21:21:07 -05:00
..
2025-10-30 20:51:22 +08:00
2025-11-02 21:44:53 +08:00
2025-10-31 03:42:01 +08:00

NOFX Web Dashboard

基于 Vite + React + TypeScript 的AI自动交易监控面板

技术栈

  • React 18 - UI框架
  • TypeScript - 类型安全
  • Vite - 构建工具
  • Tailwind CSS - 样式框架
  • SWR - 数据获取和缓存
  • Zustand - 状态管理
  • Recharts - 图表库

安装依赖

npm install

运行开发服务器

npm run dev

访问 http://localhost:3000

构建生产版本

npm run build

功能特性

实时监控

  • 系统状态 - 运行状态、AI提供商、周期数
  • 账户信息 - 净值、可用余额、总盈亏、保证金使用率
  • 持仓列表 - 实时价格、盈亏、杠杆、强平价
  • 决策日志 - 完整的AI思维链可展开、决策动作、执行结果

AI思维链分析

每个决策记录都包含完整的AI思考过程

  • 第一步:现有持仓分析(技术指标、盈亏评估)
  • 第二步:账户风险评估(保证金使用率、可用余额)
  • 第三步:新机会评估(候选币种筛选、技术形态分析)
  • 第四步:最终决策总结(平仓/开仓/持有决策)

点击 "💭 AI思维链分析" 即可展开查看完整分析过程!

自动刷新

  • 系统状态、账户、持仓每5秒刷新
  • 决策日志、统计每10秒刷新

API集成

前端通过Vite代理访问后端APIhttp://localhost:8080

API端点

  • GET /api/status - 系统状态
  • GET /api/account - 账户信息
  • GET /api/positions - 持仓列表
  • GET /api/decisions - 决策日志最近30条
  • GET /api/decisions/latest - 最新决策最近5条
  • GET /api/statistics - 统计信息

项目结构

web/
├── src/
│   ├── components/      # React组件待扩展
│   ├── lib/
│   │   └── api.ts      # API调用函数
│   ├── store/          # Zustand状态管理待扩展
│   ├── types/
│   │   └── index.ts    # TypeScript类型定义
│   ├── App.tsx         # 主应用组件
│   ├── main.tsx        # 入口文件
│   └── index.css       # 全局样式
├── index.html          # HTML模板
├── vite.config.ts      # Vite配置
├── tailwind.config.js  # Tailwind配置
├── tsconfig.json       # TypeScript配置
└── package.json        # 依赖配置

注意事项

  1. 确保后端API服务已启动默认端口8080
  2. Node.js版本要求>= 18.0.0
  3. 网络连接需要访问Binance API

开发计划

  • 添加图表展示(账户净值走势、盈亏曲线)
  • 添加决策详情页面完整的CoT分析
  • 添加手动交易控制
  • 添加参数配置页面
  • 添加通知和告警系统