# 苏州市青少年竞赛报名平台 ## 需求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个人接受了邀请,其他人未接受或拒绝接受邀请,则本次报名成功。