基于 Turborepo 的加密货币 AI 分析 Monorepo 项目
Crypto AI 是一个现代化的加密货币数据分析和 AI 辅助平台,采用 Turborepo 管理的 Monorepo 架构,结合最新的 React 19、Next.js 16 和 TypeScript 技术栈。
-
web- 主 Web 应用 (Next.js 16 + React 19)- 端口: 3000
- 加密货币数据展示和分析界面
-
docs- 文档站点 (Next.js 16)- 端口: 3001
- 项目文档和 API 文档
-
@repo/api- 🚀 加密货币价格查询 API- 基于 CCXT 库
- 支持 OKX、Binance 等交易所
- 实时价格查询、K 线数据获取
- 完整的 TypeScript 类型定义
- 详细文档
-
@repo/ui- React 组件库- 共享 UI 组件
- Button、Card、Code 等基础组件
-
@repo/eslint-config- ESLint 配置- 统一的代码规范
- 支持 Next.js、React、TypeScript
-
@repo/typescript-config- TypeScript 配置- 共享的 tsconfig.json
- 针对不同场景的配置预设
bun install# 启动所有应用
bun dev
# 启动指定应用
bun dev --filter=web
bun dev --filter=docs# 运行加密货币价格查询示例
bun api:demo
# 或者
bun api:start# 构建所有应用和包
bun build
# 构建指定包
bun build --filter=web# 类型检查
bun check-types
# 代码检查
bun lint
# 代码格式化
bun format特性:
- ✅ 支持 OKX、Binance 交易所
- ✅ 实时价格查询(现货 & 合约)
- ✅ K 线数据获取 (OHLCV)
- ✅ 多币种并发查询
- ✅ 交易所切换和价格对比
- ✅ 完整的错误处理
- ✅ TypeScript 类型安全
快速示例:
import { ExchangePriceFetcher } from '@repo/api';
const fetcher = new ExchangePriceFetcher({ exchangeName: 'okx' });
await fetcher.initialize();
const btcPrice = await fetcher.getPrice('BTC/USDT');
console.log(`BTC 价格: $${btcPrice.last}`);查看完整文档:packages/api/README.md
- React 19.2.0 - 最新的 React 框架
- Next.js 16.0.10 - 全栈 React 框架(App Router)
- TypeScript 5.9.2 - 类型安全
- Turborepo 2.6.3 - Monorepo 构建工具
- CCXT 4.5.28 - 统一的加密货币交易所 API
- Bun 1.2.19 - 高性能 JavaScript 运行时
- ESLint 9.39.1 - 代码检查
- Prettier 3.7.4 - 代码格式化
crypto-ai/
├── apps/
│ ├── web/ # 主 Web 应用
│ └── docs/ # 文档站点
├── packages/
│ ├── api/ # 加密货币 API 模块
│ ├── ui/ # UI 组件库
│ ├── eslint-config/ # ESLint 配置
│ └── typescript-config/ # TypeScript 配置
├── node_modules/
├── package.json
├── turbo.json
└── README.md
项目遵循严格的代码规范:
- SOLID 原则 - 面向对象设计原则
- KISS 原则 - 保持简单
- DRY 原则 - 避免重复
- YAGNI 原则 - 只实现必要功能
所有代码都是 100% TypeScript,启用了严格模式:
{
"strict": true,
"noImplicitAny": true
}建议使用 Conventional Commits 规范:
feat: 添加新功能
fix: 修复 bug
docs: 更新文档
style: 代码格式调整
refactor: 代码重构
test: 添加测试
chore: 构建工具或依赖更新
运行 bun api:demo 查看完整功能演示:
✅ 基础示例:查询 OKX 的 BTC 价格
最新价: 87033.7 USDT
✅ 多币种查询:BTC, ETH, SOL
✅ 交易所切换:OKX vs Binance
价差: $2.87 (0.0033%)
✅ 合约市场:BTC/USDT 永续合约
✅ K 线数据:获取 10 个 1 小时 K 线
✅ 错误处理:正确捕获无效交易对
✅ 支持 2349+ 个交易对- CCXT API 集成
- 实时价格查询
- K 线数据获取
- 多交易所支持
- 价格预测模型
- 趋势分析
- 异常检测
- 智能推荐
- 实时价格展示
- 图表可视化
- 交易信号面板
- 用户设置
- WebSocket 实时推送
- 价格预警
- 套利机会检测
- 历史数据分析
欢迎提交 Issue 和 Pull Request!
- Fork 项目
- 创建特性分支:
git checkout -b feature/amazing-feature - 提交更改:
git commit -m 'feat: add amazing feature' - 推送分支:
git push origin feature/amazing-feature - 提交 Pull Request
Private - Crypto AI Project
Made with ❤️ using React 19, Next.js 16, TypeScript & CCXT