项目简介:
一款面向 Escape from Tarkov 游戏玩家的 Web 助手应用,提供任务追
踪、物品价格查询、交互式地图标注、数据同步等功能。
核心功能:
- 任务管理:游戏任务追踪,支持条件筛选、排序,包含任务物品需求与
奖励展示
- 物品查询:物品/弹药/价格查询,支持以物易物(Barter)、合成(Craft
)、转售(Resell)分析
- 交互地图:自定义标注点、划线,支持多人实时协作标注,监控游戏日志,根据日志在地图绘制玩家位置。
- 数据同步:每日自动同步游戏数据,支持价格快照历史追踪
- 社区功能:剧情攻略发布、评论互动系统
技术栈:
- 前端:Vue 3 + TypeScript 5 + Vite + Pinia + ECharts
- 后端:Python 3.11 + FastAPI + MongoDB (异步) + Redis + Celery
- 部署:Docker Compose 全栈化部署,Nginx 反向代理
职责:独立完成全栈开发,包括需求分析、架构设计、前后端实现、数据
库设计、自动化部署。
一、整体架构和设计思路
项目采用前后端分离架构,Nginx 作为反向代理服务器处理 80/443
端口请求。前端静态资源通过 Vite 构建部署在 Nginx 容器中,后端
API 运行在 8000 端口由 FastAPI 实现。MongoDB
用于数据持久化,Redis 用于缓存和 WebSocket 实时消息广播。Celery
Beat 定时任务负责每日数据同步和备份。
前端使用 Vue 3 搭配 TypeScript 5 保证类型安全,状态管理采用
Pinia,路由使用 Vue Router,国际化使用 Vue I18n
支持多语言切换。ECharts 用于地图可视化,Vue Virtual Scroller
处理大列表虚拟滚动提升性能。
后端选择 Python 3.11 + FastAPI 利用异步特性提升并发,Motor 作为
MongoDB 异步驱动避免阻塞。Redis 同时作为缓存层和消息队列,配合
Celery 实现定时任务调度。部署采用 Docker Compose
全栈容器化,MongoDB
数据通过命名卷持久化,重要数据每日自动备份到阿里云 OSS。
二、负责模块和结果
任务系统支持按商人、阵营、任务状态等 多项条件筛选排序,覆盖游戏内约500任务数据,展示任务目标、所需物品、奖励物品等信息。
物品查询系统支持按名称、类别、商人等条件搜索,根据任务和藏身处进度试试计算物品需求清单。
价格系统通过 Celery
定时任务每日自动抓取市场数据生成快照,历史数据保留 30
天,玩家可查看任意物品价格走势。
交互地图基于 HTML5 Canvas
实现,支持标注点、绘制路线、标注区域,通过 WebSocket
实时同步支持多人协作。
用户系统实现完整注册登录流程,采用 JWT 认证,支持 VIP 会员分级和
激活码兑换。管理员后台提供数据管理、内容审核、用户管理等功能。
项目整体规模:前端 25+ 页面视图,后端 35+ API 路由模块。
三、难点和解决方案
地图 Canvas 性能问题通过分层渲染解决,静态底图启用缓存只渲染一次
,动态标注实时更新,使用 requestAnimationFrame
节流避免过度渲染。
多人协作数据冲突采用 WebSocket 配合 Redis Pub/Sub
广播消息,冲突检测机制在检测到重叠标注时提示用户确认。
MongoDB 读写一致性问题通过为定时任务配置独立数据连接、API
读取添加事务保障解决。