118 lines
7.9 KiB
Markdown
118 lines
7.9 KiB
Markdown
# 苏州市青少年竞赛报名平台
|
||
## 需求update-20240918
|
||
### 比赛列表接口
|
||
1. 需增加主办方;
|
||
2. 排序:默认需根据报名截止时间降序排序;
|
||
3. 报名状态筛选:默认显示所有报名状态;后端根据当前时间返回报名状态(未开始、报名中、已截止);
|
||
4. 比赛分组gradeType(比如:小学组、初中组、高中组)要可以筛选。如果比赛没有设置分组,则默认显示所有比赛。
|
||
5.
|
||
|
||
|
||
## 产品规划
|
||
|
||
|
||
### 家长用户端功能详细规划
|
||
|
||
#### **注册与登录**
|
||
1. 注册与登录:
|
||
- 打开登录页面时,先判断用户环境。如果是微信环境,则获取openid,使用微信登录;如果是其他环境,则使用手机号登录。如果没有微信openid的,则跳转到手机号登录页面。
|
||
- 手机号,需获取手机验证码验证;无需密码登录。使用手机号登录时,如果是微信环境的,则自动绑定微信openid。
|
||
- 登录成功后,跳转到登录前一个页面,或主页。
|
||
|
||
#### **个人中心**
|
||
|
||
1. 学生管理:
|
||
- 显示已绑定的学生。显示绑定学生按钮。
|
||
- 绑定学生:
|
||
- 输入学生姓名、身份证号,进行添加。根据学生身份证号、家长手机号,调用学籍库接口(根据学生身份证查询,返回的家长手机号与注册手机号匹配),获取学生信息。如果成功,则记录:姓名、性别、学校、年级、身份证号;如果失败,则提示错误信息(未查到、信息不匹配)。
|
||
- 拉取信息后,需上传学生照片(选填)。
|
||
- 绑定成功后,显示学生信息。
|
||
- 绑定多个学生。解绑学生。
|
||
2. 参赛情况
|
||
- 列表:姓名、比赛名称、报名时间、比赛状态、获奖情况。
|
||
- 详情:姓名、比赛名称、报名类型、报名组别、报名时间、参赛时间、比赛低点、比赛状态、获奖情况等;
|
||
- 根据比赛状态,增加功能按钮:已报名(增加取消按钮)、已审核、审核失败(增加审核失败原因,增加修改按钮)、已取消、已结束。
|
||
- 根据获奖情况,增加功能按钮:查看获奖证书。
|
||
3. 积分
|
||
- 显示积分,显示积分获得的来源。
|
||
#### **主页**
|
||
1. 比赛列表:图片+标题+状态:正在进行、即将开始、已结束。
|
||
2. 详情页:比赛名称、报名时间、报名截止时间、报名人数、报名方式、比赛地点、比赛介绍、报名方式、比赛奖项等。
|
||
- 点击报名按钮,跳转到报名页面。
|
||
|
||
#### **报名页面**
|
||
1. 选择报名的学生。如果未登录,跳转到登录页面;如果未绑定学生,则跳转到绑定学生页面。
|
||
2. 带出学生信息:学校、年级、姓名、身份证号(脱敏)、家长手机号(脱敏,可修改)、学生照片(如果没有照片,则必须上传。可修改)。
|
||
3. 选择个人报名,还是团队报名。
|
||
1. 个人报名:
|
||
- 比赛报名须知。
|
||
- 增加两个指导老师的信息:老师姓名、手机号。选填。
|
||
- 根据比赛设置,选择二级比赛类目(下拉框)。如有,则必填。
|
||
- 根据比赛设置,填写参赛证号(文本框),如有,则必填。
|
||
- 根据比赛设置,显示其他需要填写的内容。如有,则必填。
|
||
- 根据比赛设置,自动显示所属组别(低年级、初中组等。需在比赛设置里设置),无法更改。
|
||
- 全部信息填写结束。点击提交报名按钮后(需检查必填项),显示所有信息再次确认后,提交。
|
||
2. 团队报名:
|
||
- 参与团队:检查按钮:检查是否有其他成员邀请加入团队,如果有,则显示邀请信息,并提示“接受邀请”,或拒绝邀请。如果接受邀请,则比赛设置无需填写,直接显示比赛详情、团队详情,但如果有以下信息,则需要填写:参赛证号、其他必填的内容。确认参赛。邀请信息包括:邀请人学校、年级、姓名、身份证号(脱敏)、手机号(脱敏)、参加的比赛名称、类目(如有)、团队编号。
|
||
- 创建团队:如果没有其他成员邀请,则点击“创建团队”按钮,填写团队信息和报名信息。
|
||
- 团队信息:点击增加团队成员按钮,填写团队成员姓名、身份证号。
|
||
- 参赛信息:与“个人报名”一致:指导老师、类目、参赛证号等;
|
||
- 确认团队信息后,点击提交报名按钮,提交报名信息。
|
||
4. 点击提交报名按钮,提交报名信息。
|
||
|
||
|
||
### 管理端功能详细规划
|
||
#### **登录与权限管理**
|
||
- 常规后台管理帐号登录。无需特殊权限。不给其他老师使用。无需考虑额外的权限。
|
||
#### **竞赛管理**
|
||
1. 发布比赛:
|
||
- 比赛名称标题、简介(生成一级比赛类目)
|
||
- 可选是否有二级比赛类目,如果有,则添加类目名称
|
||
- 报名开始时间、报名结束时间
|
||
- 可选是否支持团队报名
|
||
- 可选是否需要参赛证号
|
||
- 可选是否需要添加备注1、备注2,备注的名称和内容
|
||
- 组别设置:xx年级对应xx组别
|
||
- 比赛详情页:标题图片、详情介绍等。
|
||
- 竞赛编号生成规则:前缀、日期、随机数。
|
||
- 点击发布按钮,发布成功。生成竞赛号码。
|
||
- 查看、编辑、删除等其他功能;
|
||
2. 报名管理:
|
||
- 比赛筛选:对一、二级比赛类目进行筛选,查看报名信息。
|
||
- 手动增加单条报名信息。唯一性:一次竞赛只允许一个人报,不存在一个竞赛里出现两次相同的身份证号;
|
||
- 批量导入excel报名信息。需对唯一性进行检查。
|
||
- 批量导出。
|
||
- 对单条信息进行修改、删除等。
|
||
|
||
3. 审核管理:
|
||
- 比赛筛选:对一、二级比赛类目进行筛选,查看报名人员信息。
|
||
- 团队、个人筛选。
|
||
- 审核筛选:未审核、审核通过、未到报名截止期、审核失败、已过期(未审核但比赛已开始)等。
|
||
|
||
4. 获奖管理:
|
||
- 获奖信息:比赛名称(编号)、获奖人姓名、身份证号、奖项、颁发单位、颁奖时间、获得的积分数量等。
|
||
- 增加奖状模版功能。上传奖状模版,系统自动生成奖状。
|
||
- 增加单条获奖信息。
|
||
- 批量导入excel获奖信息。需对唯一性进行检查。
|
||
#### **家长与学生管理**
|
||
1. 家长管理
|
||
- 手机号、微信openid、注册日期、最后登录日期、绑定学生数量等。
|
||
- 增删改查。
|
||
2. 学生管理
|
||
- 学生信息:姓名、性别、学校、年级、身份证号、家长手机号、学生照片(base64?url?)。
|
||
- 增删改查。
|
||
3. 积分管理
|
||
- 积分规则:每报名成功一次,获得10积分。
|
||
- 积分规则:根据获奖情况,获得不同积分。
|
||
- 积分明细(姓名、身份证号、获得的积分数量、来源、获得时间等)。
|
||
- 积分汇总:显示学生的积分总和。
|
||
|
||
## 业务逻辑
|
||
### 审核逻辑
|
||
### 团队比赛:
|
||
- 团队报名:由某一个学生作为主邀请人,在报名时选择团队比赛,并填写团队成员的姓名、身份证号。
|
||
- 系统自动生成一个团队号码,并将填写的团队成员信息绑定到这个团队号码。
|
||
- 学生报名时,系统检索学生是否有团队邀请,如果有,则提示学生邀请信息;如果接受邀请,则将学生信息绑定到团队号码,复用团队报名信息,报名成功。
|
||
- 邀请人可以查看团队成员信息。
|
||
- 审核:如果以团队报名,则必须至少2个人报名成功,如果只有1个主邀请人,没有其他被邀请人接受邀请,则本次报名失败;如果有至少有1个人接受了邀请,其他人未接受或拒绝接受邀请,则本次报名成功。
|
||
|