From 94ed27e80ea2ecd96880f0197a34dc1bb3f26391 Mon Sep 17 00:00:00 2001 From: yyc12345 Date: Mon, 14 Sep 2026 12:02:30 +0800 Subject: [PATCH] doc: initialize project with README and prompt --- PROMPT.md | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 6 +++++ 2 files changed, 74 insertions(+) create mode 100644 PROMPT.md create mode 100644 README.md diff --git a/PROMPT.md b/PROMPT.md new file mode 100644 index 0000000..e0953a6 --- /dev/null +++ b/PROMPT.md @@ -0,0 +1,68 @@ +我正在编写一个名为Ballance Atlas的项目,根据后文中的需求,给出给定问题的解决方案。 + +# 概述 + + +# 问题 + +- Agent 1:使用RESTful设计前端和后端用于通信的接口。你不需要知道前端和后端由何种语言编写,你不被允许编写任何代码,你只能设计接口。 +- Agent 2:假定后端使用PostgreSQL作为数据库,请设计数据库的结构(DDL),并给出可能会用到的查询语句(DML)。在设计时需要考虑如下因素: + * 如果有能通过PostgreSQL的SQL语句完成,且不会造成大量延迟的功能,例如验证字段存在,确保两个table之间字段的相互引用正确等。可以直接通过编写SQL语句完成,不要将其交付给后端手动完成。 + + +# 需求 + +## 账号系统 + +- 一个标准的账号需要有以下组成部分: + * UID:一个仅由ASCII数字,字母,下划线和dash组成的唯一标识符,用于锚定用户。注册时一旦确认,不可修改。 + * nickname:用户自定义的名称,不可重复,但用户可修改。 + * 密码:密码是必需的,且允许用户更换。 + * 邮箱:用户接收Atlas发送的邮件,例如重置密码邮件的邮箱。 +- 账户登录时,请遵循标准的账户登录保护原则,例如加盐等。 +- 支持OAuth2协议,允许用户使用本系统的账号系统登录其他网站。 +- 用户忘记密码时,遵循常见的忘记密码更换方法(使用IMAP等协议向用户发送邮件)。 +- 允许封禁用户,被封禁的用户无权登录和进行任何操作。 +- 每一个账号可具有一个或多个权限组,权限组未来是可扩展的(指可以从代码层面轻易扩展,而不是允许用户自行添加新权限)。目前有以下权限组: + * 根:对系统所有方面拥有完全操作权限(相当于组合其他所有权限)。 + * 管理员:可以对用户进行任何操作,例如重置昵称,重置密码,强制设定邮箱,设定用户组等。 + * 记录榜维护员:负责审查记录榜,可以强制删除有问题的记录,也可以录入从外部导入的记录。 + * 地图维护员:可以无限制地上传地图。负责设定地图的上架状态,强制设置地图属性等操作。 + * 比赛举办者:允许创建比赛,登记比赛记录。 + * bmmo服主:允许bmmo以该人身份登录系统,并更新mp状态。 + +## 地图系统 + +- 一张地图应当包含以下数据: + * 地图名称:以原始语言显示的地图名称 + * 地图英语名称:该地图名称的英语翻译 + * 一张雷达图,包含难度,有趣度,可重复游玩性,美观度等。雷达图的维度在未来应当可在代码中轻易扩展。雷达图的数据来源于用户投票。每个用户只能投票一次,投票完成后可以修改自己的投票内容。 + * 红黑榜:用户可以给当前地图投票红黑票。红票表示支持,黑票表示不支持。用户只能投一票,投票后可修改。最终结果以类似steam的好评如潮,差评如潮等结果展示在界面上。 + * 一个状态,用于表示当前地图的状态。类似于osu的地图的机制。参加:https://osu.ppy.sh/wiki/zh/Beatmap/Category + + +- 所有玩家天生就可以上传地图。 +- 上传地图的速率限制在每天一张。对于地图的版本更新限制在一小时一次。 +- 地图大小不得超过32MB(未来该数字可通过修改代码轻易修改) + + +## 排行榜系统 + +- 所有ranked的地图都有排行榜 +- 排行榜要有sr时间和hs分数(非零整数) +- + + + + + + +## 比赛系统 + + + + + +- 每场比赛结束后,按照上传的排名数据,使用elu算法,重新计算人员的名次。 + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..34c3b9a --- /dev/null +++ b/README.md @@ -0,0 +1,6 @@ +# Atlas + +**Ballance Unified Online Platform.** + +WIP... +