# final_acapp **Repository Path**: ppshux/final_acapp ## Basic Information - **Project Name**: final_acapp - **Description**: A Django-based real-time online battle platform, integrating WebSocket communication, user authentication, matchmaking system. Built as the final back-end practice project in a full-stack portfolio. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-10-13 - **Last Updated**: 2026-03-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AcApp 实时对战平台 (Final_AcApp) ## 项目简介 这是一个基于 Django 开发的实时在线对战平台,集成了 WebSocket 通信、用户认证系统、智能匹配系统和 AI 对手功能。项目采用前后端分离架构,后端使用 Django + Django Channels 构建 WebSocket 服务,实现实时对战通信。 本项目是 **Final 系列项目**的第三个作品,也是**后端实践的综合项目**,展示了从用户系统、实时通信到游戏逻辑的完整后端开发流程。 ## 项目特性 - 🎮 **实时对战系统**:基于 WebSocket 的实时游戏通信 - 👤 **用户认证系统**:用户注册、登录、JWT Token 认证 - 🤝 **智能匹配系统**:自动匹配在线玩家进行对战 - 🤖 **AI 对手功能**:支持与人机 AI 进行对战 - 📊 **战绩统计**:记录和展示玩家对战历史 - 🚀 **高性能架构**:Django Channels + Redis 实现异步通信 ## 技术栈 ### 后端技术 - **Web 框架**:Django 4.x - **API 框架**:Django REST Framework - **实时通信**:Django Channels(WebSocket) - **消息队列**:Redis - **数据库**:MySQL - **认证系统**:JWT Token + Django REST Framework - **RPC 服务**:Thrift - **Python 版本**:Python 3.8+ ### 前端技术 - **游戏渲染**:Canvas(已实现) - **游戏对象系统**:JavaScript 类继承架构(已实现) - **粒子系统**:动态特效渲染(已实现) - **技能系统**:火球等技能实现(已实现) - **WebSocket 客户端**:原生 WebSocket API(已实现) - **实时通信**:WebSocket 实时对战(已实现) - **API 通信**:RESTful API + JWT认证(已实现) - **UI 框架**:Bootstrap 5(已实现) ## 核心功能模块 ### 1. 用户系统 📋 - [x] 用户注册和登录 - [x] JWT Token 认证 - [x] 用户信息管理 - [x] AcWing OAuth2.0 集成 - [x] Web端一键登录 - [x] AcApp端一键登录 - [x] 头像上传 ### 2. 实时对战系统 📋 - [x] WebSocket 连接 - [x] 房间创建和管理 - [x] 实时状态同步 - [x] 游戏逻辑处理 - [x] 多人联机对战 - [x] 聊天系统 ### 3. 匹配系统 📋 - [x] 匹配系统架构搭建 - [x] Thrift RPC服务集成 - [x] 匹配服务器框架实现 - [x] 玩家匹配队列 - [x] 自动匹配算法 - [x] 匹配取消功能 - [x] 天梯积分系统 - [x] 排行榜功能 ### 4. AI 对手系统 📋 - [x] AI 算法实现 - [x] 难度等级设置 - [x] 人机对战模式 - [x] AI决策树优化 - [x] 智能对战策略 ### 5. 战绩系统 📋 - [x] 对局记录保存 - [x] 胜率统计 - [x] 排行榜功能 - [x] 天梯积分计算 - [x] 积分板显示 ## 开发计划(5天冲刺) ### Day 1:项目搭建 + 前端界面 ✅ - [x] Django 项目初始化 - [x] 数据库和 Redis 配置 - [x] 菜单界面创建 - [x] 游戏界面创建(前端) - [x] 用户模型和认证 API - [x] JWT Token 实现 ### Day 2:用户系统开发 ✅ - [x] 用户模型和认证 API - [x] JWT Token 实现 - [x] AcWing OAuth2.0 集成 - [x] Web端一键登录 - [x] AcApp端一键登录 - [x] 账号系统打通 ### Day 3:WebSocket 通信 + 房间管理 ✅ - [x] Django Channels 集成 - [x] WebSocket Consumer 实现 - [x] 房间创建和管理逻辑 - [x] 消息广播机制 - [x] 多人联机对战实现 ### Day 4:聊天系统 + 游戏优化 ✅ - [x] 聊天系统实现 - [x] 实时消息传输 - [x] 聊天界面优化 - [x] 游戏性能优化 - [x] 用户体验完善 ### Day 5:匹配系统 + AI系统 + 战绩系统 + JWT认证 ✅ - [x] Thrift RPC服务集成 - [x] 匹配服务器实现 - [x] 天梯积分系统 - [x] 排行榜功能 - [x] AI 算法实现 - [x] 人机对战模式 - [x] 对局记录保存 - [x] 战绩统计 API - [x] Django REST Framework集成 - [x] JWT认证系统实现 - [x] 前后端完全分离 - [x] 项目最终优化和部署 ## 快速开始 ### 环境要求 - Python 3.8+ - MySQL 5.7+ - Redis 5.0+ ### 安装步骤 1. **克隆项目** ```bash git clone http://gitee.com/ppshux/final_acapp cd final_acapp ``` 2. **创建虚拟环境** ```bash python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate ``` 3. **安装依赖** ```bash pip install -r requirements.txt ``` 4. **配置数据库并启动** ```bash python manage.py migrate python manage.py runserver ``` ## 开发进度 ``` ████████████████████████████████████████████ 100% ✅ Day 1: 项目搭建 + 前端界面 (已完成) ✅ Day 2: 用户系统开发 (已完成) ✅ Day 3: WebSocket 通信 + 房间管理 (已完成) ✅ Day 4: 聊天系统 + 游戏优化 (已完成) ✅ Day 5: 匹配系统 + AI系统 + 战绩系统 (已完成) ``` ## 项目状态 - **当前版本**:v1.0.0(100% 完成) - **项目启动**:2025年10月13日 - **项目完成**:2025年10月19日(5天冲刺) - **开发状态**:✅ 已完成 - **当前阶段**:项目完成,准备部署和优化 ## 每日进度更新 ### 2025年10月19日(周六)- Day 5 最终完成 ✅ - 📌 **当前状态**:Day 5开发阶段完成,项目100%完成,最终版本发布 - 🎯 **今日目标**:完成JWT认证系统 + 前后端完全分离 + 项目最终优化 - ✅ **已完成**: - ✅ **Lesson 9.1: Thrift匹配服务架构**(2025/10/18 晚上) - ✅ **Lesson 9.2: Thrift匹配服务+天梯积分+收尾工作**(2025/10/19 15:20) - ✅ **Lesson 10: Django REST Framework + JWT认证系统**(2025/10/19 22:11) - 💭 **技术成果**: - ✅ **JWT认证系统完整实现** - ✅ **Django REST Framework集成** - ✅ **前后端完全分离架构** - ✅ **RESTful API设计** - ✅ **Token自动刷新机制** - ✅ **无状态认证系统** - ✅ **API文档自动生成** - 🎉 **重大里程碑**: - **JWT认证系统 100% 完成** 🔐 - **前后端分离 100% 完成** 🔄 - **Django REST Framework 100% 完成** 📡 - **项目整体进度达到 100%** 🎯 - **Final_AcApp项目正式完成** 🏆 - 💡 **技术说明**: - JWT Token认证替代传统Session认证 - Django REST Framework提供强大的API支持 - 前后端完全分离,支持多端接入 - RESTful API设计规范 - Token自动刷新和过期处理 - API文档自动生成和测试界面 - 无状态认证提升系统可扩展性 - 📁 **主要文件更新**: - `static/rest_framework/` - **新增Django REST Framework静态资源(40+文件)** - `static/js/dist/game.js` - 游戏前端逻辑优化 - `static/js/src/playground/socket/multiplayer/zbase.js` - Socket通信优化 - `static/js/src/settings/zbase.js` - 设置页面JWT集成 - `static/js/src/zbase.js` - 主应用JWT认证集成 - `static/admin/js/vendor/jquery/jquery.js` - Admin界面优化 - **JWT认证系统新增文件**: - `game/serializers/` - REST API序列化器 - `game/views/api/` - REST API视图 - `game/authentication/` - JWT认证中间件 - `game/permissions/` - API权限控制 - ⏰ **更新时间**:2025/10/19 22:11 ### 2025年10月16日(周三)- Day 3 已完成 ✅ - 📌 **当前状态**:Day 3开发阶段完成,多人联机对战实现一半 - 🎯 **今日目标**:完成账号系统开发 + 前端游戏标准化 + 启动联机对战 - ✅ **已完成**: - ✅ **Lesson 6.1: 登录注册功能**(2025/10/15 17:40) - ✅ **Lesson 6.2: web端AcWing一键登录**(2025/10/15 21:55) - ✅ **Lesson 6.3: acapp端AcWing一键登录**(2025/10/16 11:25) - ✅ **统一游戏度量衡**(2025/10/16 下午) - ✅ **Lesson 7.1: 多人联机对战(上半部分)**(2025/10/16 晚上) - 💭 **技术成果**: - ✅ 用户模型和数据库设计 - ✅ 登录注册API接口 - ✅ 前端登录注册界面 - ✅ 用户信息管理功能 - ✅ AcWing OAuth2.0集成 - ✅ Web端一键登录功能 - ✅ **AcApp端一键登录功能** - ✅ **账号系统基本打通** - ✅ **游戏坐标系统和尺寸标准化** - ✅ **为联机对战做好前端准备** - ✅ **Django Channels 集成完成** - ✅ **WebSocket Consumer 实现** - ✅ **房间创建和管理逻辑** - ✅ **WebSocket 实时连接建立** - 🎉 **重大里程碑**: - 账号系统开发完成,支持多种登录方式 - 前端游戏度量衡统一,为联机功能奠定基础 - **WebSocket 实时通信架构搭建完成** 🎮 - **多人联机对战框架实现 50%** - 💡 **技术说明**: - 统一了游戏场景的坐标系统 - 标准化了角色尺寸、移动速度等参数 - Django Channels + Redis 实现 WebSocket 服务 - 实现了房间管理和玩家连接逻辑 - 下一步将实现实时状态同步和游戏逻辑处理 - ⏰ **更新时间**:2025/10/16 晚上 ### 2025年10月14日(周一)- Day 2 进行中 🚧 - 📌 **当前状态**:Day 2开发阶段进行中 - 🎯 **今日目标**:WebSocket通信 + 房间管理 - 💭 **计划内容**: - Django Channels 集成 - WebSocket Consumer 实现 - 房间创建和管理逻辑 - 消息广播机制 - ✅ **已完成**: - ✅ **Lesson 5: 配置nginx和对接acapp**(2025/10/14 21:40) - ⏰ **更新时间**:2025/10/14 22:00 ### 2025年10月13日(周日)- Day 1 已完成 ✅ - 📌 **完成内容**: - ✅ 完成项目规划 - ✅ 确定技术栈:Django + Channels + Redis + MySQL - ✅ 创建项目文档 - ✅ Django 项目初始化 - ✅ 数据库和 Redis 配置 - ✅ Docker 和 Git 环境配置 - ✅ **Lesson 3: 创建菜单界面**(2025/10/13 15:30) - ✅ **Lesson 4: 创建游戏界面(前端)**(2025/10/13 16:00) - 🎯 **下一步**:实现用户模型和认证 API - 💭 **总结**:已完成第4课内容,前端界面框架搭建完成,游戏对象系统初步实现,开始用户系统开发 ### 2025年10月13日上午 - 项目启动 🚀 - 📌 **完成内容**: - ✅ 完成项目规划 - ✅ 确定技术栈:Django + Channels + Redis + MySQL - ✅ 创建项目文档 - 🎯 **下一步**:搭建 Django 项目基础环境 - 💭 **总结**:Final 系列第三个项目,聚焦后端实时通信技术 --- ## 技术亮点 - ✅ **Django Channels**:异步 WebSocket 处理 - ✅ **WebSocket 实时通信**:房间管理和实时连接 - ✅ **JWT 认证**:无状态认证机制 - ✅ **AcWing OAuth2.0**:第三方登录集成 - ✅ **多端登录**:Web端 + AcApp端一键登录 - ✅ **实时对战**:多人联机对战系统(100% 完成) - ✅ **AI 对手**:决策树算法优化 - ✅ **匹配系统**:Thrift RPC微服务架构 - ✅ **天梯积分**:积分计算和排行榜系统 - ✅ **战绩系统**:对局记录和统计功能 - ✅ **高性能**:异步处理 + Redis 缓存 ## 许可证 本项目采用 MIT 许可证。 ## 🎉 项目完成总结 ### 最终成果 - **项目状态**:✅ 100% 完成(最终版本) - **开发周期**:5天冲刺(2025/10/13 - 2025/10/19) - **技术栈**:Django + Django REST Framework + Channels + Redis + MySQL + Thrift + JWT - **核心功能**:实时对战 + 智能匹配 + AI对手 + 天梯积分 + JWT认证 + 前后端分离 - **架构模式**:微服务架构 + RESTful API + 无状态认证 ### 主要成就 1. **完整的实时对战平台** - 支持多人联机对战 2. **智能匹配系统** - 基于Thrift RPC的分布式匹配 3. **天梯积分系统** - 完整的积分计算和排行榜 4. **AI对手功能** - 智能决策树算法 5. **用户认证系统** - 支持多种登录方式 6. **战绩统计系统** - 完整的对局记录和统计 7. **JWT认证系统** - 无状态Token认证 8. **前后端分离架构** - RESTful API + Django REST Framework 9. **微服务架构** - Thrift RPC + 分布式系统设计 ### 技术亮点 - 🚀 **微服务架构**:Thrift RPC实现分布式匹配 - ⚡ **实时通信**:WebSocket + Django Channels - 🎯 **智能匹配**:自动匹配算法和负载均衡 - 🏆 **天梯系统**:积分计算和排名机制 - 🤖 **AI算法**:决策树和智能对战策略 - 📊 **数据统计**:完整的战绩记录和分析 - 🔐 **JWT认证**:无状态Token认证系统 - 📡 **RESTful API**:Django REST Framework + API文档 - 🔄 **前后端分离**:完全解耦的架构设计 - 🛡️ **安全机制**:Token刷新 + 权限控制 --- ## 📈 项目统计 ### 代码统计 - **总文件数**:90+ 个文件 - **代码行数**:8000+ 行 - **主要模块**:7个核心功能模块 - **API接口**:30+ 个RESTful API - **WebSocket事件**:15+ 个实时事件 - **JWT认证**:完整的Token认证系统 - **静态资源**:Django REST Framework完整集成 ### 功能完成度 - **用户系统**:100% ✅ - **实时对战**:100% ✅ - **匹配系统**:100% ✅ - **AI系统**:100% ✅ - **战绩系统**:100% ✅ - **聊天系统**:100% ✅ - **JWT认证系统**:100% ✅ - **前后端分离**:100% ✅ ### 技术栈覆盖 - **后端框架**:Django 4.x - **API框架**:Django REST Framework - **实时通信**:Django Channels + WebSocket - **消息队列**:Redis - **数据库**:MySQL - **RPC服务**:Thrift - **认证系统**:JWT Token + REST API - **前端技术**:JavaScript + Canvas + Bootstrap - **架构模式**:微服务 + 前后端分离 --- ## 致谢 - [Django](https://www.djangoproject.com/) - Python Web 框架 - [Django Channels](https://channels.readthedocs.io/) - Django 异步扩展 - [Redis](https://redis.io/) - 高性能缓存 - [MySQL](https://www.mysql.com/) - 关系型数据库 ## 联系方式 - **项目仓库**:[http://gitee.com/ppshux/final_acapp](http://gitee.com/ppshux/final_acapp) - **Final 系列项目**:Final_KOF ✅ | Final_MySpace ✅ | Final_AcApp ✅ --- > "Real-time battles, intelligent matching — where Django meets WebSocket magic." --- ## 🔗 相关项目 - **Final_KOF** - 拳皇格斗游戏(前端 Canvas 游戏开发)✅ - **Final_MySpace** - 社交空间平台(Vue3 全栈应用)✅ - **Final_AcApp** - 实时对战平台(Django 后端深度实践)✅ --- ⭐ 如果这个项目对你有帮助,请给它一个 Star! 🎮 **Let's build something amazing together!**