mirror of
https://github.com/fumiama/paper-manager.git
synced 2026-06-05 07:50:23 +08:00
164 lines
7.7 KiB
Markdown
164 lines
7.7 KiB
Markdown
# paper-manager
|
||
面向教师的试卷网络管理系统,基于Golang+vben。项目由前端后端两大部分组成,没有中间件。
|
||
|
||
# main.go
|
||
统合前后端为单一可执行文件,静态访问交给前端,API部分则转交后端处理。
|
||
## 参数
|
||
- **-l**: 设置监听地址与端口
|
||
## 监听处理点位
|
||
- **/api/\*\*\***: 所有信令 API
|
||
- **/file/\*\*\***: 所有上传的文件(动态文件)
|
||
- **/upload**: 上传文件接口,上传的文件会统一存至`./data/file/`以供访问
|
||
|
||
|
||
# 前端
|
||
> 位于`frontend`文件夹
|
||
|
||
基于`vben`编写前端页面并编译为静态文件以供`main.go`嵌入。
|
||
|
||
## 登录页 /login
|
||
|
||
### 登录
|
||
输入账号密码登录。登录成功后,前端将查询并缓存用户名、权限、头像、简介等信息备用,同时导航到指定的家页面。
|
||
- **课程组长**:导航到分析页`/dashboard/analysis`
|
||
- **其他人**:导航到工作台`/dashboard/workbench`
|
||
> 登录时将依次访问`/api/getLoginSalt` `/api/login` `/api/getUserInfo`
|
||
|
||

|
||
|
||
### 忘记密码
|
||
点击`忘记密码`后填写用户名与手机号码,再点击`重置`,即可将重置消息报告给课程组长,由课程组长电话联系确认无误后,在系统中批准进行密码重置。
|
||
> 上报消息时访问`/api/resetPassword`
|
||
|
||
<table>
|
||
<tr>
|
||
<td align="center"><img src="https://user-images.githubusercontent.com/41315874/226824943-4b8f8a24-4393-4c90-bd27-f7ca38e8f01c.png"></td>
|
||
<td align="center"><img src="https://user-images.githubusercontent.com/41315874/226824951-ae61494c-d6ce-4358-8fa3-f6b24eee3afc.png"></td>
|
||
</tr>
|
||
<tr>
|
||
<td align="center">填写信息</td>
|
||
<td align="center">上报消息</td>
|
||
</tr>
|
||
</table>
|
||
|
||
### 注册
|
||
点击`注册`后填写用户名、手机号与密码,再点击`注册`,即可将注册消息报告给课程组长,由课程组长电话联系确认无误后,在系统中批准以所填信息创建账号。
|
||
> 上报消息时访问`/api/register`
|
||
|
||
<table>
|
||
<tr>
|
||
<td align="center"><img src="https://user-images.githubusercontent.com/41315874/226804117-40cfe055-d4ca-440f-9129-1599a126f520.png"></td>
|
||
<td align="center"><img src="https://user-images.githubusercontent.com/41315874/226804339-936e38df-e8ea-4d85-a29f-75f191538fee.png"></td>
|
||
</tr>
|
||
<tr>
|
||
<td align="center">填写信息</td>
|
||
<td align="center">上报消息</td>
|
||
</tr>
|
||
</table>
|
||
|
||
## 个人设置 /settings
|
||
|
||
<img align="right" src="https://user-images.githubusercontent.com/41315874/226120888-ce79c227-7f0f-4681-ab74-99ce4433d768.png" alt="settings" />
|
||
|
||
个人设置位于右上角状态栏头像的下拉列表中,点击后即可对用户自己的信息进行设置。
|
||
### 基本设置
|
||
对用户的昵称、个人简介与头像进行自定义设置。
|
||
> 上传头像时访问`/upload`
|
||
|
||
> 保存设置时访问`/api/setUserInfo`
|
||
|
||

|
||
|
||
### 安全设置
|
||
对用户的密码、联系方式进行修改。
|
||
- **密码**:导航至`/settings/password`进行设置,成功后将自动退出当前登录,同时在系统消息中通知课程组长。
|
||
- **联系方式**:导航至`/settings/contact`进行设置,成功后会在系统消息中通知课程组长。
|
||
> 设置密码时访问`/api/setPassword`
|
||
|
||
> 设置联系方式时访问`/api/setContact`
|
||
|
||

|
||
|
||
## 注销
|
||
|
||
<img align="right" src="https://user-images.githubusercontent.com/41315874/226120865-9f8d57bf-3884-420e-9ff6-008f50fb52d6.png" alt="logout" />
|
||
|
||
该功能位于右上角状态栏头像的下拉列表中,点击`退出系统`后即可注销登录。
|
||
> 注销时访问`/api/logout`
|
||
|
||
## 仪表板/分析页 /dashboard/analysis
|
||
此页仅课程组长可见,向课程组长展示近一年的访问量信息。
|
||
> 载入时访问`/api/getAnnualVisits`
|
||
|
||

|
||
|
||
## 仪表板/工作台 /dashboard/workbench
|
||
显示用户收到的消息,用户可以选择`删除`已读消息。对于课程组长,还提供对`注册`和`重置密码`消息的快捷处理按钮`接受`,可以快速执行相应操作。下面是一个演示。
|
||
> 载入时访问`/api/getUsersCount` `/api/getMessageList`
|
||
|
||
> 处理消息时访问`/api/acceptMessage` `/api/delMessage`
|
||
### 1. 课程组长工作台
|
||
> 登入系统,修改了自己的信息,又收到了两个用户的注册请求
|
||
|
||

|
||
|
||
### 2. 课程组长工作台
|
||
> 接受2人注册请求
|
||
|
||

|
||
|
||
### 3. A老师(filemgr)工作台
|
||
> 课程组长接受注册申请后,更改了个人信息
|
||
|
||

|
||
|
||
### 4. B老师(user)工作台
|
||
> 课程组长接受注册申请后,更改了个人信息和联系方式
|
||
|
||

|
||
|
||
### 5. 课程组长工作台
|
||
> 最终的消息状态
|
||
|
||

|
||
|
||
## 仪表板/用户管理 /dashboard/account
|
||
此页仅课程组长可见,提供用户管理功能,可以禁用用户、编辑用户权限和信息。下面是一个管理用户的例子。
|
||
> 载入时访问`/api/getUsersList`
|
||
|
||
> 禁用账户时访问`/api/disableUser`
|
||
|
||
> 设置用户信息时访问`/api/setUserInfo`
|
||
|
||
> 设置用户权限时访问`/api/setRole`
|
||
|
||
### 1. 上一板块演示后的用户管理界面状态
|
||

|
||
### 2. 课程组长编辑filemgr用户的信息
|
||

|
||
### 3. A老师(filemgr)工作台上的显示
|
||

|
||
### 4. 课程组长禁用filemgr用户
|
||

|
||
### 5. filemgr用户无法登陆
|
||

|
||
### 6. filemgr用户通过重置密码向课程组长发出恢复账号申请
|
||

|
||
### 7. 课程组长接受申请
|
||

|
||
### 8. A老师(filemgr)成功登录进入工作台
|
||

|
||
### 9. 课程组长将A老师(filemgr)的权限更改为归档代理
|
||

|
||

|
||
### 10. A老师(filemgr)工作台的显示
|
||

|
||
|
||
## 试卷库 /filelist
|
||
|
||
|
||
# 后端
|
||
> 位于`backend`文件夹
|
||
|
||
基于标准`http`库,不用重框架,负责提供各种API。
|