# 微光综合系统

## 简介

本系统是微光支教定制开发的综合系统，其中包含报名、面试、家访、综合信息等等，将一步步实现。

## 用户身份

- 面试官
- 老队员
- 工作人员
- 报名人员
- 管理员

## 用户关系说明

1. 面试官由老队员自愿报名和工作人员组成；
2. 老队员指之前参与过微光支教的人员；
3. 报名人员为在校大学生，可以为老队员、工作人员；
4. 管理员为IT部门和部分工作人员；
5. 工作人员分为：理事会、IT部门、财务部、规培部-队长方向、规培部-教学方向、女童保护、水计划-教学方向、水计划-调研方向、宣传部、综合管理部-行政方向、综合管理部-人事方向、综合管理部-外事方向-高校社团合作、综合管理部门-外事方向-家访、财务部。

## 用户基本属性（详见数据库）

- 注册用户：唯一编号、姓名、邮箱、密码
- 完善信息：唯一编号、性别、手机号、所在院校
- 工作人员：唯一编号、所在部门、出生日期、学校（单位）专业年级、备注
- 报名人员：唯一编号、备注
- 面试官：继承工作人员和老队员信息
- 管理员：继承工作人员信息
- 老队员：继承报名人员信息

## 系统事件

### 报名系统（笔试）（已确认）

#### 报名人员

- 报名微光（和易考联接）；
- 查询准考证号，进入链接考试
- 提醒做题；
- 查询笔试是否录取的结果。

#### 管理员

- 新建报名项目（第几期）；
- 导出名单并导入易考系统；
- 导入从易考系统导出的准考证号信息；
- 分配批试卷安排（可设置试卷由多位面试官批改）；
- 最后导入易考的最终成绩，生成最后的成绩；
- 手动设置报名人员是否通过笔试。

#### 面试官

- 根据分配的试卷进行批改（链接跳转）；

### 群面（已确认）

#### 报名人员（群面）

- 通过笔试的报名人员方可参与群面；
- 登录系统对面试场次进行预约；
- 申请修改面试场次（不可自行修改，并记录申请次数）；
- 查看面试结果

#### 管理员（群面）

- 设置群面时间（包含类型（线上、线下）、起止时间、当日结束预约时间）
- 审核修改面试时间申请
- 直接修改面试时间
- 修改面试官面试场次
- 录入面试结果

#### 面试官（群面）

- 选择面试场次
- 修改面试场次
- 提交面试信息

## 数据结构

### 报名数据库结构

| 名称（中文） | 说明               |
|--------|------------------|
| 编号     | 报名人员拥有唯一编号       |
| 项目编号   | 项目拥有唯一编号         |
| 准考证号   | 易考导入的准考证号        |
| 是否答题   | 1为已答题，0为未答题      |
| 是否录取   | 0为待定，1为已录取，2为未录取 |

### 数据库

- 注册用户：* 唯一编号、姓名、邮箱、密码（已实现）
- 完善信息：* 唯一编号、性别、手机号、所在院校（已实现）
- 工作人员：* 唯一编号、所在部门、出生日期、学校（单位）专业年级、备注
- 面试官：* 唯一编号、备注
- 管理员：* 唯一编号、备注
- 老队员：* 唯一编号、所在期数、备注

- 笔试项目：* 项目编号、项目名称、易考链接
- 报名笔试：* 唯一编号、* 项目编号、准考证号、答题情况、录取情况

## 用例事件

1. 支教人员登入我们系统报名，提供姓名、手机号等必须信息；
2. 我们管理员将这些信息从我们系统导出，然后导入易考的考试；
3. 易考产生的准考证号等信息导入到我们的系统；
4. 报名者随时登入系统（或我们自行规定什么时间是导入时间），看一看准考证号是否有，然后进入易考考试；
5. 每天（比如晚上9点）我们从易考导出考试信息，导入我们系统，自动分配给面试官已做完的人员信息，面试官根据链接进入易考进行批改。

## 部署

设置中：```SECRET_KEY```、 ```ALLOWED_HOSTS```、 ```EMAIL_HOST_USER```、 ```EMAIL_HOST_PASSWORD```

数据库： ```python manage.py makemigrations wgsite```、```python manage.py migrate wgsite```
