Skip to content

开发文档

ZnPdCo edited this page Nov 19, 2024 · 2 revisions

后端开发

后端源代码位于 backend 目录中。

后端使用 Flask 框架。

依赖安装

pip install -r requirements.txt
npm install

启动开发服务器

cd app
flask run

代码格式化

npm run format

代码检查

npm run lint

帐户验证

**注意:**如果您想部署此系统,请自行在 backend/app/custom/verify.py 中编写 verify_account(username, code) 函数,为您的 OJ 实现用户验证,以检查每个用户有且仅有一个账号,以保证评分的准确性。您需要使此函数从 OJ 中抓取 username 的 Description(或其他相关信息),并检查 Description 是否以 code 开头。如果是,则返回 True;否则,返回 False

自动获取通过状态

如果您想自动获取用户通过或尝试过的题目状态,请在文件 backend/app/custom/auto_status.py 中实现函数 auto_status(username)。此函数应该能够获取 username 通过/尝试过的题目。

自动拉取问题

如果你想自动拉取某场比赛的问题,请在文件 backend/app/custom/auto_prolems.py 中实现函数 auto_problem(params)。此函数应该能够通过参数获取问题。

此函数需要返回一个 Dict,类似于:

{
    "1": 0,
    "5": 1,
    "7": 0
}

这里,键是 pid,值表示问题是否通过(0 表示尝试过,1 表示已经通过)。如果用户没有提交特定的问题,则应省略该键值对。

请注意,这里的 pid 是指 OJ 中的 pid,而不是 Rating System 中的 pid。

前端开发

前端源代码位于 frontend 目录中。

前端使用 Vue3 框架,并使用 Vite 作为构建工具。同时使用 Fomantic UI 作为 UI 库。

依赖安装

npm install

启动开发服务器(热更新)

开发服务器默认使用 127.0.0.1:5000 作为后端 api 地址。您可以在 frontend/vite.config.js 文件中修改。

npm run dev

构建代码

npm run build

代码格式化

npm run format

代码检查

npm run lint