Codeforces 用户信息API服务 - 项目介绍
项目概述
本项目是基于Vue 3开发的CodeForces选手信息查询与数据可视化系统,采用现代化的前后端分离架构,实现了选手信息批量查询、Rating历史数据可视化等核心功能。前端使用Vue 3 + ECharts构建用户界面和数据可视化,后端基于Flask框架提供RESTful API服务,支持数据缓存、持久化存储等功能。
项目背景
Codeforces作为全球知名的编程竞赛平台,拥有大量的用户数据和竞赛记录。本项目旨在提供一个现代化的数据查询和可视化平台,帮助用户直观地查看选手信息、追踪竞赛记录,并通过图表形式进行数据分析。
技术架构
前端技术栈
- Vue 3.5.12 + Composition API - 现代化前端框架
- Vue Router 4.5.0 - 单页面应用路由管理
- Vite 5.4.11 - 快速构建工具和开发服务器
- Axios 1.7.8 - HTTP请求客户端
- ECharts 5.5.1 - 数据可视化图表库
- Layui Vue 2.21.0 - UI组件库
- Bootstrap 5.3.3 - 响应式CSS框架
后端技术栈
- Flask 2.x - 轻量级Web框架
- Flask-CORS - 跨域资源共享处理
- SQLite - 轻量级数据库存储
- Requests - HTTP请求处理
- cachetools - 高性能TTL缓存
- pytz - 时区处理库
系统架构设计
┌─────────────────┐ HTTP/HTTPS ┌─────────────────┐
│ Vue 3 前端 │ ◄─────────────── │ Flask 后端API │
│ │ │ │
│ • 用户界面 │ RESTful API │ • 数据处理 │
│ • 数据可视化 │ ──────────────► │ • 缓存管理 │
│ • 路由管理 │ │ • 异常处理 │
└─────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ 数据层 │
│ │
│ • SQLite数据库 │
│ • TTL缓存 │
│ • Codeforces API│
└─────────────────┘
架构特点:
- 前端:负责用户交互、数据展示和可视化
- 后端:提供RESTful API、数据处理和缓存管理
- 数据层:多层数据存储策略,包括本地缓存、数据库和外部API
前后端协作流程
数据流向
- 用户请求 → Vue前端接收用户操作
- API调用 → Axios发送HTTP请求到Flask后端
- 数据处理 → 后端处理请求,查询缓存或调用Codeforces API
- 响应返回 → 后端返回JSON格式数据
- 界面渲染 → 前端接收数据,使用ECharts进行可视化展示
接口设计
- RESTful标准:统一的API设计规范
- JSON数据格式:前后端数据交换格式
- CORS跨域支持:解决前后端分离的跨域问题