Skip to content

Repository files navigation

⚽ 足球赛事预测 App

基于 AI 双重量化分析引擎的足球赛事预测平台,支持 App(Android/iOS)、小程序(微信)、H5 三端。

项目架构

football-prediction-app/
├── App.vue                    # 应用入口,全局登录守卫
├── main.js                    # Vue 3 + Pinia + uView Plus 初始化
├── pages.json                 # 路由 + tabBar + easycom 配置
├── pages/                     # 前端页面
│   ├── index/                 # 赛事列表(首页)
│   ├── match-detail/          # 赛事详情
│   ├── match-analysis/        # 双重量化分析(核心功能)
│   ├── prediction/            # 预测战绩 & 历史记录
│   ├── subscribe/             # 订阅管理
│   ├── user/                  # 个人中心
│   ├── login/                 # 登录/注册
│   ├── settings/              # 系统设置
│   └── admin/                 # 后台管理
├── components/                # 可复用组件
├── store/                     # Pinia 状态管理
├── utils/                     # 工具库
│   ├── analysisEngine.js      # ★ 双重量化分析引擎
│   ├── calculateKelly.js      # 凯利公式仓位计算
│   ├── api.js                 # API 请求封装
│   ├── auth.js                # JWT 认证工具
│   ├── config.js              # 配置管理(无密钥)
│   ├── dataCache.js           # 3 时段缓存策略
│   ├── dataModels.js          # 数据模型 Schema
│   └── AIRequest.js           # AI 补全请求
└── server/                    # Node.js 后端
    ├── app.js                 # Express 入口
    ├── routes/                # API 路由
    │   ├── auth.js            # 登录/注册 + JWT 中间件
    │   ├── ai.js              # AI 补全代理
    │   ├── matches.js         # 赛事数据(FOOTBALL-DATA.ORG / API-FOOTBALL)
    │   ├── prediction.js      # 预测结果
    │   ├── admin.js           # 后台管理 API
    │   └── test.js            # 连接测试工具
    ├── db.js                  # SQLite 数据库层
    └── services/
        └── dataService.js     # 第三方 API 缓存服务

快速开始

前置要求

  • Node.js >= 18
  • npm >= 9
  • HBuilderX(可选,用于 App/小程序 调试)

1. 启动后端

cd server
cp .env.example .env     # 编辑 .env 填入配置
npm install
npm run dev              # 开发模式(自动重启)

2. 配置环境变量

编辑 server/.env,以下为必须配置的项:

变量 说明 获取方式
JWT_SECRET JWT 签名密钥 node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
ADMIN_USERNAME 管理员用户名 自行设置
ADMIN_PASSWORD 管理员密码 自行设置

可选 API 密钥(不配置则使用模拟数据):

变量 数据源 注册地址
FOOTBALL_DATA_KEY 赛程/赛果 https://www.football-data.org/client/register
API_FOOTBALL_KEY 实时比分 https://www.api-football.com/
ODDS_API_KEY 赔率数据 https://the-odds-api.com/
AI_API_KEY AI 分析 OpenAI / DeepSeek 等

3. 启动前端(H5 开发)

# 安装依赖
npm install

# H5 开发模式(浏览器访问 http://localhost:5173)
npm run dev:h5

4. 构建发布

# H5 构建
npm run build:h5

# App 构建
npm run build:app

# 微信小程序
npm run build:mp-weixin

5. Docker 部署

docker-compose up -d

核心功能

🔬 双重量化分析引擎

引擎 输入 输出
引擎一(基本面) xG, 战术风格, 伤病, 体能, 排位 修正 xG → Poisson 概率分布
引擎二(博弈面) 盘口, 水位, 必发热度, 庄家类型 Delta 偏离度 + 信息不对称检测
融合层 引擎一 + 引擎二 修正概率 + 置信度 + 风险评级

📊 庄家类型检测

  • Type I — 信息不对称局(Pinnacle 与市场深度背离)
  • Type II — 精算/诱多/阻上局
  • Type III — 有效对冲局
  • Type IV — 庄家失误局(Smart Money 狙击信号)

💰 凯利公式仓位管理

基于 1/4 凯利 + 风险分层调节,自动给出推荐仓位百分比。

API 文档

端点 方法 说明 认证
/api/health GET 健康检查
/api/auth/login POST 登录
/api/auth/register POST 注册
/api/user/info GET 用户信息
/api/user/subscription GET 订阅信息
/api/matches GET 赛事列表
/api/matches/live GET 实时赛事
/api/matches/:id GET 赛事详情
/api/prediction GET 预测结果
/api/prediction/batch POST 批量预测
/api/ai/prompt POST AI 补全
/api/ai/templates GET 提示词模板
/api/admin/* * 后台管理 ✅ admin
/api/test/ping GET 连通性测试
/api/test/external POST 外部 API 测试

技术栈

技术
前端框架 Vue 3 + Vite
跨平台 UniApp 3.0
状态管理 Pinia
UI 组件 uView Plus
后端 Node.js + Express
数据库 SQLite (better-sqlite3)
认证 JWT (jsonwebtoken + bcryptjs)
容器化 Docker + Docker Compose

安全说明

  • ✅ API 密钥仅存储在服务端 .env 文件中
  • ✅ JWT Secret 必须通过环境变量配置,无默认值
  • ✅ 管理员账号通过环境变量配置
  • ✅ CORS 在生产环境下限制到白名单域名
  • ✅ 生产环境禁用调试/模拟登录

许可证

MIT License

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages