语言技术
Python、postgres、Vue、TypeScript系统类型
Web行业分类
内容平台演示地址
http://localhost:5173/
立项原因
项目面向 一级方程式赛车(Formula 1)数据智能与赛事运营 领域。F1 赛事产生海量实时与历史数据(圈速、轮胎、位置、天气、FIA 文件等),车队策略师、数据工程师、媒体分析师及赛事运营人员需要一体化平台快速获取、可视化和决策。
旨在解决的行业问题
1. 数据孤岛 :实时计时、天气预报、FIA 官方文件、历史回放分散在不同来源。
2. 决策滞后 :策略窗口、轮胎退化、对手 pacing 缺乏实时可视化支撑。
3. 演示与生产混淆 :传统原型常把 mock 数据与真实数据混用,无法暴露生产故障。
4. 权限粗放 :平台级敏感功能(订阅、管理、API Key)缺乏真实角色鉴权。
业务场景
- 比赛周末运营 :赛前 schedule、实时 live timing、赛道状态监控。
- 策略制定 :轮胎策略窗口、undercut/overcut 分析、 stint 规划。
- 赛后复盘 :历史 session replay、单圈对比、车手遥测回放。
- 合规管理 :FIA 技术/运动法规文档检索、版本对比、动力单元配额追踪。
主要功能描述
- 实时赛道追踪 :通过 WebSocket 接收后端 /api/v1/live-sessions/{session_key}/ws 的位置流,在真实 GPS 赛道路径上渲染 20 辆赛车位置。
- 策略分析 :基于轮胎 stint、圈速数据给出策略候选与 pit window。
- 赛事回放 :支持时间轴拖动、多车手轨迹对比、pit stop/安全车事件跳转。
- FIA 文档管理 :分类检索、版本历史、结构化 findings。
- RBAC 鉴权 :viewer/analyst/admin 三级角色,平台敏感页面真实受控。
项目实现
前端技术栈
- 框架 :Vue 3(Composition API)+ TypeScript
- 构建工具 :Vite
- 状态管理 :Pinia
- 路由 :Vue Router 4,带 beforeEach 路由守卫与角色校验
- 数据获取 :TanStack Vue Query
- HTTP 客户端 :Axios,自动注入 JWT Bearer Token
- 实时通信 :原生 WebSocket,封装为 LiveSocketManager (重连、序列号缺口检测)
- 时区处理 :统一使用 Asia/Shanghai ,客户端与服务器时间同步
后端技术栈
- 框架 :FastAPI(Python 3.13)
- ORM :SQLAlchemy 2.0
- 数据库 :SQLite(默认),PostgreSQL 可选
- 缓存 :进程内 LocalTTLCache (默认),Redis 可选
- 鉴权 :PyJWT + HTTP Bearer,角色层级 viewer < analyst < admin
- 外部数据源 :
- Jolpica:赛历、车手积分榜
- OpenF1:实时位置、圈速、stint、pit stop
- Open-Meteo:赛道天气
- 数据契约 : app/data/payload.py 提供确定性 seed 数据,作为离线/demo fallback
部署与工程化
- 容器化 : docker compose up --build ,默认单节点 SQLite 栈
- 模式切换 : DEMO_MODE=1 使用 seed 数据; DEMO_MODE=0 (默认)调用上游真实 API,失败时抛出 HTTP 错误
- CI/CD : .github/workflows/ci.yml 自动执行前端
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论