02 / PROJECTS / BUILD

项目 One platform, built end to end.

目前对外展示的唯一项目:SWUCPC 训练平台。它服务西南大学 ICPC 集训队的日常训练,也是我对「把需求做成一个能长期运行的系统」的一次完整实践。

项目
SWUCPC 训练平台
用户
9 名队员在用
技术栈
Flask · SQLite
状态
持续迭代

P / 01 / FEATURED PROJECT

SWUCPC 训练平台

西南大学 ICPC 集训队内部训练平台,目前有 9 名队员在用。平台把 Codeforces 数据同步、能力分析、每日训练计划、模拟赛、补题复习与周赛串成一条完整的训练链路。

技术栈为 Flask + SQLite + 原生 JS + Chart.js。单机 2 核服务器承载 400+ QPS;从需求梳理到部署上线,全程由 AI 辅助开发。

项目地址需登录,供队内训练使用。

09

名队员在用

400+

单机 2 核服务器 QPS

112+

项成就系统

01 / CAPABILITIES

从数据,到下一场比赛。

七个模块覆盖日常训练的完整循环:看清现状、安排训练、完成比赛、补题沉淀、继续下一轮。

MODULE / 01

能力画像

同步 Codeforces 数据,用雷达图整理做题结构与能力分布。

MODULE / 02

AI 每日训练计划

接入 DeepSeek V4.1,生成当天的训练安排。

MODULE / 03

个性化模拟赛

站内题面与中英翻译,围绕个人薄弱项组织模拟赛。

MODULE / 04

自研训练分

基于 Glicko 变体的训练分算法,支持定级赛与动态更新。

MODULE / 05

补题与复习

补题队列配合复习提醒,让一次比赛沉淀成长期训练。

MODULE / 06

连胜与成就

打卡连胜与 112+ 成就,给长期训练一个可见的反馈循环。

MODULE / 07

周赛系统

完整的周赛流程,以及和比赛结果联动的称号系统。

02 / ARCHITECTURE

保持简单,足够快。

平台没有复杂的基础设施:一个 Flask 应用、一份 SQLite 数据,以及足够直接的前端交互。

01 / CLIENT

浏览器

原生 JS 处理交互,Chart.js 绘制能力雷达与训练数据。

02 / APPLICATION

Flask 应用层

训练计划、模拟赛、训练分、周赛与补题队列的业务逻辑。

03 / DATA

SQLite 数据层

训练记录、比赛数据、评分状态与成就进度集中落库。

EXTERNAL / Codeforces 数据同步 DeepSeek V4.1

架构图为技术栈摘要,不展示内部实现细节。

03 / TECHNICAL NOTES

技术细节。

展开查看每个模块具体解决什么问题。

01 数据同步与能力画像 Data & Radar

平台同步 Codeforces 数据,并以雷达图呈现能力分析结果。它把分散的做题记录整理成一张可读的能力画像。

  • Codeforces 数据同步。
  • 雷达图形式的能力分析。
02 训练计划、模拟赛与补题 Loop

AI 每日训练计划基于训练状态生成,模拟赛围绕个人薄弱项组织。站内提供题面与中英翻译,比赛结束后进入补题队列,并通过复习提醒让一次比赛持续产生价值。

  • 接入 DeepSeek V4.1 生成每日训练安排。
  • 个性化模拟赛与站内题面,支持中英翻译。
  • 补题队列与复习提醒,覆盖赛后阶段。
03 训练分与周赛系统 Rating & Weekly

训练分使用自研的 Glicko 变体,支持定级赛。周赛系统配有称号系统。

  • 自研训练分算法,基于 Glicko 变体。
  • 定级赛机制。
  • 周赛流程与称号系统。
04 坚持训练的理由 Streak & Achievements

打卡连胜与 112+ 成就系统为长期训练提供即时反馈,让“今天也做了一点”变得可见。它们不替代训练本身,但能降低长期坚持的摩擦。

05 工程与性能 Engineering

平台采用 Flask + SQLite + 原生 JS + Chart.js 的轻量组合,在单机 2 核服务器上承载 400+ QPS。开发过程全程由 AI 辅助,从需求梳理一直进行到部署上线。

  • 轻量技术栈,降低部署与维护成本。
  • 单机 2 核服务器,400+ QPS。
  • AI 辅助的完整开发流程。