这是我做了很久的一个完整游戏社区平台,功能特别多
- **游戏商店**:类似Steam那种网页版商店,用户可以用贡献值购买游戏,有虚拟物品、兑换券、实物三种类型,支持退款(24小时内且未下载)
- **求游戏任务广场**:用户可以发布求游戏请求,别人帮忙上传完成后能获得贡献值,每日最多发布5个请求
- **API授权系统**:支持第三方网站用LVMO_GAME账号登录,类似OAuth2,有验证用户凭据、获取会话状态、获取用户游戏列表这些API
- **用户系统**:注册需要审批,密码用bcrypt加密,有封禁机制(支持临时封禁和永久封禁),封禁后能提交申诉,管理员审批后自动解封
- **私信系统**:用户之间可以发消息,实时通知,有未读提示
- **开发者功能**:用户可以申请成为开发者,上传原创游戏,管理自己的项目
- **大文件分块上传**:支持最大100GB的文件上传,用分块上传,支持文件夹结构,断点续传
- **充值系统**:支持支付宝和微信充值(有二维码)
- **管理后台**:管理员可以审批用户、管理开发者、封禁用户、处理申诉、管理充值订单、管理游戏项目
还有很多细节,比如在线用户检测,浏览量统计,下载量统计,游戏文件大小计算,敏感词过滤(虽然这个版本好像没完全实现,但架构有了)
另外非常抱歉由于这个项目存在我的夸克网盘上项目实在太大了所以游戏资源文件夹没有下载下来所以某些功能无法演示!
后端用Flask框架,前端纯HTML+CSS+JavaScript(没有用复杂框架),数据存在JSON文件里(users.json, games.json, conversations.json, notifications.json, game_requests.json这些)
我主要做了这些核心功能:
1. **API授权模块**
- `/api/auth/verify` - 验证用户密码
- `/api/auth/status` - 检查会话状态
- `/api/users/me/games` - 获取用户购买的游戏列表
- bcrypt加密密码,安全验证
- 第三方网站可以集成登录
- `/auth_sync_demo` - 演示页面
2. **大文件分块上传**
- `handle_chunked_upload()` 函数处理分块
- `upload_chunk` 接口接收分块
- `upload_final` 接口合并文件
- 支持文件夹结构,保留相对路径
- 最大支持100GB文件上传!
- 分块上传进度实时显示
3. **用户与权限系统**
- 用户注册需要管理员审批
- 封禁机制:临时封禁(分钟/小时/天)、永久封禁
- 申诉系统:用户可以提交申诉,管理员审批后自动解封
- 开发者申请与审批
- 主副管理员权限分离
4. **游戏商店与交易**
- 贡献值系统:购买游戏消耗,充值获得
- 退款逻辑:虚拟物品24小时内未下载可退款,兑换券未使用可退款
- 虚拟物品下载时标记已下载状态
5. **任务广场与游戏请求**
- 用户每日最多发布5个求游戏请求
- 接受任务后自动跳转到上传页面
- 完成任务奖励贡献值
6. **实时消息与通知**
- 用户间私信聊天
- 在线用户检测
- 通知系统,未读提示
7. **数据存储**
- JSON文件存储,虽然简单但够用
- 有文件锁机制防止并发问题
- Windows和Linux都兼容
遇到的问题:
- 文件并发写入:加了锁机制解决
- 大文件上传超时:分块上传解决
- 密码安全:bcrypt加密解决
- 第三方登录安全:用token机制解决
这个项目投入了很多精力,功能真的很完整!现在虽然换了电脑但核心代码都在,非常适合作为项目案例!!!