TheBet365 - 足球投注平台 MVP
Monorepo 项目,包含 NestJS 后端与 Vue 3 三端前端。
技术栈
| 层级 | 技术 |
|---|---|
| 后端 | NestJS + Prisma + PostgreSQL + Redis |
| 玩家前台 | Vue 3 + Vite + Pinia (H5 移动端优先) |
| 管理后台(平台+代理) | Vue 3 + Vite + Element Plus,单应用 apps/admin |
| 包管理 | pnpm workspace |
快速开始
完整步骤、环境变量、端口、演示账号与排错见 docs/项目启动指南.md。
1. 启动基础设施
docker compose up -d
2. 安装依赖
pnpm install
3. 配置环境
cp .env.example apps/api/.env
4. 数据库迁移与种子数据
pnpm db:migrate
pnpm db:seed
5. 启动开发服务
pnpm dev:api # API http://localhost:3000
pnpm dev:player # 玩家前台 http://localhost:5173
pnpm dev:admin # 管理后台 http://localhost:5174(admin/agent 同一入口)
pnpm dev:manage # 同上别名
API 文档:http://localhost:3000/api/docs
测试账号
| 角色 | 用户名 | 密码 |
|---|---|---|
| 超级管理员 | admin | Admin@123 |
| 一级代理 | agent1 | Agent@123 |
| 二级代理 | agent2 | Agent@123 |
| 玩家 | player1 | Player@123 |
更多默认数据(赛事、48 强夺冠、余额、Banner 等)见 docs/默认数据说明.md。
项目结构
apps/api/src/
├── domains/ # 8 个业务领域
│ ├── identity/ # 身份与权限(auth + users)
│ ├── agent/ # 代理网络
│ ├── ledger/ # 账务账本(wallet)
│ ├── catalog/ # 赛事目录(matches)
│ ├── odds/ # 盘口赔率(markets)
│ ├── betting/ # 注单引擎
│ ├── settlement/ # 结算引擎(含 domain/ 纯函数)
│ └── operations/ # 运营支撑(audit/cashback/content/i18n)
├── applications/ # 三端应用层(编排,不含领域规则)
│ ├── player/
│ ├── admin/
│ └── agent/
├── shared/ # 基础设施
│ ├── prisma/
│ └── common/
├── app.module.ts
└── main.ts
apps/
player/ 玩家 H5 前台
admin/ 管理后台(平台 + 代理,单应用)
packages/
shared/ 共享类型与常量
MVP 功能
- 三端登录鉴权 + RBAC
- 2 级代理 + 信用额度池
- 钱包账变(禁止直接改余额)
- 11 种足球玩法 + 盘口模板
- 单关 / 2~5 串 1 下注
- 结算预览 + 确认入账
- 返水批次
- Banner / 公告 / 多语言
测试
pnpm --filter @thebet365/api test
Description
Languages
TypeScript
54.2%
Vue
44.8%
CSS
0.8%
HTML
0.1%