Files
whale-town-end/README.md
moyin ff996b0dea docs:优化README中的AI代码检查指南
- 将快速开始改为简洁的prompt模板
- 移除详细的检查步骤列表
- 简化使用说明,突出AI自动化流程
- 保留文档链接供开发者查看详细规范
2026-01-14 15:11:54 +08:00

225 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🐋 Whale Town - 像素游戏后端服务
> 基于 NestJS 的现代化 2D 像素游戏后端采用四层架构Gateway-Business-Core-Data支持用户认证、实时通信、Zulip集成、管理员后台。
[![Node.js](https://img.shields.io/badge/Node.js-18%2B-green.svg)](https://nodejs.org/)
[![NestJS](https://img.shields.io/badge/NestJS-11.1-red.svg)](https://nestjs.com/)
[![TypeScript](https://img.shields.io/badge/TypeScript-5.9-blue.svg)](https://www.typescriptlang.org/)
[![React](https://img.shields.io/badge/React-18.3-61dafb.svg)](https://reactjs.org/)
[![Tests](https://img.shields.io/badge/Tests-99%20passing-brightgreen.svg)](#)
## 🎯 核心特性
- 🔐 用户认证多方式登录、验证码登录、GitHub OAuth
- 🌐 实时通信原生WebSocket、位置广播、地图房间管理
- 💬 Zulip集成游戏内聊天与Zulip社群双向同步
- 👑 管理员后台React界面、用户管理、日志监控
- 🛡️ 安全防护频率限制、维护模式、JWT认证
- 🗄️ 灵活存储MySQL/内存双模式、Redis/文件双模式
- 📚 完整文档Swagger UI、WebSocket测试工具
## 🚀 快速开始
### 环境要求
- Node.js >= 18.0.0
- pnpm >= 8.0.0
### 安装运行
```bash
# 1. 克隆项目
git clone <repository-url>
cd whale-town-end
# 2. 安装依赖
pnpm install
# 3. 配置环境(测试模式,无需数据库)
cp .env.example .env
# 4. 启动服务
pnpm run dev
```
访问http://localhost:3000
### 前端管理界面
```bash
# 启动管理后台
cd client
pnpm install
pnpm run dev
```
访问http://localhost:5173
默认账号admin / Admin123456
### 在线体验
- API文档https://whaletownend.xinghangee.icu/api-docs
- WebSocket测试https://whaletownend.xinghangee.icu/websocket-test
## 🏗️ 项目架构
### 四层架构设计
```
Gateway Layer (网关层)
↓ HTTP/WebSocket协议处理、数据验证
Business Layer (业务层)
↓ 业务逻辑实现、服务协调
Core Layer (核心层)
↓ 技术基础设施、数据访问
Data Layer (数据层)
↓ 数据持久化、缓存管理
```
### 目录结构
```
whale-town-end/
├── src/
│ ├── gateway/ # 网关层auth, location_broadcast
│ ├── business/ # 业务层auth, user_mgmt, admin, zulip, notice
│ ├── core/ # 核心层db, redis, login_core, admin_core, utils
│ ├── app.module.ts
│ └── main.ts
├── client/ # React管理界面
├── docs/ # 项目文档
├── test/ # 测试文件
└── config/ # 配置文件
```
详细架构:[docs/ARCHITECTURE.md](./docs/ARCHITECTURE.md)
## 🛠️ 技术栈
**后端:** NestJS 11 + TypeScript 5 + MySQL + Redis + WebSocket
**前端:** React 18 + Vite 7 + Ant Design 5
**测试:** Jest + Supertest99个测试用例
**部署:** Docker + PM2 + Nginx
## 📊 开发命令
```bash
# 开发
pnpm run dev # 启动开发服务器
pnpm run build # 构建项目
pnpm run start:prod # 生产环境运行
# 测试
pnpm test # 运行单元测试
pnpm run test:cov # 测试覆盖率
.\test-comprehensive.ps1 # API功能测试
```
## 🌍 环境配置
### 开发环境(默认)
```bash
USE_FILE_REDIS=true # 使用文件存储无需Redis
NODE_ENV=development
# 无需配置数据库和邮件
```
### 生产环境
```bash
USE_FILE_REDIS=false
NODE_ENV=production
# 数据库
DB_HOST=your_mysql_host
DB_USERNAME=your_username
DB_PASSWORD=your_password
# Redis
REDIS_HOST=your_redis_host
REDIS_PASSWORD=your_password
# 邮件
EMAIL_HOST=smtp.163.com
EMAIL_USER=your_email@163.com
EMAIL_PASS=your_password
# Zulip
ZULIP_SERVER_URL=https://your-zulip.com/
ZULIP_BOT_API_KEY=your_api_key
```
详细配置:[docs/deployment/DEPLOYMENT.md](./docs/deployment/DEPLOYMENT.md)
## 📚 文档
- [架构设计](./docs/ARCHITECTURE.md) - 四层架构详解
- [开发规范](./docs/development/backend_development_guide.md) - 代码规范
- [Git规范](./docs/development/git_commit_guide.md) - 提交规范
- [API文档](http://localhost:3000/api-docs) - Swagger UI
- [测试指南](./docs/development/TESTING.md) - 测试说明
### 🤖 AI代码检查指南
项目提供了完整的AI辅助代码检查流程帮助确保代码质量和规范性。
**快速开始:**
向AI发送以下prompt开始代码检查
```
请使用 docs/ai-reading 中readme的规范对 [模块路径] 进行完整的代码检查。
```
**如何使用:**
- AI会按照7个步骤逐步执行检查命名规范、注释标准、代码质量、架构层级、测试覆盖、文档生成、代码提交
- 每个步骤完成后会提供检查报告,等待确认后继续下一步
- 如有问题会自动修复并重新验证
- 这里建议每个步骤结束后,人工确认是否执行了修复,如果进行了修复,请告诉他:请重新执行一遍该步骤,看看是否有遗漏。
详细说明:[docs/ai-reading/README.md](./docs/ai-reading/README.md) | 开发者规范:[docs/开发者代码检查规范.md](./docs/开发者代码检查规范.md)
## 🤝 参与贡献
### 贡献流程
1. Fork项目
2. 创建分支:`git checkout -b feature/your-feature`
3. 开发功能(遵循开发规范)
4. 运行测试:`pnpm test`
5. 提交代码:`git commit -m "feat: 添加新功能"`
6. 创建Pull Request
### 核心团队
- [moyin](https://gitea.xinghangee.icu/moyin)
- [jianuo](https://gitea.xinghangee.icu/jianuo)
- [angjustinl](https://gitea.xinghangee.icu/ANGJustinl)
完整贡献者:[docs/CONTRIBUTORS.md](./docs/CONTRIBUTORS.md)
## 📝 版本历史
- **v2.1.0** (2026-01) - WebSocket架构升级、地图房间管理
- **v2.0.0** (2025-12) - 四层架构重构、Zulip集成、管理员后台
- **v1.2.0** (2025-11) - 用户管理、安全防护、邮件服务
- **v1.0.0** (2025-10) - 项目初始化、用户认证、双模式存储
## 📞 联系方式
- 项目地址:[Gitea Repository](https://gitea.xinghangee.icu/datawhale/whale-town-end)
- 问题反馈:[Issues](https://gitea.xinghangee.icu/datawhale/whale-town-end/issues)
- 功能建议:[Discussions](https://gitea.xinghangee.icu/datawhale/whale-town-end/discussions)
## 📄 许可证
[MIT License](./LICENSE)
---
<div align="center">
**🐋 Whale Town - 让像素世界更精彩 **
Made with ❤️ by the Whale Town Team
[⭐ Star](https://gitea.xinghangee.icu/datawhale/whale-town-end) | [🍴 Fork](https://gitea.xinghangee.icu/datawhale/whale-town-end/fork) | [📖 Docs](./docs/) | [🐛 Issues](https://gitea.xinghangee.icu/datawhale/whale-town-end/issues)
</div>