Skip to content

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

前后端协作流程

数据流向

  1. 用户请求 → Vue前端接收用户操作
  2. API调用 → Axios发送HTTP请求到Flask后端
  3. 数据处理 → 后端处理请求,查询缓存或调用Codeforces API
  4. 响应返回 → 后端返回JSON格式数据
  5. 界面渲染 → 前端接收数据,使用ECharts进行可视化展示

接口设计

  • RESTful标准:统一的API设计规范
  • JSON数据格式:前后端数据交换格式
  • CORS跨域支持:解决前后端分离的跨域问题