签到接口 ========= 平时上课时,老师签到的时候总是很吃力。一是念一遍全班人的名字浪费时间,二是同学的名字含有生僻字和多音字,老师念起来很尴尬。 而老师要一直带着自己负责课程的班级的人名单,忘带了可就没法点名了。 最后签到记录的统计上也很麻烦,毕竟是纸质记录,一行行看要费不少功夫。 为了解决这一现状,我们决定设计签到功能。使用客户端进行签到,方便、快捷,不用点人名、数人头,随时可以获取统计结果,缺勤、迟到一目了然。 签到暂定为以班级为单位。以课程为单位进行签到时,会让课程对应的班级进行签到,本质上还是以班级为单位。 签到的具体流程 --------------- .. uml:: @startuml actor "教师" actor "学生" "教师"->>"安卓端": 新建签到任务 == 安卓端开启热点 随机生成一串ssid 并以隐藏ssid方式搜索 == "安卓端"->>"服务器": HTTP POST api/v1.0/check-in/ `todo`: "教师"->>"学生": 已开启签到任务 == 学生签到 == "学生"->>"安卓端": 拉取我的签到任务 "安卓端"->>"服务器": HTTP GET api/v1.0/course/in-charge "安卓端"->>"学生": 已获取,点击签到 "学生"->>"安卓端": 签到 "安卓端"->>"服务器": HTTP GET api/v1.0/check-in/ `todo`: == 签到时间结束 == "安卓端"->>"学生": 签到已结束,请未签到的同学下课补签 @enduml 发起签到任务 --------------- 教师、课代表、班干部等理应可以发布签到任务。目前仅做出了教师发布签到任务。 拉取签到任务 --------------- 拉取的签到任务应为尚未结束的。 学生签到 -------------- 补签逻辑