Skip to content

Commit

Permalink
新的前后端
Browse files Browse the repository at this point in the history
  • Loading branch information
zjnbwxq committed Oct 10, 2024
1 parent 844db08 commit a8662c0
Show file tree
Hide file tree
Showing 4,222 changed files with 439,997 additions and 0 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
3 changes: 3 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
VUE_APP_BASE_URL=/
PORT=3000
JWT_SECRET=your_jwt_secret_here
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"git.ignoreLimitWarning": true
}
166 changes: 166 additions & 0 deletions Website_WorkFlow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
# 网站开发工作流程

## 1. 页面设计

### 1.1 确定视觉风格

- **主题色彩与风格**
- 确定网站的主色调和整体视觉风格。
- 设计网站的 Logo、图标和其他视觉元素。

### 1.2 布局设计

- **首页**
- 展示游戏简介、特色功能和最新公告。
- **隐私政策页面**
- 详细说明用户数据的使用方式和保护措施。
- **游戏详情页面**
- 介绍游戏的玩法、截图和玩家评价。
- **用户中心**
- 提供用户信息查看、账号管理和设置功能。

### 1.3 响应式设计

- **多设备适配**
- 确保网站在电脑、平板、手机等不同设备上都有良好的显示效果。
- **浏览器兼容**
- 保证网站在主流浏览器(Chrome、Firefox、Safari、Edge)上的兼容性。

## 2. 多语言支持

### 2.1 语言资源文件

- **创建语言包**
- 准备简体中文、繁体中文和英文的语言文本文件(如 JSON、YAML 等格式)。
- **文本提取**
- 将页面中的文本内容替换为可翻译的语言标识符。

### 2.2 引入国际化框架

- **前端国际化库**
- 如果使用 Vue.js,集成 `vue-i18n`
- 如果使用 React,集成 `react-intl``i18next`

### 2.3 实现语言切换

- **用户选择**
- 在网站顶部或底部添加语言切换组件(如下拉菜单)。
- **默认语言**
- 根据用户浏览器的语言设置自动选择默认语言。

## 3. 用户系统

### 3.1 用户注册与登录

- **注册功能**
- 用户使用邮箱和密码注册账号。
- **登录功能**
- 支持邮箱密码登录和第三方登录(后续可扩展)。
- **密码安全**
- 使用强加密算法(如 bcrypt)加密存储用户密码。

### 3.2 Discord 账号绑定

- **OAuth2 授权**
- 集成 Discord 的 OAuth2 流程,获取用户的 Discord 信息。
- **绑定与解绑**
- 在用户中心提供绑定和解绑 Discord 账号的功能。
- **账号换绑**
- 允许用户将角色数据换绑到另一个 Discord 账号。

## 4. 内购功能

### 4.1 支付系统集成

- **选择支付平台**
- 选择支持全球支付的平台,如 Stripe 或 PayPal。
- **支付流程设计**
- 用户选择商品 → 进行支付 → 支付成功后生成兑换码。

### 4.2 兑换码生成与管理

- **生成兑换码**
- 支付成功后,系统自动生成唯一的兑换码。
- **兑换码管理**
- 在数据库中存储兑换码信息(码值、关联用户、商品、状态等)。
- **用户查看**
- 用户可在个人中心查看已购买的兑换码和使用状态。

### 4.3 安全性考虑

- **数据传输安全**
- 全站使用 HTTPS,确保数据传输加密。
- **防欺诈措施**
- 验证支付结果,防止伪造支付请求。

## 5. 前后端交互

### 5.1 API 接口设计

- **用户接口**
- 注册、登录、登出、获取用户信息等。
- **账号绑定接口**
- 获取 Discord 授权链接、绑定和解绑操作。
- **支付接口**
- 创建订单、接收支付回调、查询订单状态。
- **兑换码接口**
- 生成、查询和验证兑换码。

### 5.2 身份验证与安全

- **Token 认证**
- 使用 JWT(JSON Web Token)进行用户身份验证。
- **权限控制**
- 限制敏感操作,确保只有授权用户才能执行。

## 6. 部署与测试

### 6.1 开发环境搭建

- **本地开发环境**
- 设置前后端开发框架和必要的开发工具。
- **数据库连接**
- 配置本地或测试数据库,便于数据操作和测试。

### 6.2 测试

- **功能测试**
- 测试各模块功能是否按预期运行。
- **兼容性测试**
- 确保网站在不同设备、不同浏览器上的表现一致。
- **安全测试**
- 检查并修复常见的安全漏洞(如 SQL 注入、XSS 攻击)。

### 6.3 部署上线

- **服务器部署**
- 将网站部署到 AWS EC2 实例。
- **域名和 SSL 配置**
- 绑定域名,配置 SSL 证书,实现 HTTPS 访问。
- **持续集成**
- 设置自动化部署流程,方便后续更新和维护。

## 7. 优化与维护

### 7.1 性能优化

- **代码优化**
- 压缩和优化前端代码,提高加载速度。
- **缓存策略**
- 设置合理的缓存策略,减少服务器压力。

### 7.2 监控与日志

- **日志记录**
- 记录系统日志和用户行为日志,便于问题排查。
- **异常监控**
- 集成监控工具,及时发现并处理异常情况。

### 7.3 功能迭代

- **用户反馈**
- 收集用户意见和建议,不断改进网站功能。
- **新增功能**
- 根据需求,开发新的功能模块,提升用户体验。

---
131 changes: 131 additions & 0 deletions WorkFlow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
# 开发进度

目前已完成**需求分析与规划****环境搭建**,正在进行**网站开发**,暂未遇到问题。

---

# 工作流程

## 阶段一:需求分析与规划

1. **详细梳理需求**
- 确认所有功能需求和细节。
- 列出优先级,确定核心功能和次要功能。

2. **技术选型**
- **后端开发**:选择合适的编程语言(如 Node.js、Python)。
- **前端开发**:选择前端框架(如 React、Vue.js)。
- **数据库**:设计数据库结构,使用 AWS Aurora RDS。
- **部署环境**:配置 AWS EC2 实例。

3. **架构设计**
- 绘制系统架构图,明确各模块的交互方式。
- 定义 API 接口规范。

## 阶段二:环境搭建

1. **配置 AWS EC2 实例**
- 设置操作系统和必要的运行环境。
- 配置安全组,开放必要的端口。

2. **设置数据库**
- 在 AWS Aurora RDS 上创建数据库实例。
- 设计数据库表结构,创建数据表和关系。

3. **域名和 SSL**
- 购买域名并配置 DNS。
- 安装 SSL 证书,确保网站使用 HTTPS 协议。

## 阶段三:网站开发

1. **页面设计**
- 设计用于展示隐私政策和游戏详情的页面。
- 确保页面响应式,适配不同设备。

2. **多语言支持**
- 实现简体中文、繁体中文和英文的语言切换功能。
- 准备各语言的内容文案。

3. **用户系统**
- 开发用户注册、登录功能。
- 实现 Discord 账号绑定和解绑功能。

4. **内购功能**
- 集成支付网关,支持用户在线购买。
- 生成兑换码,供 Discord Bot 使用。

## 阶段四:Discord Bot 开发

1. **基础功能搭建**
- 使用 Discord API 创建 Bot 并上线。
- 实现斜杠命令「/」的基本架构。

2. **多语言支持**
- 根据用户的语言偏好,返回相应语言的回复。
- 准备各功能的多语言文本。

3. **游戏功能开发**
- **种田和养殖**:实现玩家种植作物和饲养动物的功能。
- **探索与任务**:设计探索不同地区和完成任务的机制。
- **经济系统**:开发跳蚤市场交易和商店购买物品的功能。
- **娱乐功能**:制作钓鱼、打麻将等小游戏。
- **战斗系统**:设计组队 Boss 战的规则和流程。
- **其他功能**:如开保险箱等。

4. **音乐播放功能**
- 实现 Bot 加入语音频道并播放音乐的功能。
- 处理音乐队列和控制指令。

5. **数据交互**
- 与数据库交互,保存和更新玩家的游戏数据。
- 确保数据的实时性和一致性。

## 阶段五:网站与 Bot 集成

1. **账号绑定**
- 在网站上提供绑定和解绑 Discord 账号的接口。
- 确保数据在网站和 Bot 之间同步。

2. **兑换码使用**
- 实现 Bot 读取和验证兑换码的功能。
- 处理兑换码兑换的逻辑。

## 阶段六:测试

1. **功能测试**
- 全面测试所有功能,确保无逻辑错误。
- 测试多语言切换和显示。

2. **安全测试**
- 检查并修复潜在的安全漏洞。
- 确保支付和用户数据的安全性。

3. **性能测试**
- 评估系统在高并发情况下的表现。
- 优化代码和数据库查询。

## 阶段七:部署与发布

1. **部署到生产环境**
- 将网站和 Bot 的代码部署到 AWS EC2 实例。
- 配置自动化部署流程。

2. **域名解析与 CDN**
- 完成域名解析,配置 CDN 加速(如有需要)。

3. **上线发布**
- 在相关平台和社区宣传,邀请用户体验。
- 提供反馈渠道,收集用户意见。

## 阶段八:运营与维护

1. **监控与维护**
- 实时监控系统运行状态,处理异常情况。
- 定期备份数据库和重要数据。

2. **功能更新**
- 根据用户反馈,迭代和优化功能。
- 持续添加新内容和活动。

3. **客服支持**
- 提供用户支持,解答问题和处理投诉。
2 changes: 2 additions & 0 deletions backend/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
node_modules
npm-debug.log
7 changes: 7 additions & 0 deletions backend/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
PORT=3000
DB_HOST=bot-1728.cluster-cpoewwoau5pn.eu-west-2.rds.amazonaws.com
DB_USER=botbot
DB_PASS=Ymy1062325450!
DB_NAME=bot-1728
JWT_SECRET=development_secret
DB_PORT=5432
19 changes: 19 additions & 0 deletions backend/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
FROM node:14

# 设置工作目录
WORKDIR /usr/src/app

# 复制 package.json 和 package-lock.json(如果存在)
COPY package*.json ./

# 安装依赖
RUN npm install

# 复制后端代码
COPY . .

# 暴露端口
EXPOSE 3000

# 运行应用
CMD ["node", "server.js"]
6 changes: 6 additions & 0 deletions backend/config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
require('dotenv').config();

module.exports = {
jwtSecret: process.env.JWT_SECRET || 'development_secret',
// 其他配置项...
};
15 changes: 15 additions & 0 deletions backend/config/database.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
const { Sequelize } = require('sequelize');

const sequelize = new Sequelize(process.env.DB_NAME, process.env.DB_USER, process.env.DB_PASS, {
host: process.env.DB_HOST,
port: process.env.DB_PORT,
dialect: 'postgres',
dialectOptions: {
ssl: {
require: true,
rejectUnauthorized: false // 如果遇到SSL问题,可能需要这个选项
}
}
});

module.exports = sequelize;
17 changes: 17 additions & 0 deletions backend/middleware/auth.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
const jwt = require('jsonwebtoken');

const authMiddleware = (req, res, next) => {
const token = req.header('x-auth-token');
if (!token) {
return res.status(401).json({ message: '无访问权限,请先登录' });
}
try {
const decoded = jwt.verify(token, process.env.JWT_SECRET);
req.userId = decoded.userId;
next();
} catch (error) {
res.status(401).json({ message: '无效的令牌' });
}
};

module.exports = authMiddleware;
Loading

0 comments on commit a8662c0

Please sign in to comment.