Skip to content

GameVerse

这是一个从零手写的全栈项目,集成了用户系统、积分博弈、站内邮件、实时通知、排行榜竞技等完整功能链路。
在线体验:project.liferoad.cloud
github代码库: github


功能总览

👤 用户系统

  • 注册 / 登录 / 注销
  • JWT 令牌鉴权 + 自动续期
  • 路由守卫拦截未登录访问
  • 修改密码

🎮 游戏化积分系统

  • 积分抽奖转盘 — 消耗 20 积分抽一次,基于权重概率算法,期望值 18
  • 剪刀石头布 — 全押模式,赢了翻倍,输了清零
  • 在线时长奖励 — 累计在线 5/15/30/60 分钟手动领取积分
  • 积分排行榜 — Redis Sorted Set 实时排序

✉️ 站内邮件系统

  • 单人发送 / 全体发送
  • 已读 / 未读状态追踪
  • 自动过期(7 天)
  • 软删除(不影响其他收件人)

🔔 实时通知(WebSocket)

  • 新邮件到达实时弹窗
  • 新增粉丝实时推送

👥 社交功能

  • 用户列表首页
  • 关注 / 取关
  • 关注列表 / 粉丝列表

📊 数据统计

  • 在线时长统计(分钟级心跳)
  • 登录天数累计
  • 积分变动流水日志
  • 近 7 天在线时长图表(Chart.js)

技术栈

后端

技术用途
Java 21 + Spring Boot 3.2.5主框架
Spring Security安全配置
MyBatisORM 持久层
MySQL 8.0关系型数据库
Redis 7排行榜、在线时长、关注关系
Spring Boot WebSocket实时消息推送
JWT (jjwt 0.11.5)无状态令牌鉴权
BCrypt密码加密

前端

技术用途
Vue 3 + Composition API主框架
Vite构建工具
Pinia全局状态管理
Vue Router前端路由
AxiosHTTP 请求 + 拦截器
Chart.js数据可视化
WebSocket实时通信

DevOps

技术用途
Docker + Docker Compose容器化部署
GitHub ActionsCI/CD 自动化
阿里云容器镜像服务镜像存储
Nginx反向代理

项目结构

JavaWeb/                        # 后端 Spring Boot
├── Controller/                 # REST 控制器
├── Service/                    # 业务逻辑
├── Mapper/                     # MyBatis 数据访问
├── Config/                     # 安全、WebSocket、拦截器配置
├── Dto/                        # 数据传输对象
├── Entity/                     # 实体类
├── Exception/                  # 全局异常处理
├── Tools/                      # JWT + ThreadLocal 工具
├── WebSocket/                  # WebSocket 服务端
├── Task/                       # 定时任务
└── Dockerfile

JavaWebVue/                     # 前端 Vue 3
├── components/                 # 公共组件
├── views/                      # 页面
├── store/                      # Pinia 状态管理
├── utils/                      # 工具库
├── router/                     # 路由
├── Dockerfile
└── nginx.conf

docker-compose.yml              # 四容器编排

Docker 架构

浏览器 → Nginx(前端容器:3000)
                ├── 静态文件直接返回
                ├── /api/* → 后端容器:3001
                └── /websocket/* → 后端容器:3001

后端容器 → MySQL 8.0 + Redis 7

CI/CD 流程

git push origin main
  → GitHub Actions 触发
  → 构建 Docker 镜像 → 推送到阿里云镜像仓库
  → SSH 连接服务器 → docker compose pull + up -d

本地开发

bash
# 后端
cd JavaWeb && mvn spring-boot:run

# 前端
cd JavaWebVue && npm run dev

# 依赖
MySQL 8.0 + Redis 7

Docker 部署

bash
docker compose up -d --build

这个项目是作者从零手写的全栈练习作品,每一行代码、每一次踩坑都是学习的痕迹。