Skip to content

EMT5320/InsightSphere-kimi

Repository files navigation

InsightSphere - 实时加密货币数据可视化仪表盘

项目简介

InsightSphere 是一个实时、交互式的加密货币数据可视化仪表盘应用。它从 CoinGecko API 获取实时市场数据,通过后端服务进行处理和缓存,并通过前端界面以多种图表形式动态展示给用户。

技术选型及理由

后端技术栈

  • Flask (Python): 轻量级Web框架,易于开发和部署,拥有丰富的扩展生态
  • Flask-CORS: 处理跨域请求,确保前后端分离架构下的正常通信
  • Requests: 简洁强大的HTTP库,用于调用CoinGecko API
  • Python内置缓存: 内存缓存机制,简单高效,满足60秒刷新需求的同时避免API限流

前端技术栈

  • 原生HTML/CSS/JavaScript: 无需构建步骤,直接运行,降低部署复杂度
  • Bootstrap 5: 现代化的响应式UI框架,确保在桌面和移动设备上的良好体验
  • Chart.js: 轻量级、响应式的图表库,支持丰富的交互效果和动画

架构设计

  • 前后端分离: 清晰的职责分离,便于独立开发和维护
  • 内存缓存机制: 智能缓存策略,平衡数据实时性和API调用频率
  • 错误处理: 完善的异常处理机制,确保应用的稳定性和用户体验

功能特性

  • ✅ 全球市场概览卡片(总市值、24小时交易量、比特币市值占比)
  • ✅ Top 10加密货币数据表格(排名、图标、价格、涨跌幅、市值)
  • ✅ 交互式饼图展示市值分布
  • ✅ 每60秒自动刷新数据
  • ✅ 响应式设计,适配各种设备
  • ✅ 友好的错误提示和处理
  • ✅ 智能缓存机制,避免API限流

本地环境搭建指南

环境要求

  • Python 3.7+
  • pip包管理器

安装步骤

  1. 克隆项目
cd D:\Work\arena\web_demo\kimi
  1. 安装Python依赖
# 创建虚拟环境(推荐)
python -m venv venv

# 激活虚拟环境
# Windows:
venv\Scripts\activate
# Linux/Mac:
# source venv/bin/activate

# 安装依赖
pip install -r backend/requirements.txt
  1. 启动后端服务
cd backend
python app.py

后端服务将在 http://localhost:5000 启动

  1. 启动前端服务
# 新终端窗口
cd frontend
# 使用Python内置HTTP服务器
python -m http.server 8080

前端应用将在 http://localhost:8080 启动

项目结构

kimi/
├── backend/                 # Flask后端服务
│   ├── app.py              # 主应用文件
│   ├── requirements.txt    # Python依赖
│   └── Dockerfile          # Docker配置
├── frontend/               # 前端应用
│   ├── index.html          # 主页面
│   ├── css/                # 样式文件
│   ├── js/                 # JavaScript文件
│   └── assets/             # 静态资源
├── docker-compose.yml      # Docker Compose配置
└── README.md              # 项目文档

Docker部署

一键启动

docker-compose up -d

单独构建和运行

# 构建后端镜像
cd backend
docker build -t insightsphere-backend .

# 构建前端镜像
cd ../frontend
docker build -t insightsphere-frontend .

# 启动服务
cd ..
docker-compose up -d

访问地址:

API端点

获取全球市场概览

GET /api/global

获取Top 10加密货币

GET /api/top10

缓存策略

  • 缓存有效期: 60秒
  • 缓存键: 不同的API端点使用不同的缓存键
  • 缓存更新: 每次请求时检查缓存是否过期,过期则重新获取数据
  • 错误处理: API请求失败时返回缓存数据(如果可用)或友好的错误信息

错误处理

  • API请求失败: 返回缓存数据或错误信息,前端显示友好提示
  • 网络超时: 设置合理的超时时间,避免长时间等待
  • 数据格式错误: 验证API返回的数据格式,确保前端正常显示
  • 跨域问题: 使用Flask-CORS处理跨域请求

安全考虑

  • 无敏感信息: CoinGecko API为公开API,无需API密钥
  • 输入验证: 后端对所有输入进行验证和清理
  • 错误信息: 不暴露内部实现细节的错误信息
  • CORS配置: 合理配置跨域访问权限

性能优化

  • 智能缓存: 减少不必要的API调用
  • 异步加载: 前端异步加载数据,提升用户体验
  • 响应式设计: 适配不同设备,减少资源消耗
  • CDN资源: 使用CDN加载第三方库,提升加载速度

贡献指南

欢迎提交Issue和Pull Request来改进项目。

许可证

MIT License - 详见LICENSE文件

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors