diff --git a/src/.vuepress/sidebar/zh.ts b/src/.vuepress/sidebar/zh.ts index 94fc869..fd52b8c 100644 --- a/src/.vuepress/sidebar/zh.ts +++ b/src/.vuepress/sidebar/zh.ts @@ -34,13 +34,8 @@ export const zhSidebar = sidebar({ children: [ "README.md", { - text: "ExamSchedule 配置", - collapsible: true, - expanded: true, - prefix: "examschedule/", - children: [ - "web-deploy.md", - ], + text: "部署教程", + link: "web-deploy.md", icon: "fa-solid fa-file-lines" }, ], @@ -51,6 +46,37 @@ export const zhSidebar = sidebar({ text: "集控", children: [ "README.md", + { + text: "集控服务器", + collapsible: true, + expanded: true, + prefix: "management-server/", + children: [ + "README.md", + { + text: "部署教程", + link: "web-deploy.md", + icon: "fa-solid fa-file-lines" + }, + "client-identify.md", + ], + icon: "fa-solid fa-file-lines" + }, + { + text: "静态托管", + collapsible: true, + expanded: true, + prefix: "examshowboard/", + children: [ + "static-config.md", + ], + icon: "fa-solid fa-file-lines" + }, + { + text: "加入集控", + link: "Join-management.md", + icon: "fa-solid fa-file-lines" + }, ], }, ], diff --git a/src/app/profile/faq.md b/src/app/profile/faq.md index e8f7bed..d7b491f 100644 --- a/src/app/profile/faq.md +++ b/src/app/profile/faq.md @@ -2,11 +2,50 @@ 此配置文件保存着考试名称, 考试考场, 考试开始/结束时间等信息。 -您可以手动编写配置文件,也可以直接使用[配置文件编辑器](https://github.com/ExamAware/DSZExamShowBoardEditor/releases/latest)编写配置文件。 +> [!tip] +> +>在新版本(即 `ExamAware2` 和 `ExamCloud` )中,已经集成了编辑器,可以略过本部分帮助。 -在新版本(即 `ExamAware2` 和 `ExamCloud` )中,已经集成了编辑器,可以略过本部分帮助。 -## 配置文件编辑器(旧版) +您可以手动编写配置文件,也可以直接使用[配置文件编辑器(legacy)](/app/profile/faq.md#配置文件编辑器-legacy)编写配置文件。 + +## 手动编写配置文件 +> [!warning] +> +> 请确保 `exam_config.json` 文件编码为 `UTF-8`,换行符为 `LF`,按照`json`文件格式填写。不然可能会出一些神奇的 Bug。 +> +> 不确定?可以使用 [VSCode](https://code.visualstudio.com/) 打开、编辑文件,右下角显示编码格式和换行方式,点击即可更改。 + + 1. 新建一个名为 `exam_config.json` 的文件 + 2. 编辑文件内容,格式如下 + ```json +{ + "examName": "考试名称", + "message": "信息", + "examInfos": [ + { + "name": "科目", + "start": "2024-12-01T07:00:00", + "end": "2024-12-01T08:00:00" + }, + { + "name": "科目/科目", + "start": "2024-12-01T09:00:00", + "end": "2024-12-01T10:00:00" + } + ] +} +``` + +> [!tip] +> +> `message`内容必填(可填空格隐藏),`examInfos` 至少需要一条数据。 +> +> 如果有两个以"/"分隔的科目可以自动转化为双行显示 + +## 配置文件编辑器(legacy) +> [!caution] +> **配置文件编辑器(legacy)不再维护** 如果您汇报使用此编辑器遇到的相关问题, **开发者可能不会受理。** 您可以前往[ExamShowBoardEditor](https://github.com/ProjectCampus-CH/DSZExamShowBoardEditor/releases/latest)获取GUI的配置文件生成软件 1.双击运行从[仓库](https://github.com/ProjectCampus-CH/DSZExamShowBoardEditor/releases/latest)下载的软件 @@ -38,41 +77,6 @@ - 点击 `删除` 按钮删除选中的考试科目 - 点击 `上移/下移` 按钮移动选中的考试科目(此按钮可以调整考试科目显示的顺序) -## 手动编写配置文件 -> [!warning] -> -> 请确保 `exam_config.json` 文件编码为 `UTF-8`,换行符为 `LF`,按照`json`文件格式填写。不然可能会出一些神奇的 Bug。 -> -> 不确定?可以使用 [VSCode](https://code.visualstudio.com/) 打开、编辑文件,右下角显示编码格式和换行方式,点击即可更改。 - - 1. 新建一个名为 `exam_config.json` 的文件 - 2. 编辑文件内容,格式如下 - ```json -{ - "examName": "考试名称", - "message": "信息", - "room": "考场号", - "examInfos": [ - { - "name": "科目", - "start": "2024-12-01T07:00:00", - "end": "2024-12-01T08:00:00" - }, - { - "name": "科目/科目", - "start": "2024-12-01T09:00:00", - "end": "2024-12-01T10:00:00" - } - ] -} -``` - -> [!tip] -> -> `message` 与 `room` 内容必填(可填空格隐藏),`examInfos` 至少需要一条数据。 -> -> 如果有两个以"/"分隔的科目可以自动转化为双行显示 - > [!tip] > ->您可以将配置文件复制到 U 盘等介质中,然后在另一台电脑上保存该文件,以实现配置文件的转移及部署;您也可以使用[集控]实现配置文件的下发及部署。 \ No newline at end of file +>您可以将配置文件复制到 U 盘等介质中,然后在另一台电脑上保存该文件,以实现配置文件的转移及部署;您也可以使用[集控](/management/)实现配置文件的下发及部署。 \ No newline at end of file diff --git a/src/community/rules.md b/src/community/rules.md index b889081..d5c0342 100644 --- a/src/community/rules.md +++ b/src/community/rules.md @@ -37,8 +37,7 @@ icon: scale-balanced ## 提问/求助 1. 提问前请在这些地方查找您要问的问题: - - [本文档](https://docs.classisland.tech) - - [常见问题](../app/faq/faq.md) + - [本文档](https://https://docs.examaware.us.kg/) - [Issues](https://github.com/ExamAware/ExamAware2-Desktop/issues?q=is%3Aissue) - 搜索引擎([必应](https://cn.bing.com/)、[百度](https://www.baidu.com/)等) @@ -48,7 +47,7 @@ icon: scale-balanced 2. 提问和求助时请提供足够的信息,提供越多有效信息越能得到帮助。您至少应该提供这些信息: - 系统环境(如操作系统版本等) - - [程序日志](../app/faq/reporting-issue.md#收集日志) + - 程序日志 - 错误堆栈信息(如有) > 在没有错误日志的情况下诊断任何问题无异于闭眼开车 diff --git a/src/management/Join-management.md b/src/management/Join-management.md new file mode 100644 index 0000000..bd5202a --- /dev/null +++ b/src/management/Join-management.md @@ -0,0 +1 @@ +本文档尚未完工…… \ No newline at end of file diff --git a/src/management/README.md b/src/management/README.md index 43ff19c..8379acd 100644 --- a/src/management/README.md +++ b/src/management/README.md @@ -16,16 +16,15 @@ category: -### 使用静态配置文件 +### 集控服务器 + +[🚀入门教程](management-server/) + + +### 使用静态托管配置文件 您可以手动编写集控配置文件,并将其托管到静态网站上。 -[🚀入门教程](examschedule/management-config.md) - - - -### 集控服务器 - -[🚀入门教程](examcloud/client-identify.md) +[🚀入门教程](examshowboard/static-config.md) diff --git a/src/management/examshowboard/static-config.md b/src/management/examshowboard/static-config.md index 40bcc12..4c3aa26 100644 --- a/src/management/examshowboard/static-config.md +++ b/src/management/examshowboard/static-config.md @@ -2,13 +2,13 @@ ## 开始使用 -本功能支持通过静态配置文件部署,也可以通过管理服务器部署。您可以根据情况自由选择部署方式。 +本功能支持通过静态配置文件部署 ### 使用静态配置文件 您可以手动编写集控配置文件,并将其托管到静态网站上。 -[集控文件编写教程](/app/profile/faq.md) +请参阅[配置文件编写教程](/app/profile/faq.md) - 新建 GitHub 公开存储仓库 - 上传您编写好的的 `exam_config.json` 文件 @@ -26,6 +26,3 @@ - 点击`请求配置`加载配置文件并进入看板(下次可直接点击`直接进入看板`加载上次配置文件) -### 集控服务器 - -不支持,请使用其他版本客户端。 diff --git a/src/management/images/bt01.png b/src/management/images/bt01.png new file mode 100644 index 0000000..77bff8a Binary files /dev/null and b/src/management/images/bt01.png differ diff --git a/src/management/images/bt02.png b/src/management/images/bt02.png new file mode 100644 index 0000000..eb6e9d3 Binary files /dev/null and b/src/management/images/bt02.png differ diff --git a/src/management/images/ec-add.png b/src/management/images/ec-add.png new file mode 100644 index 0000000..f1d317c Binary files /dev/null and b/src/management/images/ec-add.png differ diff --git a/src/management/images/ec-admin.png b/src/management/images/ec-admin.png new file mode 100644 index 0000000..e266959 Binary files /dev/null and b/src/management/images/ec-admin.png differ diff --git a/src/management/images/ec-exam.png b/src/management/images/ec-exam.png new file mode 100644 index 0000000..4f31a3d Binary files /dev/null and b/src/management/images/ec-exam.png differ diff --git a/src/management/images/ec-main.png b/src/management/images/ec-main.png new file mode 100644 index 0000000..d2858d5 Binary files /dev/null and b/src/management/images/ec-main.png differ diff --git a/src/management/images/ec-query.png b/src/management/images/ec-query.png new file mode 100644 index 0000000..748eba0 Binary files /dev/null and b/src/management/images/ec-query.png differ diff --git a/src/management/images/gh01.png b/src/management/images/gh01.png new file mode 100644 index 0000000..4f20457 Binary files /dev/null and b/src/management/images/gh01.png differ diff --git a/src/management/images/iis01.png b/src/management/images/iis01.png new file mode 100644 index 0000000..3a0d11d Binary files /dev/null and b/src/management/images/iis01.png differ diff --git a/src/management/images/iis02.png b/src/management/images/iis02.png new file mode 100644 index 0000000..f58dd49 Binary files /dev/null and b/src/management/images/iis02.png differ diff --git a/src/management/images/iis03.png b/src/management/images/iis03.png new file mode 100644 index 0000000..246d466 Binary files /dev/null and b/src/management/images/iis03.png differ diff --git a/src/management/images/iis04.png b/src/management/images/iis04.png new file mode 100644 index 0000000..3607acd Binary files /dev/null and b/src/management/images/iis04.png differ diff --git a/src/management/images/iis05.png b/src/management/images/iis05.png new file mode 100644 index 0000000..a7a56e5 Binary files /dev/null and b/src/management/images/iis05.png differ diff --git a/src/management/images/iis06.jpg b/src/management/images/iis06.jpg new file mode 100644 index 0000000..2054cb3 Binary files /dev/null and b/src/management/images/iis06.jpg differ diff --git a/src/management/images/iis07.png b/src/management/images/iis07.png new file mode 100644 index 0000000..85b7529 Binary files /dev/null and b/src/management/images/iis07.png differ diff --git a/src/management/images/iis08.png b/src/management/images/iis08.png new file mode 100644 index 0000000..984cdd3 Binary files /dev/null and b/src/management/images/iis08.png differ diff --git a/src/management/images/iis09.png b/src/management/images/iis09.png new file mode 100644 index 0000000..2204bde Binary files /dev/null and b/src/management/images/iis09.png differ diff --git a/src/management/management-server/README.md b/src/management/management-server/README.md new file mode 100644 index 0000000..8d606d0 --- /dev/null +++ b/src/management/management-server/README.md @@ -0,0 +1,64 @@ +# 集控服务器介绍 + +ExamCloudSechdule 是一个用于管理和查看考试安排的系统。它包括以下几个主要功能: + +1. **考试看板配置查询**:用户可以通过输入配置 ID 来获取考试安排的详细信息。 +![ec-query.png](../images/ec-query.png) +2. **考试安排显示**:显示考试的详细安排,包括科目、开始时间和结束时间。 +![ec-exam.png](../images/ec-exam.png) +3. **管理员后台**:管理员可以登录后台管理考试配置文件,包括创建、编辑和删除配置文件。 +![ec-admin.png](../images/ec-admin.png) +4. **明暗色主题**: 随心所欲切换主题。 + +## 文件结构 + +- `/index.php`:考试看板配置查询页面。 +- `/ExamCloudSchedule`:考试安排显示页面。 +- `/admin/login.php`:管理员登录页面。 +- `/admin/index.php`:管理员后台主页,显示所有配置文件。 +- `/admin/edit.php`:编辑或创建新的考试配置文件。 +- `/admin/detete.php`: 删除指定配置文件。 +- `/includes`: 管理员认证目录。 +- `/configs`: 安排存放目录。 + +## 使用方法 + +### 考试看板配置查询 + +1. 打开根目录页面。 +2. 输入配置 ID,例如 `room301`。 +3. 点击“获取配置”按钮,查看考试安排的详细信息。 +4. 点击“进入”按钮,跳转到考试安排显示页面。 + +### 考试安排显示 + +1. 上一部操作后会打开 `ExamCloudSchedule/index.html` 页面。 +2. 页面会自动根据 URL 参数 `configId` 显示相应的考试安排。 + +### 管理员后台 + +1. 点击 `管理后台` 或者,手动打开 `admin` 目录,输入管理员用户名和密码进行登录。 +> [!tip] +> +> 管理员用户名和密码初始均为 `admin`。 + +2. 登录后,跳转到 `admin/index.php` 页面,显示所有配置文件。 +![ec-admin.png](../images/ec-admin.png) +3. 点击“新建配置”按钮,跳转到 `admin/edit.php` 页面,创建新的配置文件。 +![ec-add.png](../images/ec-add.png) +4. 在配置文件列表中,可以点击“编辑”按钮编辑配置文件,点击“删除”按钮删除配置文件,点击“预览”按钮查看配置文件的详细信息。 + +## 配置文件格式 + +配置文件为 JSON 格式,包含以下字段: + +- `examName`:考试名称。 +- `message`:考试提示语。 +- `room`:考场号。 +- `examInfos`:考试科目安排列表,每个科目包含以下字段: + - `name`:科目名称。 + - `start`:开始时间。 + - `end`:结束时间。 + +## 开始使用/如何部署? +请参阅[部署教程](./web-deploy.md)。 diff --git a/src/management/examcloud/client-identify.md b/src/management/management-server/client-identify.md similarity index 100% rename from src/management/examcloud/client-identify.md rename to src/management/management-server/client-identify.md diff --git a/src/web/examschedule/web-deploy.md b/src/management/management-server/web-deploy.md similarity index 84% rename from src/web/examschedule/web-deploy.md rename to src/management/management-server/web-deploy.md index 89fef06..7efdfc4 100644 --- a/src/web/examschedule/web-deploy.md +++ b/src/management/management-server/web-deploy.md @@ -1,14 +1,8 @@ # 部署教程 -## 前置条件 - -填写或者用工具生成 `exam_config.json` 文件,示例如下: - -请参阅[编写配置文件](/app/profile/faq.md)。 - ## 使用Python部署 - 确保安装[Python](https://www.python.org/downloads/)。 - - 从[仓库](https://github.com/ExamAware/ExamSchedule)下载最新版的项目代码 + - 下载最新版的项目代码 - 执行以下命令启动本地服务器: ```bash python3 -m http.server 8000 @@ -25,7 +19,7 @@ ![bt-1](../images/bt01.png) - 在 `域名` 中输入您的域名。 ![bt2](../images/bt02.png) - - 在 `网站根目录` 中上传[仓库](https://github.com/ExamAware/ExamSchedule)中最新版的项目代码。 + - 在 `网站根目录` 中上传最新版的项目代码。 - 点击 `确定` 即可完成部署。 > [!tip] > @@ -57,12 +51,12 @@ 5.勾选`Internet Information Services`并点击`确定` 6.点击`确定`,等待安装完成。 ![iis-4](../images/iis04.png) -- 部署`ExamSchedule`服务 +- 部署`ExamCloudSechdule`服务 1.在任务栏的`搜索框`中输入`IIS`并点击`IIS管理器`进入管理页面。 ![iis-5](../images/iis05.png) 2.在左侧导航栏中,选择`网站`右键点击`添加网站`。 ![iis-6](../images/iis06.jpg) -3.在此输入网站名称:`ExamSchedule` +3.在此输入网站名称:`ExamCloudSechdule` - 物理路径:`C:\inetpub\wwwroot` - IP地址:可以是全部未分配,也可以是网卡地址,建议使用网卡地址,这样校园局域网下,就可以通过网卡地址访问 - 端口:最好是默认的80端口,一般网站访问网址也是默认访问80的,不需要同时输入网址和端口,可通过网址直接访问 @@ -76,12 +70,12 @@ ![iis-8](../images/iis08.png) 5.上传`ExamSchedule`项目代码到网站根目录。 ![iis-9](../images/iis09.png) -6.最后,在浏览器中输入您的网卡地址(教程中的地址为`192.168.1.16`),看到如下图片即部署成功 -![iis-10](../images/iis10.png) +6.最后,在浏览器中输入您的网卡地址(教程中的地址为`192.168.1.16`),看到项目图片即部署成功 +![ec-main](../images/ec-main.png) > [!tip] > 如果您希望在公网访问,需要在域名提供商处添加A记录,将域名解析到您的服务器IP地址,并填写正确的主机名。 > - + # 终极部署方案 都不会部署?或者……尝试终极解决方案: -邮箱联系 `admin@fhzit.top` ,如果我有空我可以为你的安装提供帮助,当然你也可以来和我交流问题😊 +邮箱联系 `admin@fhzit.top` ,如果我有空我可以为你的安装提供帮助😊 diff --git a/src/web/README.md b/src/web/README.md index b42235c..8909bcb 100644 --- a/src/web/README.md +++ b/src/web/README.md @@ -4,28 +4,52 @@ index: false icon: server category: - 使用指南 + - 部署教程 --- -由于 ExamAware 桌面端受限制于框架问题,无法在除[指定系统平台](/app/setup.md)外上运行。因此,为了更好地满足用户需求,我们推出了网页端应用。 +由于 ExamAware 桌面端受限制于框架问题,无法在除[指定系统平台](/app/setup.md#检查系统需求)外的老旧平台系统上运行。因此,为了更好地满足用户需求,我们推出了网页端考试看板。 +![iis-10](../web/images/es.png) -## 开始使用 -本应用支持多种方式部署。您可以根据情况自由选择部署方式。 +## 功能 - +- 实时显示当前时间、当前考试科目、考试起止时间、剩余时间及考试状态。 +- 支持全屏显示。 +- 支持设置时间偏移和考场信息,并保存到浏览器Cookie中。 +- 支持临时编辑消息,并保存到浏览器Cookie中(3天后到期)。 -### 使用静态配置文件 +### 设置说明 -您可以手动编写集控配置文件,并将其托管到静态网站上。 +点击设置按钮可以打开设置窗口,进行以下配置: -[🚀入门教程](examschedule/management-config.md) +- **时间偏移**:用于调整显示的时间,单位为秒。 +- **考场信息**:用于显示当前考场的名称。 +- **页面缩放倍数**:用于调整页面显示的缩放倍数。 - +配置完成后点击保存按钮,设置将会保存到浏览器的Cookie中,并立即生效。 -### 集控服务器 +### 编辑消息 -[🚀入门教程](examcloud/client-identify.md) +点击编辑消息按钮可以打开消息编辑窗口,进行以下操作: + +- **消息内容**:用于临时编辑显示的消息。 + +编辑完成后点击保存按钮,消息将会保存到浏览器的Cookie中,并立即生效(3天内有效)。 + +## 软件截图 + +### 主界面 +![main](../web/images/es.png) + +#### 考试展板界面 +![exam](../web/images/es-exam.png) + +#### 电子钟表界面 +![time](../web/images/es-time.png) + + +## 开始使用/如何部署? +请参阅[部署教程](/web/web-deploy.md)。 - diff --git a/src/web/images/es-exam.png b/src/web/images/es-exam.png new file mode 100644 index 0000000..70c5d1d Binary files /dev/null and b/src/web/images/es-exam.png differ diff --git a/src/web/images/es-time.png b/src/web/images/es-time.png new file mode 100644 index 0000000..aa69e5f Binary files /dev/null and b/src/web/images/es-time.png differ diff --git a/src/web/images/iis10.png b/src/web/images/es.png similarity index 100% rename from src/web/images/iis10.png rename to src/web/images/es.png diff --git a/src/web/web-deploy.md b/src/web/web-deploy.md new file mode 100644 index 0000000..1d83a6b --- /dev/null +++ b/src/web/web-deploy.md @@ -0,0 +1,87 @@ +# 部署教程 + +## 前置条件 + +填写或者用使用`ExamAware2` 或 `ExamCloud`集成的编辑器生成 `exam_config.json` 配置文件 + +请参阅[配置文件](/app/profile/faq.md)。 + +## 使用Python部署 + - 确保安装[Python](https://www.python.org/downloads/)。 + - 下载最新版的项目代码 + - 执行以下命令启动本地服务器: + ```bash + python3 -m http.server 8000 + ``` + - 打开浏览器,访问 `http://localhost:8000` 或`http://IP:8000/`即可查看考试安排。 + +> [!tip] +> 8000端口可以自行修改成您需要的端口。 + +## 使用宝塔面板部署 + - 确保安装[宝塔面板](https://www.bt.cn/new/download.html) + - 将域名解析A记录解析到您的服务器IP地址。 + - 在宝塔面板中,点击 `网站` -> `HTML项目`-> `添加站点`。 + ![bt-1](../web/images/bt01.png) + - 在 `域名` 中输入您的域名。 + ![bt2](../web/images/bt02.png) + - 在 `网站根目录` 中上传最新版的项目代码。 + - 点击 `确定` 即可完成部署。 +> [!tip] +> +>如果您没有域名,可以前往[购买域名](https://www.dynadot.com/?s59Ms8lK8u7gQ)。 +>或者您也可以直接使用IP+端口直连访问。 +> + +## 使用GitHub Page部署 + +- 将项目代码fork到您的GitHub仓库。 +- 在GitHub仓库中,进入 `Settings` -> `Pages`。 +- 在 `Source` 部分选择 `main` 分支并保存。 +![gh-pages](../web/images/gh01.png) +- GitHub Pages 将会自动部署项目,稍后即可通过提供的URL访问。 +> [!tip] +> +> 您可以在`Custom domain`部分填入您的自定义域名,并将您的自定义域名`CNAME`解析到`{owner}.github.io`。 +> + +## 使用IIS部署 +- 开启IIS功能 +1.打开`设置` +![iis-1](../web/images/iis01.png) +2.输入`控制面板` +![iis-2](../web/images/iis02.png) +3.点开`程序` +![iis-3](../web/images/iis03.png) +4.点击`启用或关闭Windows功能` +5.勾选`Internet Information Services`并点击`确定` +6.点击`确定`,等待安装完成。 +![iis-4](../web/images/iis04.png) +- 部署`ExamSchedule`服务 +1.在任务栏的`搜索框`中输入`IIS`并点击`IIS管理器`进入管理页面。 +![iis-5](../web/images/iis05.png) +2.在左侧导航栏中,选择`网站`右键点击`添加网站`。 +![iis-6](../web/images/iis06.jpg) +3.在此输入网站名称:`ExamSchedule` +- 物理路径:`C:\inetpub\wwwroot` +- IP地址:可以是全部未分配,也可以是网卡地址,建议使用网卡地址,这样校园局域网下,就可以通过网卡地址访问 +- 端口:最好是默认的80端口,一般网站访问网址也是默认访问80的,不需要同时输入网址和端口,可通过网址直接访问 +- 主机名:这里设置网址,可以通过这个网址直接访问,当端口不是80时,需要网址加端口才能访问(当仅在局域网访问的情况下,主机名可以随意填写) + +填写完成后,点击`确定`。 + +![iis-7](../web/images/iis07.png) + +4.点击右侧的`浏览`会跳转到网站的根目录 +![iis-8](../web/images/iis08.png) +5.上传`ExamSchedule`项目代码到网站根目录。 +![iis-9](../web/images/iis09.png) +6.最后,在浏览器中输入您的网卡地址(教程中的地址为`192.168.1.16`),看到如下图片即部署成功 +![iis-10](../web/images/es.png) +> [!tip] +> 如果您希望在公网访问,需要在域名提供商处添加A记录,将域名解析到您的服务器IP地址,并填写正确的主机名。 +> + +# 终极部署方案 +都不会部署?或者……尝试终极解决方案: +邮箱联系 `admin@fhzit.top` ,如果我有空我可以为你的安装提供帮助😊